微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

需要在 case 语句中对同一组项目求和

如何解决需要在 case 语句中对同一组项目求和

我有一个同批次的商品需要更新商品库存。当下面的查询执行时,只有一个项目批次库存被添加到库存中。需要对同一组项目进行分组。如果相同的项目记录存在两次,则当前发出以下查询添加一次。如何在case语句中分组和求和。

UPDATE si
SET si.iCurrentStock = si.iCurrentStock + 
                          (CASE 
                              WHEN  ttd.vEffectType = 'Add' THEN ttd.iLeafQuantity
                              WHEN ttd.vEffectType = 'Subtract' THEN ttd.iLeafQuantity * -1 
                              ELSE 0 
                           END),ttd.bIsstockUpdated = 1
FROM dbo.tblStoreItem si
INNER JOIN dbo.tblTransactionDetail ttd ON si.iItemId = ttd.iItemId
WHERE si.iStoreId = @v_StoreId
  AND ttd.iTransactionId = @p_TransactionId
  AND ISNULL(ttd.bIsstockUpdated,0) = 0;



ItemId:1  Cost:500  BatchNumber:111 Quantity:200
ItemId:1  Cost:500  BatchNumber:222 Quantity:300
ItemId:1  Cost:200  BatchNumber:333 Quantity:100

600 件数量必须添加到当前库存中,但以上查询添加了 200 件。

解决方法

如果没有更多信息,您可能需要以下内容:

esc

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。