题解 | #查找在职员工自入职以来的薪水涨幅情况#
查找在职员工自入职以来的薪水涨幅情况
http://www.nowcoder.com/practice/fc7344ece7294b9e98401826b94c6ea5
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.排序
查看9道真题和解析
深信服公司福利 774人发布