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

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

Клонировать/Скачать
24.获取所有非manager员工当前的薪水情况.md 1.8 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 10.03.2025 00:53 c66e7df

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

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

Получите текущие зарплаты всех сотрудников, кроме менеджеров, выдав dept_no, emp_no и salary. "Текущий" означает to_date='9999-01-01'.

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 `dept_manager` (
`dept_no` char(4) NOT NULL,
`emp_no` int(11) NOT NULL,
`from_date` date NOT NULL,
`to_date` date NOT NULL,
PRIMARY KEY (`emp_no`,`dept_no`)
);
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 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 dept_no, e.emp_no, salary FROM (SELECT * FROM employees WHERE emp_no NOT IN (SELECT emp_no FROM dept_manager)) AS e JOIN salaries s ON e.emp_no = s.emp_no AND s.to_date = '9999-01-01' JOIN dept_emp de ON e.emp_no = de.emp_no

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

  1. Получите все номера менеджеров.
SELECT emp_no FROM dept_manager
  1. Получите информацию обо всех сотрудниках, кроме менеджеров.
SELECT * FROM employees WHERE emp_no NOT IN (SELECT emp_no FROM dept_manager)
  1. Соедините таблицы emp, salaries и dept_emp для получения конечного набора данных.

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