如果产品重复,我遇到了扣除产品数量的问题,如下图所示:
订购前的产品表:
当有人订购时:OrderDetails表
更新的产品表:
如下图所示,客户订购的产品数量为3,产品数量为1,但只从产品表中扣除1个数量,我该怎么办?
这是我的代码:
UPDATE Products
SET Products.Quantity = Products.Quantity - (Select Sum(OrderDetails.Quantity)
From Products INNER JOIN OrderDetails ON Products.ProductNo = OrderDetails.ProductNo
WHERE OrderDetails.Status = 'OK')
From Products INNER JOIN OrderDetails ON Products.ProductNo = OrderDetails.ProductNo
WHERE OrderDetails.Status = 'OK'
答案 0 :(得分:0)
这种方式怎么样(没有经过测试,我来自sql-server后台而不是mysql):
UPDATE Products
SET Products.Quantity = Products.Quantity
- (SELECT SUM(OD.Quantity)
FROM Products p
INNER JOIN OrderDetails od ON od.ProductNo = p.ProductNo
WHERE p.ProductNo = Products.ProductNo
AND OrderDetails.Status = 'OK'
GROUP BY od.ProductNo
)
FROM Products
WHERE OrderDetails.Status = 'OK'