select a.emp_no,(b.salary-a.salary) growth ##同一行中两列相减即为涨幅 from (select emp_no,salary from salaries ###第三层这里选出在职员工入职时的工资 where from_date in (select hire_date from employees ###第二层选出所有在职员工的入职时间 where emp_no in (select emp_no from salaries ##这里第一层选出所有在职员工的编号 where to_date = '9999-01-01'))) a inner join ###将在职员工当前工资和入职时工资按照员工编号链接 使得出现在一行 (select emp_no,salary from salaries ###选出在职员工当前的工资 where to_date = '9999-01-01') b on a.emp_no = b.emp_no order by growth
这里主要思想是1.先求出在职员工的编号
2.求出在职员工的入职时间
3.在职员工入职时的工资
4.求出在职员工当前的工资(利用9999-01-01在salaries表里选即可)
5.然后拼接3,4(利用emp_no)
6.同一行中做相减即可
7.排序