牛客SQL题解-查找所有员工自入职以来的薪水涨幅情况

题目描述

有一个员工表employees简况如下:
 
有一个薪水表salaries简况如下:
 
请你查找所有员工自入职以来的薪水涨幅情况,给出员工编号emp_no以及其对应的薪水涨幅growth,并按照growth进行升序,以上例子输出为
(注:可能有employees表和salaries表里存在记录的员工,有对应的员工编号和涨薪记录,但是已经离职了,离职的员工salaries表的最新的to_date!='9999-01-01',这样的数据不显示在查找结果里面,以上emp_no为2的就是这样的)

答案详解

SELECT
    e.emp_no,
    (a.salary - b.salary) AS growth
FROM
    employees e
INNER JOIN salaries a ON e.emp_no = a.emp_no
AND a.to_date = '9999-01-01'
INNER JOIN salaries b ON e.emp_no = b.emp_no
AND b.from_date = e.hire_date
ORDER BY
    growth ASC;
原文地址:https://www.cnblogs.com/Bluebells/p/14375246.html