我想我在查询中遗漏了一些用于计算发票总额的内容。以下代码用于显示在特定范围的order_id之间进行的所有订单并正确计算,但我希望所有order_id显示在一行而不是由单个item_id分开,因为我不想重复order_id。
select order_details.order_id, order_details.item_id, items.unit_price *
order_details.order_qty as itemtotal
from order_details
join items on
order_details.item_id = items.item_id
where order_id >= 400 and order_id <= 700
group by order_details.order_id, order_details.item_id
order by order_id asc;
我只需要找出一种方法将order_id组合在一起,这样我就可以计算单行总订单,而不是购买特定商品的总数,如果有意义的话。
答案 0 :(得分:1)
如果你需要order_id的总和,你应该使用聚合函数作为sum() 最后是item_id的group_concat(),例如:
select
order_details.order_id
, group_concat(order_details.item_id) ids
, sum(items.unit_price * order_details.order_qty) as itemtotal
from order_details
join items on
order_details.item_id = items.item_id
where order_id >= 400 and order_id <= 700
group by order_details.order_id
order by order_id asc;