我是数据库的新手。我有以下表格
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;
答案 0 :(得分:0)
您缺少group_by子句,告诉SQL聚合具有相同order_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
这假定订单中至少包含一个项目 - 如果您想要满足空订单,请从订单中选择并使用上面的子查询执行左外连接。