sql实战:使用sql计算工资涨幅?

“雇员表“中记录了员工的信息,“薪水表“中记录了对应员工发放的薪水。两表通过“雇员编号”关联。查找当前所有雇员入职以来的薪水涨幅,给出雇员编号以及其对应的薪水涨幅,并按照薪水涨幅进行升序。
(注:薪水表中结束日期为2004-01-01的才是当前员工,否则是已离职员工)

在这里插入图片描述

-- 入职薪水

select  a.雇员编号
       ,薪水 as last_salary
from 雇员表 a inner join 薪水表 b
on a.雇员编号 = b.雇员编号
where 雇用日期 = 起始日期 
and 雇员编号 in (select 雇员编号 from 薪水表
                         where 结束日期 = '2004-01-01')

-- 计算薪资涨幅:
select   t1.雇员编号
        ,(curr_salary - last_salary) as Salary_incre
from (select  雇员编号
			 ,薪水 as curr_salary
from 薪水表 
where 结束时间 = '2004-01-01') t1
inner join(
select  a.雇员编号
       ,薪水 as first_salary
from 雇员表 a inner join 薪水表 b
on a.雇员编号 = b.雇员编号
where 雇用日期 = 起始日期 
and a.雇员编号 in (select 雇员编号 
from 薪水表 where 结束日期 = '2004-01-01'))t2
on t1.雇员编号 = t2.雇员编号
order by Salary_incre;
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值