首先看题 员工入职以来的薪水变化(涨幅我就认为是变化,即可增可以减少,我非常喜欢放极端数据)

1.先找出入职时候的信息 员工号 入职薪资
elect a.emp_no,a1.salary
from employees a
left JOIN salaries a1
ON a.hire_date=a1.from_date and a.emp_no=a1.emp_no

2.找出当前薪资,注意,我找的方法,先找出每个人(即每个emp_no)再salaries里面的记录的最大的from date,再依据这个去找出当前的薪资
select t.emp_no ,st.salary from
(select emp_no,max(from_date) f_date from salaries
group by emp_no) t
left join salaries st
ON st.emp_no=t.emp_no and t.f_date=st.from_date

3.最后依据emp_no表连接去做计算
select f.emp_no,(f1.salary-f.salary) from
(select a.emp_no,a1.salary
from employees a
left JOIN salaries a1
ON a.hire_date=a1.from_date and a.emp_no=a1.emp_no) f
left join
(select t.emp_no ,st.salary from
(select emp_no,max(from_date) f_date from salaries
group by emp_no) t
left join salaries st
ON st.emp_no=t.emp_no and t.f_date=st.from_date) f1
on f.emp_no = f1.emp_no