【发布时间】:2018-05-22 04:00:32
【问题描述】:
我正在编写一个 SQL Server 脚本,以根据实际库存重新计算过去 365 天内从今天开始的特定 SKU 的库存。在脚本中,我做了很多数据清理操作。最后,输出是从一个临时表中产生的,如下所示:
SELECT
DATE,
SUM(CASE WHEN MOV='IN' THEN 1 ELSE 0 END) AS TRANSACTION_IN, --COUNT TRANSACTIONS IN
SUM(CASE WHEN MOV='OUT' THEN 1 ELSE 0 END) AS TRANSACTION_OUT, --COUNT TRANSACTIONS OUT
SUM(CASE WHEN MOV ='IN' THEN QTD ELSE 0 END) AS SUM_IN, --SUM QUANTITY IN
SUM(CASE WHEN MOV ='OUT' THEN QTD ELSE 0 END) AS SUM_OUT --SUM QUANTITY IN
FROM #MOVIMENTS
GROUP BY DT
ORDER BY DT
下面可以看到所示 SQL 的输出示例:
该表显示了交易的总和以及仓库的进出数量,按日期分组。我的意图是添加一个名为“STOCK”的列,该列显示代表日 SKU 的库存水平。为此,我所拥有的是实际库存水平。所以我需要的是通过所有日期系列每天重新计算所有库存水平。
在 Excel 中这很容易。我可以将实际级别放在最后一行(例如:10)并扩展计算(图像中显示的公式)直到我到达顶部。如图所示(E 列是公式,G 列是输出):
Inventory Recalculation on Excel
有人可以帮我在 SQL Server 中实现这个结果吗?
在 Python 中,我找到了一个使用 Pandas 的solution,但我更愿意在 SQL 脚本中实现这个计算。
【问题讨论】:
-
提示:查看 SUM() OVER ()
标签: sql sql-server tsql sql-server-2014