通过计算另一个 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)
我有两个 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)