当前位置:网站首页>Daily sql--statistics the total salary of employees in the past three months (excluding the latest month)
Daily sql--statistics the total salary of employees in the past three months (excluding the latest month)
2022-08-11 07:14:00 【Eating too much sugar will not gain weight】
每日sql–Calculate the total salary of employees in the past three months(Excluding the latest month)
DDL
Create table If Not Exists Employee (Id int, Month int, Salary int);insert into Employee (Id, Month, Salary) values (1, 1, 20);insert into Employee (Id, Month, Salary) values (2, 1, 20);insert into Employee (Id, Month, Salary) values (1, 2, 30);insert into Employee (Id, Month, Salary) values (2, 2, 30);insert into Employee (Id, Month, Salary) values (3, 2, 40);insert into Employee (Id, Month, Salary) values (1, 3, 40);insert into Employee (Id, Month, Salary) values (3, 3, 60);insert into Employee (Id, Month, Salary) values (1, 4, 60);insert into Employee (Id, Month, Salary) values (3, 4, 70);

sql
select e1.Id,e1.month, case when e1.salary is null then 0 else e1.salary end +case when e2.salary is null then 0 else e2.salary end+case when e3.salary is null then 0 else e3.salary end AS Salary
from
(select Id,max(month)as month from Employee group by Id having count(1)>1) maxmonth
left join Employee e1 on e1.Id = maxmonth.Id and maxmonth.month >e1.month
left join Employee e2 on e2.Id = e1.Id and e2.month = e1.month-1
left join Employee e3 on e3.Id = e1.Id and e3.month = e1.month-2
ORDER BY e1.id ASC , e1.month DESC;

边栏推荐
猜你喜欢
随机推荐
一个小时快速熟悉MySQL基本用法
iptables nat
导航定位中的坐标系
How Xshell connects to a virtual machine
推荐一个好用的IDEA插件---Translation—中英互译
求过去半年内连续30天以上每天都有1000元以上成交的商铺
快速了解集成学习
华为防火墙会话 session table
Cobbleland 博览会 基础系列 1
pytorch调整模型学习率
MySQL导入导出&视图&索引&执行计划
淘宝API接口参考
从mask-rcnn到shp
Daily sql-seek the sum of successful investments in 2016
Sturges规则
淘宝商品详情API接口
arcgis填坑_1
华为防火墙-2-状态检测与会话
bash的命令退出状态码
命令输出给变量








