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

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

Клонировать/Скачать
12.获取所有部门中当前员工薪水最高的相关信息.md 1.4 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 10.03.2025 00:53 c66e7df

Получение информации о максимальной зарплате текущих сотрудников в каждом департаменте

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

Получите информацию о максимальной зарплате текущих сотрудников в каждом департаменте, предоставив dept_no, emp_no и соответствующую им salary.

CREATE TABLE `dept_emp` (
`emp_no` int(11) NOT NULL,
`dept_no` char(4) NOT NULL,
`from_date` date NOT NULL,
`to_date` date NOT NULL,
PRIMARY KEY (`emp_no`,`dept_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 dept_no, s.emp_no, MAX(salary) AS salary FROM dept_emp de LEFT JOIN salaries s ON de.emp_no = s.emp_no WHERE de.to_date = '9999-01-01' AND s.to_date = '9999-01-01' GROUP BY dept_no

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

SELECT a.dept_no AS 'Департамент', a.emp_no AS 'Сотрудник', MAX(a.salary) AS 'Зарплата'
FROM (
    SELECT dp.dept_no, dp.emp_no, ss.salary 
    FROM dept_emp dp 
    LEFT JOIN salaries ss ON dp.emp_no = ss.emp_no 
    WHERE dp.to_date = '9999-01-01' AND ss.to_date = '9999-01-01'
) a
GROUP BY a.dept_no

Опубликовать ( 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