【发布时间】:2016-04-09 21:17:54
【问题描述】:
我有以下数据。
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 的四个(非身份)列的总和。
【问题讨论】:
-
到目前为止您尝试过什么查询?
-
你想
sum做什么?您可能可以通过使用top、where和order by desc的非常基本的查询来做到这一点... -
@sgeddes 抱歉,我正在尝试总结
POS_Store_Count、POS_Qty、POS_Sales和POS_Cost列。我会相应地更新我的问题。 -
什么版本的 SQL Server?
-
@Love2Learn Azure Sql 数据仓库。看起来好像版本是 12.0.2000。
标签: sql sql-server azure-sqldw