从SQL中的结果集中减少数量

时间:2018-10-23 20:44:10

标签: sql-server tsql inventory-management

这似乎是一个非常简单的问题,但我找不到正确的解决方案,所以也许我问的是错误的问题。

我有一个简单的结果集。列出相同的部分N次。每个记录需要N个部分。手上的总量也为N。

Id | Part | QtyRequired | OnHandQty
1  | 123  | 10          | 100
2  | 123  | 5           | 100
3  | 123  | 22          | 100

等等。

如何为这样的结果集返回“剩余”数量。

Id | Part | QtyRequired | OnHandQty | RemainingQty
1  | 123  | 10          | 100       | 90
2  | 123  | 5           | 100       | 85
3  | 123  | 22          | 100       | 63

2 个答案:

答案 0 :(得分:3)

您可以总结每个零件条目所需的数量:

工作示例:

DECLARE @Inventory TABLE
(
    Id int,
    Part int,
    QtyRequired INT,
    OnHandQty INT
)

INSERT INTO @Inventory (Id, Part, QtyRequired, OnHandQty)
    VALUES (1, 123, 10, 100),
            (2, 123, 5, 100),
            (3, 123, 22, 100)


SELECT
    Id
   ,Part
   ,QtyRequired
   ,OnHandQty
   ,OnHandQty - SUM (QtyRequired) OVER (PARTITION BY Part ORDER BY Id) AS RemainingQty
FROM @Inventory

如果您需要知道使用的数量,可以添加以下内容:

SUM (QtyRequired) OVER (PARTITION BY Part ORDER BY Id) AS QuantityUsed

答案 1 :(得分:0)

您只是在寻找选择陈述吗?

select id, Part, QtyRequired,OnHandQty, (onhandqty-QtyRequired) as 'RemainingQty' from tablename