【问题标题】:Decrement quantity from result set in SQL从 SQL 中的结果集中减少数量
【发布时间】:2018-10-23 20:44:09
【问题描述】:

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

我有一个简单的结果集。列出 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

【问题讨论】:

    标签: sql-server tsql inventory-management


    【解决方案1】:

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

    工作示例:

    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
    

    【讨论】:

    • 这正是我所缺少的。如果可以,我会拥抱你!
    【解决方案2】:

    您只是在寻找 select 语句吗?

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

    【讨论】:

    • 抱歉,这只会给我记录计数,我需要滚动计数。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-09
    • 1970-01-01
    • 1970-01-01
    • 2017-06-07
    相关资源
    最近更新 更多