【发布时间】:2016-11-18 11:17:03
【问题描述】:
我正在使用北风数据库,我的练习是:
哪些供应商提供同一类别的两种产品?显示公司名称、类别和两个产品名称
我的代码:
SELECT DISTINCT
c.CategoryID, s.CompanyName, p1.ProductName, p2.ProductName
FROM
Suppliers s
INNER JOIN
Products p1 ON s.SupplierID = p1.SupplierID
INNER JOIN
Products p2 ON p1.CategoryID = p2.CategoryID
AND p1.ProductID <> p2.ProductID
INNER JOIN
Categories c ON p2.CategoryID = c.CategoryID
GROUP BY
c.CategoryID,s.CompanyName, p1.ProductName, p2.ProductName`
如何使用 COUNT() 过滤它我尝试使用 HAVING 进行过滤,但失败了。
我会很感激一些帮助,这让我回到了正确的道路上。
【问题讨论】:
-
请提供样本数据和您的预期结果
-
您想要的输出格式是什么?您当前的查询不会为拥有 3 种产品的供应商返回合理的结果。产品必须在单独的列中,还是每个供应商只有两行?
-
应该是供应商名称的一行,两个产品具有相同的类别id和类别id
标签: sql-server join count self