首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >卡在SQL查询中

卡在SQL查询中
EN

Stack Overflow用户
提问于 2016-11-26 23:06:36
回答 1查看 105关注 0票数 0

我是数据库新手。我有以下表格

代码语言:javascript
复制
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)

所需查询如下:

  • 编写SQL查询以检索每个订单的项目计数和总价。
  • 编写一个SQL查询,以检索已从仓库以“FridaHouse”名称发送的订单的总价。

这是我对第一个查询的尝试,但肯定不会成功。

代码语言:javascript
复制
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;
EN

回答 1

Stack Overflow用户

发布于 2016-11-26 23:18:40

您缺少了一个group_by子句,它告诉SQL使用相同的order_id聚合所有行。另外,您应该返回订单的id,而不是条目的id(订单中可能有不同的项,因此SQL不知道返回哪一项)。减去可能的输入,第一个查询应该如下所示:

代码语言:javascript
复制
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

这假设任何订单至少包含一项--如果要满足空订单的需要,请从订单中选择并使用上面的子查询执行左外部连接。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40824072

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档