注册 登录
编程论坛 SQL Server论坛

计算每年的累计收益,每年的收益结果都是要加上前面年份的

陈点点 发布于 2022-06-28 15:31, 1049 次点击
比如,表1里面有二个字段:年份 、收益,例如:
年份:2022-4-12  收益:27.2万
年份:2022-7-28  收益:27.2万
年份:2023-3-06  收益:9.82万
要得到的结果是
年     收益
2022   54.4
2023   64.22
2024年的收益 等于 2022年的收益 + 2023年的收益

就是当前年的收益 = 历史年收益  +  本年收益

[此贴子已经被作者于2022-6-28 17:53编辑过]

3 回复
#2
mywisdom882022-06-29 08:41
你表1的数据格式是什么
年份 、收益
2022-4-12  27.2万
2022-7-28  27.2万
2023-3-06  9.82万
是这样写的吗?那你[年份]字段是日期还是字符?[收益]字段是数值还是字符?
#3
陈点点2022-06-29 13:38
回复 2楼 mywisdom88
年份是日期格式,存的是yyyy-mm-dd,
收益是浮点
#4
mywisdom882022-07-05 09:20
/*
create table 表1(日期 datetime,收益 numeric(10,2))
go
insert into 表1(日期,收益) values('2022-1-12',10.1)
insert into 表1(日期,收益) values('2022-2-28',20.2)
insert into 表1(日期,收益) values('2023-3-28',30.3)
insert into 表1(日期,收益) values('2023-4-06',40.4)
insert into 表1(日期,收益) values('2024-5-06',50.5)
*/
-- 1.先按年份汇总看看
select year(日期)as 年份,SUM(收益) as 收益 from 表1 group by year(日期)

-- 2.你要的查询结果
select t1.年份,SUM(t2.收益) as 收益 from
(select YEAR(日期) as 年份 from 表1 group by YEAR(日期))t1,
(select year(日期)as 年份,SUM(收益) as 收益 from 表1 group by year(日期))t2
where t1.年份 >= t2.年份
group by t1.年份

只有本站会员才能查看附件,请 登录
1