无效使用组功能1111

时间:2018-09-19 18:34:56

标签: mysql triggers

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

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

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

2 个答案:

答案 0 :(得分:1)

使用子查询进行汇总:

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

答案 1 :(得分:0)

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

    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