1

我有这张表是我使用内部连接从 sql 生成的,现在我想计算每个 order_id 的总成本,例如屏幕截图显示了 4 个订单 id 为 127 的订单,我想合并每个订购商品的总成本由 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;

到目前为止我的结果:

在此处输入图像描述

4

2 回答 2

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)或做一些类似的事情来获得每个订单的总价格。

于 2013-04-19T20:32:11.933 回答
1

你需要做一个GROUP BYon ORDER_ID, AIRCRAFT_ID,然后做一个SUM(quantity * price)

于 2013-04-19T20:30:44.687 回答