【问题标题】: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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-01
      • 1970-01-01
      • 2015-02-03
      • 1970-01-01
      • 2012-11-01
      • 2012-11-02
      相关资源
      最近更新 更多