通过计算另一个 table 的值来更新和设置列行值

UPDATE and SET column row values by calculating values from antoher table

我有两个 table:

产品 - 有 UnitsSold(total/cumulative 销售量 products/item)和

sales - 有 SoldQuantity(每笔交易售出的单位数量)

同一件商品可能会被销售多次,因此我们需要从具有 SoldQuantity 的销售额 table 中计算它的销售次数,并以 UnitsSold 显示结果,这将显示我们售出的商品数量每项总计。

我使用这个查询,但它 return 有一些问题

#1111 - Invalid use of group function):

UPDATE products 
 JOIN sales 
   ON sales.Itemcode = products.Code 
  SET products.UnitsSold = SUM(sales.SoldQuantity) 
WHERE sales.ItemCode = products.Code

那么return准确的结果和解决这个问题的正确查询是什么?

加入前需要聚合:

UPDATE products p INNER JOIN
       (SELECT s.ItemCode, SUM(s.SoldQuantity) as SoldQuantity
        FROM sales s
        GROUP BY s.ItemCode
       ) s
       ON s.Itemcode = p.Code
    SET p.UnitsSold = s.SoldQuantity;

您可以为 SUM 创建子查询

UPDATE products INNER JOIN sales ON sales.Itemcode = products.Code 
SET products.UnitsSold = (SELECT SUM(sales.SoldQuantity) WHERE sales.ItemCode = products.Code)