0

我找到了多个答案如何将 sum 与 update 一起使用,但没有得到正确的答案。

创建新发票时,我不想使用发票行更新存储数量。我需要 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 子句以标记行以防止多个操作。

4

0 回答 0