我有这个表,我是使用内部联接从sql生成的,现在我想计算每个order_id的总成本,例如屏幕截图显示订单ID为127的4个订单,我想结合总成本每个订购的项目由127分成一个数字,与其他订单ID相同。 我的价格在另一个表中,我没有在此查询中指定。
我正在考虑做一些像数量*价格这样的事情,但我不知道如何将其与我上面提到的订单ID相关联。
非常感谢你的帮助:)。sql:
select P.carrier_id, O.aircraft_id, O.order_id, O.quantity
from orderline O
inner join purchaseorder P on O.order_id = P.order_id;
我的结果到目前为止:
答案 0 :(得分:2)
您想使用group by
。我需要知道你的其余查询给你一个完整的版本,但是 - 粗略地说:
select P.carrier_id, O.aircraft_id, O.order_id, sum(O.quantity) -- columns
from orderline O
inner join purchaseorder P on O.order_id = P.order_id -- tables and join
group by P.carrier_id, O.aircraft_id, O.order_id;
您可能认为您只需按订单ID进行分组,但经验法则实际上是“按您未计算的所有内容进行分组(或汇总...)
此外,正如另一个答案所指出的,如果您有价格记录,您可以sum(O.quantity*P.price)
或接近该价格的东西来获得每个订单的总价。
答案 1 :(得分:1)
您需要在GROUP BY
,ORDER_ID
上执行AIRCRAFT_ID
,然后执行SUM(quantity * price)