题解 | #获取员工其当前的薪水比其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