【问题标题】:UPDATE and SET column row values by calculating values from antoher table通过计算另一个表中的值来更新和设置列行值
【发布时间】:2021-01-31 06:03:32
【问题描述】:

我有两张桌子:

产品 - 具有 UnitsSold(已售产品/项目的总/累计数量),以及

sales - 具有 SoldQuantity(每笔交易售出多少件商品)

同一个商品可能会被多次销售,所以我们需要从有 SoldQuantity 的 sales 表中计算它的销售次数,并以 UnitsSold 显示结果,这将显示我们每件商品总共售出多少商品。

我使用这个查询,但它返回一些问题

#1111 - 组函数的使用无效):

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

那么返回准确结果并解决这个问题的正确查询是什么?

【问题讨论】:

    标签: mysql sql database phpmyadmin


    【解决方案1】:

    你可以为你的 SUM 做一个子查询

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

    【讨论】:

    • 您好,希望这行得通,但我确信我将再次面临子查询错误,感谢您的努力
    【解决方案2】:

    加入前需要聚合:

    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;
    

    【讨论】:

    • @侯赛因。 . .你有理由不接受这个答案吗?它不适合你吗?
    • 对不起,它运作良好,第二个答案也运作良好,但我使用你的解决方案。非常感谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 2021-09-28
    • 1970-01-01
    • 2013-12-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多