1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/xuthus5-Database-SQL-Actual-Combat

Клонировать/Скачать
21.查找所有员工自入职以来的薪水涨幅情况.md 2.1 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 10.03.2025 00:53 c66e7df

Найти все увеличения зарплат сотрудников с момента найма

Описание задачи

Найдите все увеличения зарплат сотрудников с момента найма, предоставив номер сотрудника emp_no и соответствующее увеличение зарплаты growth, отсортировав по growth в порядке возрастания.

CREATE TABLE `employees` (
`emp_no` int(11) NOT NULL,
`birth_date` date NOT NULL,
`first_name` varchar(14) NOT NULL,
`last_name` varchar(16) NOT NULL,
`gender` char(1) NOT NULL,
`hire_date` date NOT NOT NULL,
PRIMARY KEY (`emp_no`)
);
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 конец.emp_no, (конец.salary - начало.salary) AS growth FROM (SELECT emp_no, salary FROM salaries WHERE to_date = '9999-01-01') AS конец LEFT JOIN (SELECT s.emp_no, s.salary FROM salaries s INNER JOIN employees e ON s.emp_no = e.emp_no WHERE s.from_date = e.hire_date) AS начало ON начало.emp_no = конец.emp_no ORDER BY growth

Объяснение решения

  1. Получаем текущую зарплату сотрудников и помещаем её во временную таблицу конец.
-- Текущая зарплата
(SELECT emp_no, salary FROM salaries WHERE to_date = '9999-01-01') конец
  1. Получаем начальную зарплату сотрудников при найме и помещаем её во временную таблицу начало.
-- Начальная зарплата
(SELECT s.emp_no, s.salary FROM salaries s INNER JOIN employees e ON s.emp_no = e.emp_no WHERE s.from_date = e.hire_date) начало
  1. Соединяем временные таблицы и вычисляем разницу между текущей и начальной зарплатой.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/xuthus5-Database-SQL-Actual-Combat.git
git@api.gitlife.ru:oschina-mirror/xuthus5-Database-SQL-Actual-Combat.git
oschina-mirror
xuthus5-Database-SQL-Actual-Combat
xuthus5-Database-SQL-Actual-Combat
master