我找不到以下SQL查询的解决方案。我的第一个查询应该并且可以累积去年的数据量。
CASE
WHEN rehuv.VER_DATUM >= dateadd(year, -1, dateadd(month, -datepart(month, @STARTDATE) + 1, @STARTDATE))
AND rehuv.VER_DATUM <= DATEADD(year, -1, @ENDDATE) THEN rehuv.BELOPP ELSE 0
END AS PREVIOUS_YEAR_ACC
但是当我尝试在特定时间间隔内累积数据时(我想要与@startdate相同的时间间隔 - &gt; @enddate但是向后一年)。 SQL查询:
CASE
WHEN rehuv.VER_DATUM >= DATEADD(year, -1, @STARTDATE)
AND rehuv.VER_DATUM <= DATEADD(year, -1, @ENDDATE) THEN rehuv.BELOPP ELSE 0
END AS PREVIOUS_YEAR_MONTH
提前谢谢!
祝你好运, 西蒙
答案 0 :(得分:0)
如果你想要去年的每月总和,你可以试试这个:
DECLARE @STARTDATE DATETIME;
DECLARE @ENDDATE DATETIME;
SET @STARTDATE='2015-1-1';
SET @ENDDATE='2015-5-1';
DECLARE @LAST_YEAR DATE;
SET @LAST_YEAR = DATEADD(YEAR, -1, DATEADD(DAY,
DATEPART(DAYOFYEAR, GETDATE())*-1+1, CONVERT(DATE, GETDATE())));
SELECT DATEADD(MONTH, DATEPART(MONTH, VER_DATUM), @LAST_YEAR) MONTH, SUM(CASE
WHEN REHUV.VER_DATUM >= DATEADD(YEAR, -1, @STARTDATE)
AND REHUV.VER_DATUM <= DATEADD(YEAR, -1, @ENDDATE)
THEN REHUV.BELOPP ELSE 0
END ) AS PREVIOUS_YEAR_MONTH
FROM REHUV
GROUP BY DATEPART(MONTH, VER_DATUM)