【发布时间】:2021-09-22 16:44:09
【问题描述】:
我有一个数据,它结合了不同零件的库存、销售预测和未来供应数据。我把它结合起来给我一个表格,每个月给出每个部分的净数量。见下文:
| Date | Part | Net Quantity |
|---|---|---|
| 30/06/2021 | A | 1000 |
| 31/07/2021 | A | -150 |
| 31/08/2021 | A | -200 |
| 30/09/2021 | A | -500 |
| 31/10/2021 | A | -200 |
| 30/11/2021 | A | -200 |
| 31/12/2021 | A | 50 |
| 30/06/2021 | B | 100 |
| 31/07/2021 | B | -80 |
| 31/08/2021 | B | 20 |
| 30/09/2021 | B | -30 |
| 31/10/2021 | B | -35 |
| 30/11/2021 | B | -40 |
| 31/12/2021 | B | -150 |
我需要创建一个按零件编号分区的运行总计视图,如果低于 0,则在下个月重置。如果上个月的期末库存为负,则运行总计的起点需要为 0。
我的预期结果是这样的:
| Date | Part | Net Quantity | Closing Inventory (Expected Outcome) |
|---|---|---|---|
| 30/06/2021 | A | 1000 | 1000 |
| 31/07/2021 | A | -150 | 850 |
| 31/08/2021 | A | -200 | 650 |
| 30/09/2021 | A | -500 | 150 |
| 31/10/2021 | A | -200 | -50 |
| 30/11/2021 | A | -200 | -200 |
| 31/12/2021 | A | 50 | 50 |
| 30/06/2021 | B | 100 | 100 |
| 31/07/2021 | B | -80 | 20 |
| 31/08/2021 | B | 20 | 40 |
| 30/09/2021 | B | -30 | 10 |
| 31/10/2021 | B | -35 | -25 |
| 30/11/2021 | B | -40 | -40 |
| 31/12/2021 | B | -150 | -150 |
我当前的代码是:
SELECT
Date,
Part,
Net_Quantity,
sum(Net_Quantity) over (partition by Part order by date) 'Closing_Inventory'
FROM grouped
我不确定如何根据运行总计中的最后一个值创建条件,lag 函数无法查看运行总计的上一行。
【问题讨论】:
标签: sql sql-server inventory-management