题解 | #获取员工其当前的薪水比其manager当前薪水还高的相关信息#

获取员工其当前的薪水比其manager当前薪水还高的相关信息

http://www.nowcoder.com/practice/f858d74a030e48da8e0f69e21be63bef

思路
首先将工资比其领导的工资更高的员工的编号,所在部门,以及薪资查询出来,最后在根据所在部门与salaries表查出领导的薪资

  1. 此处要检查每一个员工的薪资是否比其领导的工资高。我们可以使用相关子查询的方式将其查出。
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
        )
  1. 根据已查出的符合条件的员工的编号,所在部门编号查出其领导的编号与薪资
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
全部评论

相关推荐

评论
点赞
收藏
分享
牛客网
牛客企业服务