我是数据库新手。我有以下表格
Customer (customer_id, customer_name, city)
Order (order_id, order_date, customer_id)
Order_Item (order_id, item_id, quantity)
Item (item_id, unit_price)
Shipment (order_id, warehouse_id, ship_date)
Warehouse (warehouse_id, warehouse_name, warehouse_city)所需查询如下:
这是我对第一个查询的尝试,但肯定不会成功。
SELECT item.item_id, SUM(item.unit_price * order_item.quantity) AS TOTAL_PRICE
FROM order_item JOIN item on item.item_id=order_item.item_id;发布于 2016-11-26 23:18:40
您缺少了一个group_by子句,它告诉SQL使用相同的order_id聚合所有行。另外,您应该返回订单的id,而不是条目的id(订单中可能有不同的项,因此SQL不知道返回哪一项)。减去可能的输入,第一个查询应该如下所示:
select
order_id,
sum(quantity) as quantity,
sum(unit_price*quantity) as total_price
from order_item join item on item.item_id = order_item.item_id
group by order_id这假设任何订单至少包含一项--如果要满足空订单的需要,请从订单中选择并使用上面的子查询执行左外部连接。
https://stackoverflow.com/questions/40824072
复制相似问题