题解 | #获取员工其当前的薪水比其manager当前薪水还高的相关信息#
获取员工其当前的薪水比其manager当前薪水还高的相关信息
http://www.nowcoder.com/practice/f858d74a030e48da8e0f69e21be63bef
思路
首先将工资比其领导的工资更高的员工的编号,所在部门,以及薪资查询出来,最后在根据所在部门与salaries表查出领导的薪资
- 此处要检查每一个员工的薪资是否比其领导的工资高。我们可以使用相关子查询的方式将其查出。
select de1.emp_no,s1.salary,de1.dept_no
from dept_emp de1,salaries s1
where de1.emp_no = s1.emp_no
and s1.salary > (
# 查找该员工的领导的薪资
select s2.salary from dept_manager dm1,salaries s2
where de1.dept_no = dm1.dept_no and dm1.emp_no = s2.emp_no
) - 根据已查出的符合条件的员工的编号,所在部门编号查出其领导的编号与薪资
select t.emp_no,dept_manager.emp_no,t.salary,s3.salary
from dept_manager,salaries s3,
(
# 将符合条件的员工的相关信息查出
select de1.emp_no,s1.salary,de1.dept_no
from dept_emp de1,salaries s1
where de1.emp_no = s1.emp_no
and s1.salary > (
# 查找该员工的领导的薪资
select s2.salary from dept_manager dm1,salaries s2
where de1.dept_no = dm1.dept_no and dm1.emp_no = s2.emp_no
)
) t
where t.dept_no = dept_manager.dept_no and dept_manager.emp_no = s3.emp_no
查看10道真题和解析