SQL 21) 查找所有员工自入职以来的薪水涨幅情况

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

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

方法)利用子查询找出当前工资及入职工资

SELECT s1.emp_no, (s1.salary - s2.salary)growth
FROM 
(SELECT emp_no, salary  -- 当前工资
FROM salaries
WHERE to_date = '9999-01-01')s1
JOIN
(SELECT s.emp_no, s.salary -- 入职工资
FROM salaries AS s JOIN employees AS e
ON e.emp_no = s.emp_no
AND e.hire_date = s.from_date)s2
ON s1.emp_no = s2.emp_no
ORDER BY growth;

21/3/24
方法2)第二次做发现一个更简单的方法

  • 入职工资 即 最低工资
select s1.emp_no, (s2.salary - min(s1.salary)) growth
from salaries as s1, salaries as s2
where s1.emp_no = s2.emp_no
and s2.to_date = '9999-01-01'
group by s1.emp_no
order by growth;
全部评论
题目没有表明入职工资就是最低工资
2 回复 分享
发布于 2022-05-11 23:13
to_date = 9999-01-01说明员工是在职状态,题目要求查询的就是在职员工
1 回复 分享
发布于 2022-07-25 15:39
第二个方法测试出错了呀
点赞 回复 分享
发布于 2024-02-17 15:41 河南
第二个方法我测试出错了
点赞 回复 分享
发布于 2022-12-06 16:58 广东
有可能第一个月就降薪也说不定呢
点赞 回复 分享
发布于 2022-08-01 19:02
怎么就直接带9999-01-01进去查啊,哪个条件说明了
点赞 回复 分享
发布于 2022-06-09 20:57

相关推荐

不愿透露姓名的神秘牛友
2025-12-19 10:45
点赞 评论 收藏
分享
评论
26
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务