【Mysql】获取所有在职非manager员工薪水情况,给出dept_no、emp_no以及salary

获取所有非manager员工当前的薪水情况

http://www.nowcoder.com/questionTerminal/8fe212a6c71b42de9c15c56ce354bebe

题目描述:获取所有当前在职的非manager员工薪水情况,给出dept_no、emp_no以及salary。(题目要求自己修改了一下,感觉加上当前在职的更合理)。

一、join..on+not in

select de.dept_no, e.emp_no, s.salary
from  employees e join dept_emp de on e.emp_no=de.emp_no
           join salaries s on e.emp_no =s.emp_no
where e.emp_no not in 
(
    select emp_no
    from dept_manager
    where to_date="9999-01-01"
)
and de.to_date="9999-01-01"

not in找出不是是当前经理的emp_no。join..on找出所有员工的信息。de.to_date="9999-01-01"筛出当前在职员工。

二、只用join..on解决

select de.dept_no, e.emp_no, s.salary
from  employees e join dept_emp  de on e.emp_no=de.emp_no
             join salaries s on e.emp_no =s.emp_no
             join dept_manager dm on de.dept_no=dm.dept_no 
                               and de.emp_no <> dm.emp_no
                               and de.to_date=dm.to_date
where de.to_date="9999-01-01"

思路与方法一致。join..on找出所有每个部门不是在职经理的员工信息。where筛出在职员工的信息。

牛客题霸-SQL篇【Mysql】 文章被收录于专栏

少壮不努力,老大勤刷题

全部评论

相关推荐

shtdbb_:还不错,没有让你做了笔试再挂你
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务