我正在使用
我希望能在特定的月份内汇总
以下是我的尝试:
MS SQL Server
。这是我拥有的表格:Create table tblVal
(
Id int identity(1,1),
Val NVARCHAR(100),
startdate datetime,
enddate datetime
)
--Inserting Records--
Insert into tblVal values(500,'20180907','20191212')
Insert into tblVal values(720,'20190407','20191212')
Insert into tblVal values(539,'20190708','20201212')
Insert into tblVal values(341,'20190221','20190712')
以下是表格:
Id |Val |startdate |enddate
--- ----------------------------------------------
1 |500 |2018-09-07 |2019-12-12
2 |720 |2019-04-07 |2019-12-12
3 |539 |2019-07-08 |2020-12-12
4 |341 |2019-02-21 |2019-07-12
我需要的是:
Mon | Total
------------------
Jan | 500
Feb | 841
March | 841
April | 1561
May | 1561
June | 1561
July | 2100
........|.........
我希望能在特定的月份内汇总
Val
列。例如,在四月
这个月,它位于两行之间。我必须检查开始日期和结束日期的两个条件,然后再求和这些数值。以下是我的尝试:
select *
into #ControlTable
from dbo.tblVal
DECLARE @cnt INT = 0;
while @cnt<12
begin
select sum(CASE
WHEN MONTH(startdate) BETWEEN @cnt and MONTH(enddate) THEN 0
ELSE 0
END)
from #ControlTable
SET @cnt = @cnt + 1;
end
drop table #ControlTable
但是从上面的操作我无法达到想要的结果。我该如何解决这个问题?谢谢。