ストアド プロシージャで次のコードを記述しましたが、期待どおりに動作しません
UPDATE dbo.products
SET stock = t.totalquantity
FROM dbo.products
INNER JOIN ( SELECT accountdetail.itemnumber ,
SUM(accountdetail.quantity + products.stock) totalquantity
FROM accountdetail ,
products
WHERE accountdetail.orderid = @accountorderid
AND dbo.products.itemnumber = accountdetail.itemnumber
GROUP BY accountdetail.itemnumber
) t ON dbo.products.itemnumber = t.itemnumber
数量の項目番号が 1 つしかない場合、コードは正常に機能しますが、数量の同じ項目番号が 2 つある場合、結果は正しくありません。
例えば
- 製品.在庫 = 4
accountdetail.duantity = 1 つのアイテム番号から 2
products.stock = 6 - これは正しいです
製品.在庫 = 4
accountdetail.duantity = 2 つの itemnumbers から同じ
products.stock = 12 - これは正しくありません。何が問題なのかを理解するのに助けが必要です。
前もって感謝します。