我有两张桌子:在线订单,在线订单详情 我有一个关于如何根据详细订单表计算在线订单表中订单总金额的问题。
详细信息表如下所示:
id_order Id_product quantity price value
1 2 1 3 3
1 3 2 2 4
2 1 1 5 5
我想将id_order中的所有值相加,然后将它们插入到在线订单表中的订单总金额。
你能帮我解决SQL命令吗?
答案 0 :(得分:1)
目前尚不清楚您使用的数据库系统。
如果你想更新orders.total_amount
此更新语句将在任何DB下工作:
update orders
set total_amount = (
select SUM(value)
from orders_details
where id_order = orders.id
)
where EXISTS(select *
from orders_details
where id_order = orders.id)
此更新语句适用于MySQL:
update orders u
inner join (select id_order, SUM(value) as total
from orders_details
GROUP BY id_order) s on
u.id = s.id_order
set u.total_amoun = s.total
答案 1 :(得分:0)
这是你想要的吗?
SELECT o.id_order, SUM(quantity * price) AS total_price
FROM online o
INNER JOIN detail d
ON d.id_order = o.id_order
GROUP BY o.id_order