1

ストアド プロシージャで次のコードを記述しましたが、期待どおりに動作しません

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 - これは正しくありません。何が問題なのかを理解するのに助けが必要です。

前もって感謝します。

4

2 に答える 2