【问题标题】:How could I add a WHERE condition to code with INNER JOINs?如何添加 WHERE 条件以使用 INNER JOIN 进行编码?
【发布时间】:2019-09-17 10:41:27
【问题描述】:
我不知道如何为 AS 列添加 where 条件,有没有
我尝试过使用方括号的列,但它不起作用
SELECT
Suppliers.CompanyName,
SUM([Order Details].UnitPrice*Quantity) AS [Total sales]
FROM
[Order Details]
INNER JOIN
Products ON products.ProductID = [Order Details].ProductID
INNER JOIN
Suppliers ON Products.SupplierID = Suppliers.SupplierID
WHERE
GROUP BY
Suppliers.CompanyName
ORDER BY
2 DESC;
我只想看到总销售额超过 10,000
【问题讨论】:
标签:
sql
sql-server
inner-join
where
【解决方案1】:
您需要在 HAVING 子句中添加条件:
SELECT
Suppliers.CompanyName,
SUM([Order Details].UnitPrice*Quantity)AS [Total sales]
FROM [Order Details]
INNER JOIN
Products ON products.ProductID= [Order Details] .ProductID
INNER JOIN
Suppliers ON Products.SupplierID= Suppliers.SupplierID
GROUP BY Suppliers.CompanyName
HAVING SUM([Order Details].UnitPrice*Quantity) > 10000
Order by 2 desc;
【解决方案2】:
您只需添加HAVING 子句而不是WHERE 子句,
在GROUP BY之后
HAVING SUM([Order Details].UnitPrice*Quantity) > 10000
在您的 SQL 语句中:
SELECT Suppliers.CompanyName, SUM([Order Details].UnitPrice*Quantity) AS [Total sales]
FROM [Order Details]
INNER JOIN
Products ON products.ProductID= [Order Details] .ProductID
INNER JOIN
Suppliers ON Products.SupplierID= Suppliers.SupplierID
GROUP BY Suppliers.CompanyName
HAVING SUM([Order Details].UnitPrice*Quantity) > 10000
ORDER BY 2 desc