我有以下数据。
WM_Week POS_Store_Count POS_Qty POS_Sales POS_Cost
------ --------------- ------ -------- --------
201541 3965 77722 153904.67 102593.04
201542 3952 77866 154219.66 102783.12
201543 3951 70690 139967.06 94724.60
201544 3958 70773 140131.41 95543.55
201545 3958 76623 151739.31 103441.05
201546 3956 73236 145016.54 98868.60
201547 3939 64317 127368.62 86827.95
201548 3927 60762 120309.32 82028.70
我需要编写一个 SQL 查询来获取最后 4 周的数据,并将它们的最后 4 周汇总为以下列中的每一列:POS_Store_Count
、POS_Qty
、POS_Sales
和POS_Cost
。
例如,如果我想要 201548 的数据,它将包含 201548、201547、201546 和 201545 的数据。
201547 的总和将包含 201547、201546、201545 和 201544。
成功运行时,查询应返回 4 行。
我将如何制定一个递归查询来做到这一点?有什么比递归更容易做到这一点的吗?
编辑:版本是 Azure Sql DW,版本号为 12.0.2000。Edit2:应该返回的四行将具有来自其自身的列的总和,并且是前三周。
例如,如果我想要 201548 的数字,它将返回以下内容:
WM_Week POS_Store_Count POS_Qty POS_Sales POS_Cost
------ --------------- ------- -------- --------
201548 15780 274938 544433.79 371166.3
201548
这是来自、201547
、201546
和的四个(非身份)列的总和201545
。