题解 | #查找当前薪水详情以及部门编号dept_no# | SQL3

查找当前薪水详情以及部门编号dept_no

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

        如果本题仅仅是查找各部门领导的薪水和编号的话,就是将两张表连接一下再查询,即:

select
    s.emp_no,
    s.salary,
    s.from_date,
    s.to_date,
    d.dept_no
from
    salaries as s
join
    dept_manager as d
on
    s.emp_no = d.emp_no
order by
    s.emp_no asc
;

        但是题目里有个“当前”,大概是指salaries表和dept_manager表中包含了所有在职和离职员工,因此需要把已经离职的员工去除。
        离职员工的to_date应该是一个确切的日期,而在职员工的to_date都是“9999-01-01”,表示一直在职,故只需筛出所有to_date = ‘9999-01-01’的员工即可。
        改进后:

select
    s.emp_no,
    s.salary,
    s.from_date,
    s.to_date,
    d.dept_no
from
    salaries as s
join
    dept_manager as d
on
    s.emp_no = d.emp_no
where
    s.to_date = '9999-01-01'
and
    d.to_date = '9999-01-01'
order by
    s.emp_no asc
;
全部评论

相关推荐

1个小白:可以考虑投一下字节
点赞 评论 收藏
分享
刘湘_passion:出国旅游?那就小心你的腰子咯
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务