使用(SUM)更新存储数量/更新

时间:2013-06-18 20:12:06

标签: sql-server-2008 sql-update sum

我找到了多个答案,如何使用sum和更新,但没有做到这一点。

创建新发票时,我不想使用发票行更新存储数量。我需要总和来处理多行中的相同产品。 编辑:有时我需要在存储已经使用当前更新后添加新发票行,因此我需要标记好的行并总结新行并再次减少存储。

通过几个小时的谷歌搜索和大量的测试我得到它以某种方式工作:

 UPDATE Storage
 SET StorageQty = StorageQty-(SELECT SUM (InvoiceQty)
           FROM InvoiceRows AS Inv
           WHERE Inv.ProductId = Sto.ItemID
           AND Inv.InvoiceId = #InvoiceId#)
 FROM InvoiceRows, Storage AS Sto
 WHERE InvoiceRows.ProductID = Sto.ItemID
 AND InvoiceRows.InvoiceId = #InvoiceId#

问题是我不理解它是如何工作的,我需要将Invoicerows.StorageOk IS NULL添加到where子句,以便它计算总和并仅更新尚未更新的行。 StorageOk设置为1,带有next子句以标记行以防止多个操作。

0 个答案:

没有答案