我在存储过程中编写了以下代码,但它没有按我的预期工作
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 = 2 from one itemnumber
products.stock = 6 - 这是正确的
产品.库存 = 4
accountdetail.duantity = 2 from 两个 itemnumbers 相同
products.stock = 12 - 这是不正确的,我需要帮助来了解出了什么问题。
先感谢您。