簡體   English   中英

通過計算另一個表中的值來更新和設置列行值

[英]UPDATE and SET column row values by calculating values from antoher table

我有兩個表:

產品 - 具有 UnitsSold(已售產品/項目的總/累計數量),以及

sales - 有 SoldQuantity(每筆交易售出多少單位)

同一個單位可以多次銷售,因此我們需要從具有 SoldQuantity 的銷售表中計算它的銷售次數,並在 UnitsSold 中顯示結果,這將顯示我們每件商品總共銷售了多少件商品。

我使用這個查詢,但它返回一些問題

#1111 - 無效使用組功能):

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

那么哪個是返回准確結果並解決此問題的正確查詢?

加入前需要聚合:

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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM