Укажите номер сотрудника emp_no, начальную дату изменения зарплаты from_date и величину увеличения зарплаты salary_growth для каждого сотрудника, чей ежегодный размер повышения зарплаты превышает 5000. Результат сортировать по убыванию значения salary_growth.
Подсказка: в SQLite для получения года из datetime используется функция strftime('%Y', to_date).
CREATE TABLE `salaries` (
`emp_no` int(11) NOT NULL,
`salary` int(11) NOT NULL,
`from_date` date NOT NULL,
`to_date` date NOT NULL,
PRIMARY KEY (`emp_no`,`from_date`)
);
SELECT s2.emp_no, s2.from_date, (s2.salary - s1.salary) AS salary_growth
FROM salaries AS s1, salaries AS s2
WHERE s1.emp_no = s2.emp_no
AND (s2.salary - s1.salary) > 5000
AND (strftime('%Y', s2.to_date) - strftime('%Y', s1.to_date) = 1
OR strftime('%Y', s2.from_date) - strftime('%Y', s1.from_date) = 1)
ORDER BY salary_growth DESC
Для выполнения запроса используются две таблицы salaries
, каждая из которых представляет собой запись о зарплатах сотрудников. В запросе сравниваются записи двух таблиц, чтобы найти случаи, когда зарплата была увеличена более чем на 5000 за год. Для определения того, что два события относятся к одному году, используется функция strftime('%Y', ...)
, которая извлекает год из полей from_date
и to_date
. Запрос также сортирует результаты по убыванию значений salary_growth.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )