可以肯定的是,这将为您提供所需的内容。在订购数据以应用SUMS之后,我使用了交叉应用
Create Table #WeeklyData (WM_Week Int, POS_Store_Count Int, POS_Qty Int, POS_Sales Money, POS_Cost Money)Insert #WeeklyData Values(201541,3965,77722,153904.67,102593.04),(201542,3952,77866,154219.66,102783.12),(201543,3951,70690,139967.06,94724.6),(201544,3958,70773,140131.41,95543.55),(201545,3958,76623,151739.31,103441.05),(201546,3956,73236,145016.54,98868.6),(201547,3939,64317,127368.62,86827.95),(201548,3927,60762,120309.32,82028.7)DECLARE @StartWeek INT = 201548;WITH cte AS( SELECt *, ROW_NUMBER() OVER (ORDER BY [WM_Week] DESC) rn FROM #WeeklyData WHERe WM_Week BETWEEN @StartWeek - 9 AND @StartWeek )SELECt *FROM cte c1CROSS APPLY (SELECt SUM(POS_Store_Count) POS_Store_Count_SUM, SUM(POS_Qty) POS_Qty_SUM, SUM(POS_Sales) POS_Sales_SUM, SUM(POS_Cost) POS_Cost_SUM FROM cte c2 WHERe c2.rn BETWEEN c1.rn AND (c1.rn + 3)) ca WHERe c1.rn <= 4



