我想用去年同一周的銷售資料和 WTD 來確定當年 WTD 的銷售資料增長。
因此,如果本周是周一、周二、周三,我將嘗試比較去年同一周的周一、周二和周三,以確定銷售增長。這在某種意義上需要是動態的,因為它將在每日報告上運行,在前一天結束 WTD,通過 SSRS 將通過電子郵件發送給各種用戶。
我已經進行了大量的在線搜索并嘗試了幾次迭代,但都產生了不良影響。
最新的嘗試是
SELECT
[storeid],
SUM([Sales]) as [2021SalesWTD]
FROM [dbo].[DailySales2021]
WHERE CONVERT(date, [date]) >= DATEADD(DAY, 1-DATEPART(dw, DATEADD(YEAR,-1,GETDATE())), CONVERT(date, DATEADD(YEAR,-1,GETDATE())))
AND DATEADD(DAY, 8-DATEPART(dw, DATEADD(YEAR,-1,GETDATE())), CONVERT(date, DATEADD(YEAR,-1,GETDATE())))
GROUP BY storeid
這將回傳整個星期
uj5u.com熱心網友回復:
它可能會幫助您嘗試變數宣告。
這是我起草的內容:
--Get today's date, find the day of the week (1 indexed from Sunday) and subtract. Add 2 to balance this offset
DECLARE @MondayThisYear AS DATE = CAST(GETDATE()-DATEPART(WEEKDAY, GETDATE()) 2 AS DATE)
--Get the date a year ago. I haven't checked for leap year, add it if you need it
DECLARE @DateLastYear AS DATE = @MondayThisYear-365
--Same idea as MondayThisYear, but using the date from last year
DECLARE @MondayLastYear AS DATE = CAST(@DateLastYear-DATEPART(WEEKDAY, @DateLastYear) 2 AS DATE)
--The number of days that have passed in this working week
DECLARE @WorkingDays AS INT = DATEDIFF(d, @MondayThisYear, GETDATE())
SELECT [insert columns]
FROM [insert table name]
WHERE ([date column]>@MondayThisYear AND [date column]<GETDATE()) OR
([date column]>@MondayLastYear AND [date column]<@MondayLastYear @WorkingDays)
您可能還需要檢查我是如何定義上一年的日期的。在最壞的情況下,您可能會遇到一周偏差錯誤,但考慮到日歷的結構,我認為這是無法避免的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/534876.html
下一篇:有沒有更好的方法將值決議為多列?
