有一个员工表employees简况如下:
有一个薪水表salaries简况如下:
请你查找在职员工自入职以来的薪水涨幅情况,给出在职员工编号emp_no以及其对应的薪水涨幅growth,并按照growth进行升序,以上例子输出为
(注: to_date为薪资调整某个结束日期,或者为离职日期,to_date='9999-01-01'时,表示依然在职,无后续调整记录)
解:
select s1.emp_no,(s1.salary-e1.salary) as growth
from
# 查询入职时候的基础工资
(select s.emp_no,s.salary
from salaries as s
inner join employees as e
on s.emp_no = e.emp_no and s.from_date=e.hire_date) as e1
inner join
# 查询当前最新的工资
(select emp_no,salary
from salaries
where to_date='9999-01-01') as s1
on s1.emp_no=e1.emp_no
order by growth