题解 | #查找在职员工自入职以来的薪水涨幅情况#

查找在职员工自入职以来的薪水涨幅情况

http://www.nowcoder.com/practice/fc7344ece7294b9e98401826b94c6ea5

一种简洁的写法
SELECT  a.emp_no,
        b.salary - c.salary AS growth
FROM employees AS a, salaries AS b, salaries AS c
WHERE 
    a.emp_no = b.emp_no AND b.to_date = "9999-01-01"
    AND a.emp_no = c.emp_no AND c.from_date = a.hire_date
ORDER BY growth 

一种通俗些的写法
SELECT  a.emp_no                    AS emp_no,
        a.max_salary - b.min_salary AS growth
FROM
(
    SELECT  salary AS max_salary,
	              emp_no
    FROM salaries
    WHERE to_date = "9999-01-01" 
) AS a
LEFT JOIN
(
    SELECT  salary as min_salary,
	              e.emp_no
    FROM salaries AS e, employees AS e1
    WHERE e.emp_no = e1.emp_no AND e1.hire_date = e.from_date
) AS b
ON a.emp_no = b.emp_no
ORDER BY growth


全部评论

相关推荐

Java抽象带篮子:难蚌,点进图片上面就是我的大头😆
点赞 评论 收藏
分享
10-30 23:23
已编辑
中山大学 Web前端
去B座二楼砸水泥地:这无论是个人素质还是专业素质都👇拉满了吧
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务