如何在具有相同产品编号的表中扣除重复产品的数量

时间:2014-02-05 05:54:03

标签: mysql sql duplicates

如果产品重复,我遇到了扣除产品数量的问题,如下图所示:

订购前的产品表:

enter image description here

当有人订购时:OrderDetails表

enter image description here

更新的产品表:

enter image description here

如下图所示,客户订购的产品数量为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'

1 个答案:

答案 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'