题解 | #查找在职员工自入职以来的薪水涨幅情况#
查找在职员工自入职以来的薪水涨幅情况
http://www.nowcoder.com/practice/fc7344ece7294b9e98401826b94c6ea5
select r.emp_no,(b.s2-r.s1) as growth from(select salaries.emp_no ,salary s1 from salaries join employees on salaries.emp_no = employees.emp_no where salaries.from_date = employees.hire_date)r join( select salaries.emp_no ,salary s2 from salaries join employees on salaries.emp_no = employees.emp_no where to_date ='9999-01-01' ) b on r.emp_no = b.emp_no order by growth asc
思路
首先对表salaries和表employees使用内连接,连接条件是 salaries.emp_no = employees.emp_no,查询出员工的员工号和入职薪水记为r,同理查询出在职员工的员工号和目前薪水记为b,最后将这两个中间表使用内连接,连接条件是emp_no相等,最后查询出该表的emp_no和(b.salary-r.salary),按照薪水涨幅生序排列即可。