【问题标题】:What is the valid SQL query for the following JOIN problem以下 JOIN 问题的有效 SQL 查询是什么
【发布时间】:2020-05-16 17:10:39
【问题描述】:

我有以下表格

Customer (CID, name, address)
Orders (CID, BID, onDate, quantity)
Device (DID, title, IMEI, price, MID)
Manufacturer (MID, name, address)

什么 SQL 语句可以让我检索所有的 ID 和名称 至少花费 X 金额的客户(例如 350) 在设备上使我的制造商成为“索尼”。该清单应包括每位客户在这些设备上花费的总金额。

【问题讨论】:

  • 到目前为止你尝试过什么?你是否被一些语法困住了?请添加您已经尝试过的sn-p。

标签: sql


【解决方案1】:

我假设表 Orders 包含一个列 DIDBID 是一个错字,对吧?)将它与表 device 相关联。
加入表格,按客户分组以聚合并在HAVING 子句中设置条件:

select c.CID, c.name,
       sum(o.quantity * d.price) total_amount
from customer c
inner join orders o on o.CID = c.CID
inner join device d on d.DID = o.DID
inner join manufacturer m on m.MID = d.MID
where m.name = 'Sony'
group by c.CID, c.name
having sum(o.quantity * d.price) >= 350

【讨论】:

  • 是的 BID 是一个错字,意思是 DID(设备 ID)谢谢你的回复,谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-13
  • 2013-02-23
  • 1970-01-01
  • 2018-08-11
  • 2016-09-27
  • 2010-12-23
相关资源
最近更新 更多