本题应该考虑降薪的问题:
题中没有讲员工不降薪,所以不能直接使用最大薪水-最小薪水求值,例如:我入职薪水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 
京公网安备 11010502036488号