题解 | #查找在职员工自入职以来的薪水涨幅情况#
查找在职员工自入职以来的薪水涨幅情况
https://www.nowcoder.com/practice/fc7344ece7294b9e98401826b94c6ea5
select b.emp_no,(b.salary-a.salary) as growth
from (select e.emp_no,s.salary
from employees e left join salaries s on e.emp_no=s.emp_no
WHERE e.hire_date=s.from_date)a -- 入职工资表
inner join
(select e.emp_no,s.salary
from employees e left join salaries s on e.emp_no=s.emp_no
where s.to_date='9999-01-01')b -- 现在工资表
on a.emp_no=b.emp_no
order by growth
题目要求:入职以来的薪水涨幅情况,那就可以用现在的薪资 - 入职的薪资
现在的薪资
select e.emp_no,s.salary
from employees e left join salaries s on e.emp_no=s.emp_no
where s.to_date='9999-01-01'
入职时的薪资
select e.emp_no,s.salary
from employees e left join salaries s on e.emp_no=s.emp_no
WHERE e.hire_date=s.from_date
连接两表,按涨幅情况排序。完整代码如下
select b.emp_no,(b.salary-a.salary) as growth
from (select e.emp_no,s.salary
from employees e left join salaries s on e.emp_no=s.emp_no
WHERE e.hire_date=s.from_date)a -- 入职工资表
inner join
(select e.emp_no,s.salary
from employees e left join salaries s on e.emp_no=s.emp_no
where s.to_date='9999-01-01')b -- 现在工资表
on a.emp_no=b.emp_no
order by growth


上海得物信息集团有限公司公司福利 1166人发布