题解 | #查找在职员工自入职以来的薪水涨幅情况#

查找在职员工自入职以来的薪水涨幅情况

https://www.nowcoder.com/practice/fc7344ece7294b9e98401826b94c6ea5

# 查询当前在职员工的当前工资
select emp_no, salary now_salary
from salaries
where to_date = '9999-01-01'
group by emp_no, salary;

# 查找在职员工自入职以来的薪水涨幅情况(三表连接,使得记录能有员工号对应其入职工资及当前工资)
select e.emp_no, now_salary-salary as growth
from employees e
join salaries s
on e.emp_no=s.emp_no and e.hire_date = s.from_date
join (
    select emp_no, salary now_salary
    from salaries
    where to_date = '9999-01-01'
    group by emp_no, salary
) k1
on e.emp_no=k1.emp_no
order by growth;

连接条件on 后面也能使用and添加多个连接条件,最开始程序报错,还以为不能这么用。但后来执行又成功了,且自己去本地dbms中又执行了发现查询没问题。好了,以后能放连接条件里的就不额外弄出来写where了。

【本题思路】

先查询当前在职员工的当前工资,然后将其作为一个表与另外两表作合适的连接,获得一个表的记录能同时带有员工号、其入职工资和当前工资。然后当前工资-入职工资就能得到工资涨幅啦。

全部评论

相关推荐

程序员牛肉:可以说含金量不如王者荣耀省标。
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务