回答

收藏

从SQL中移动4行计算总和

技术问答 技术问答 235 人阅读 | 0 人回复 | 2023-09-12

我有以下数据。
% h  l2 [" k, i& r            WM_Week  POS_Store_Count POS_Qty POS_Sales   POS_Cost   ------   --------------- ------  --------    --------   201541  3965          7722    15390404.67   102593.04 201542  3952           7866  154219154219.66   102783.12  201543 3951 3951        .06   94724.201544年   3958            7733  1401311311314013.41   95543.55555  201545  3958             56623  15173935555                                                                           5151516666666235555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555.31   103441.505  201546  3956         3236   145016501650165016.54   98868.60 201547 201547 3939       54317 .62   86827.3927               60762   120309309.32   82028.70我需要写一个SQL查询过去四周的数据,并总结以下每列的最后四周:POS_Store_Count,POS_Qty,POS_Sales,和POS_Cost。3 [6 \0 l- n; w7 ~; ^6 F- V  q
例如,如果我想要201548年的数据,它将包括201548年、201547年、201546年和201545年。
: o* e3 Q1 t+ @9 M201547年之和将包括201547年、201546年、201545年和201544年。3 R. K) E1 i# p/ g% t8 p* a/ A6 W
运行成功后,查询应返回4行。6 f9 h1 h6 d" E3 `8 S
我将如何制定递归查询来做到这一点?有什么比递归更容易做到的吗?
! o6 g+ L& I; H编辑:版本为Azure Sql DW,版本号为12.0.2000。Edit2:应该返回的四行将有自己的列总和,这是前三周。' P5 Z, K, b5 I9 G: k. q
例如,如果我想要201548的数字,它将返回以下内容:
, |  Z; e+ c' f: W# o' H2 DWM_Week POS_Store_Count POS_Qty  POS_Sales   POS_Cost------  --------------- -------  --------    --------201548  15780      274938     5443333.79   371166.3201548年,201547年,201546年,201546年,201545年。
4 E: Z" t" D8 ?                                                                ! `1 s  E# X9 o/ M
    解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则