繁体   English   中英

无效使用组功能1111

[英]Invalid use of group function 1111

我一直在无效使用组功能。 我正在寻找一个表的值求和,并将答案返回到原始表。 我将在触发器中使用它。

但是我一直在无效使用组函数1111

UPDATE `Order`
INNER JOIN orderitem
ON order.OrderID = orderitem.OrderId
SET Order.TotalAmmount = SUM(orderitem.UnitPrice)
WHERE orderitem.OrderitemId = order.OrderId

使用子查询进行汇总:

UPDATE `Order`
SET `Order`.TotalAmmount = 
  (SELECT SUM(UnitPrice)
   FROM orderitem
   WHERE OrderitemId = `Order`.OrderId)

您不能直接在集合值中使用聚合结果(因为结果与表的每一行之间的聚合级别不同),您应该对子查询使用内部联接以获取聚合结果,并将结果用于子查询

    UPDATE `Order`
    INNER JOIN (
        select orderitemID, SUM(orderitem.UnitPrice) sum_price
        from orderitem 
        group by orderitemID
    )  t on t.orderitemID = order.OrderId 
    SET  Order.TotalAmmount = t.sum_price

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM