题解 | #获取员工其当前的薪水比其manager当前薪水还高的相关信息#
获取员工其当前的薪水比其manager当前薪水还高的相关信息
http://www.nowcoder.com/practice/f858d74a030e48da8e0f69e21be63bef
解题思路:
- 获取员工及部门管理者(来自dept_manager)数据,使用左连接(最后去重)
- 获取该员工薪资水平
- 获取部门管理者的薪资水平并通过管理者的emp_no关联起来获取部门管理者的薪资水平
- 添加条件:员工薪资>该部门管理者薪资(to_date='9999-01-01' 可不加,题意中没说明必须是在职员工)
- 去重
select distinct de.emp_no,dm.emp_no as manager_no,s.salary,sm.salary as manager_salary
from dept_emp de
left join dept_manager dm on de.dept_no = dm.dept_no
left join salaries s on s.emp_no = de.emp_no
left join (
select dm1.emp_no,s1.salary from dept_manager dm1
join salaries s1 on dm1.emp_no = s1.emp_no
) sm
on manager_no = sm.emp_no
where s.salary > manager_salary