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

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

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

select a.emp_no,(b.salary-a.salary) growth  ##同一行中两列相减即为涨幅
from 
(select emp_no,salary 
from salaries    ###第三层这里选出在职员工入职时的工资
where from_date in 
(select hire_date
from employees   ###第二层选出所有在职员工的入职时间
where emp_no in
(select emp_no
from salaries    ##这里第一层选出所有在职员工的编号
where to_date = '9999-01-01'))) a 
inner join      ###将在职员工当前工资和入职时工资按照员工编号链接 使得出现在一行
(select emp_no,salary
from salaries   ###选出在职员工当前的工资
where to_date = '9999-01-01') b
on a.emp_no = b.emp_no
order by growth

这里主要思想是1.先求出在职员工的编号
2.求出在职员工的入职时间
3.在职员工入职时的工资
4.求出在职员工当前的工资(利用9999-01-01在salaries表里选即可)
5.然后拼接3,4(利用emp_no)
6.同一行中做相减即可
7.排序

全部评论

相关推荐

11-07 11:05
已编辑
西安电子科技大学 golang
点赞 评论 收藏
分享
给🐭🐭个面试机会...:我擦seed✌🏻
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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