本题应该考虑降薪的问题:
题中没有讲员工不降薪,所以不能直接使用最大薪水-最小薪水求值,例如:我入职薪水100元,过程中降薪20元,现在工资80元,那么按照(最大薪水-最小薪水求值),薪水还涨了20元,但实际是降薪20元,所有有错误。
实际应该使用最后记录薪水-入职时薪水(80-100),涨幅为-20元。
-- 本题应该考虑降薪的问题:题中没有讲员工不降薪,所以不能直接使用最大薪水-最小薪水求值 SELECT s1.emp_no, s2.salary - s1.salary AS growth FROM (SELECT e.emp_no, s.salary FROM employees e LEFT JOIN salaries s ON e.emp_no = s.emp_no WHERE e.hire_date = s.from_date) AS s1 -- 入职薪水 INNER JOIN (SELECT e.emp_no, s.salary FROM employees e LEFT JOIN salaries s ON e.emp_no = s.emp_no WHERE s.to_date = '9999-01-01') AS s2 -- 现在薪水 ON s1.emp_no = s2.emp_no ORDER BY growth