没理解到在职的定义,看结果说明发现结果多了
其实就两点:
1、找到salaries表中to_date是9999-01-01的数据行,不仅意味着在职还能选择最后时刻的工资
2、找到salaries表中to_date与employees表中hire_date相同的行,选择入职工资
3、相减
select av1.em1 emp_no, (av1.end_salary-av2.start_salary) growth
from
(
select s.emp_no em1,s.salary end_salary
from salaries s
where s.to_date ='9999-01-01'
)av1
inner join
(
select s.emp_no em2,s.salary start_salary
from salaries s
inner join employees e
on s.from_date = e.hire_date
)av2
on av1.em1 = av2.em2
order by growth asc;