我一直在无效使用组功能。我正在寻找一个表的值求和,并将答案返回到原始表。我将在触发器中使用它。
但是我一直在无效使用组函数1111
UPDATE `Order`
INNER JOIN orderitem
ON order.OrderID = orderitem.OrderId
SET Order.TotalAmmount = SUM(orderitem.UnitPrice)
WHERE orderitem.OrderitemId = order.OrderId
答案 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