SQL练习9:获取所有部门当前manager的当前薪水情况

SQL练习9:获取所有部门当前manager的当前薪水情况

题目链接:牛客网

题目描述
获取所有部门当前(dept_manager.to_date='9999-01-01')manager的当前(salaries.to_date='9999-01-01')薪水情况,给出dept_no, emp_no以及salary,输出结果按照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 `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`));

解法
查询的结果中要包含dept_noemp_no以及salary。连接两个表时,根据限定条件筛选符合题目要求的数据,最后按照dept_no列升序排列。

SELECT dept_no, d.emp_no, salary
FROM dept_manager d JOIN salaries s
ON d.emp_no = s.emp_no AND d.to_date = '9999-01-01' AND s.to_date = '9999-01-01'
ORDER BY dept_no;

猜你喜欢

转载自blog.csdn.net/qq_43965708/article/details/113336627