题解 | #查找在职员工自入职以来的薪水涨幅情况#
查找在职员工自入职以来的薪水涨幅情况
http://www.nowcoder.com/practice/fc7344ece7294b9e98401826b94c6ea5
题目所求为入职到现在的薪水涨幅情况,我首先的思路就是用现在的工资减去刚入职时候的工资 接着按着这个目标去按要求求解:
1、首先将员工编号与刚入职时候的工资对应起来,使用表连接,连接字段为编号对应,以及入职时期对应;
2、将员工编号与现在的工资对应起来,使用表连接,连接字段为编号对应,筛选条件为se.to_date='9999-01-01',这样就只留下了在职员工
3、se.salary-ss.salary就是现在与刚入职工资的差距
4、最后按工资涨幅排序
使用到的三张表为employees 别名e、salaries 别名ss(salary_start)、salaries 别名se(salary_end)
完整代码为:
select e.emp_no,(se.salary-ss.salary) growth
from employees e
join salaries ss
on e.emp_no=ss.emp_no and e.hire_date=ss.from_date
join salaries se
on e.emp_no=se.emp_no
where se.to_date='9999-01-01'
order by growth