获取员工其当前的薪水比其manager当前薪水还高的相关信息,当前表示to_date='9999-01-01',

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

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

可以简化问题先建立两张临时表
步骤一:建立表a查询出员工号(emp_no)、emp_no对应的manager_no、员工薪水emp_salary
(select de.emp_no,dm.emp_no as manager_no,s.salary as emp_salary
from dept_emp de join dept_manager dm 
on de.dept_no=dm.dept_no 
join salaries s on de.emp_no=s.emp_no 
where de.to_date='9999-01-01' and s.to_date='9999-01-01') as a 
其中de.to_date='9999-01-01' and s.to_date='9999-01-01'目的是筛选出当前员工的当前工资
步骤二:建立表b查询出经理的员工号manager_no、经理薪水manager_salary
(select dm.emp_no as manager_no,s.salary as manager_salary 
  from dept_manager dm join salaries s on dm.emp_no=s.emp_no 
  where dm.to_date='9999-01-01' and s.to_date='9999-01-01') as b
步骤三:利用manager_no为关键字联合查询a、b,并增加查询条件        a.emp_salary>b.manager_salary查找比自己经理工资高的员工

select a.emp_no,a.manager_no,a.emp_salary,b.manager_salary from
    (select de.emp_no,dm.emp_no as manager_no,s.salary as emp_salary
    from dept_emp de join dept_manager dm 
    on de.dept_no=dm.dept_no 
    join salaries s on de.emp_no=s.emp_no 
    where de.to_date='9999-01-01' and s.to_date='9999-01-01') as a 
join 
     (select dm.emp_no as manager_no,s.salary as manager_salary 
      from dept_manager dm join salaries s on dm.emp_no=s.emp_no 
      where dm.to_date='9999-01-01' and s.to_date='9999-01-01') as b 
on a.manager_no=b.manager_no
where a.emp_salary>b.manager_salary;
全部评论

相关推荐

无情咸鱼王的秋招日记之薛定谔的Offer:好拒信,偷了,希望有机会用到
点赞 评论 收藏
分享
评论
2
收藏
分享
牛客网
牛客企业服务