2013-10-29 51 views
1

我做了這個查詢,現在我必須找到不同的方法,它會返回相同的結果。SQL子查詢中的條件

SELECT CompanyName, COUNT(Orders.OrderID) Orders 
FROM Customers LEFT OUTER JOIN Orders ON Customers.CustomerID = Orders.CustomerID 
WHERE Country LIKE 'Germany' OR Country LIKE 'Brazil' 
GROUP BY CompanyName HAVING COUNT(Orders.OrderID) >= 10 
ORDER BY Orders ASC; 

所以我做了這個,但我不知道應該在哪裏放置「> = 10」條件。有人能告訴我該怎麼做嗎?我嘗試了一些方法,但沒有奏效。

SELECT CompanyName, (SELECT COUNT(OrderID) FROM Orders WHERE Customers.CustomerID = Orders.CustomerID) AS Orders 
FROM Customers 
WHERE Country LIKE 'Germany' OR Country LIKE 'Brazil' 
ORDER BY Orders ASC; 

這是MS SQL Server的...

+0

請註明你的DBMS –

回答

0
SELECT CompanyName, COUNT(Orders.OrderID) Orders 
    FROM Customers JOIN Orders ON Customers.CustomerID = Orders.CustomerID 
    WHERE Country IN('Germany','Brazil') 
    GROUP BY CompanyName 
    HAVING COUNT(Orders.OrderID) >= 10 
    ORDER BY Orders ASC; 
+0

非常感謝!這正是我需要的。 – sklebak

0
SELECT 
     COMPANYNAME, 
     (SELECT 
      COUNT (ORDERID) 
     FROM 
      ORDERS 
     WHERE 
      CUSTOMERS.CUSTOMERID = ORDERS.CUSTOMERID 
     HAVING 
      COUNT (ORDERID) >= 10) 
      AS ORDERS 
FROM 
     CUSTOMERS 
WHERE 
     COUNTRY LIKE 'Germany' 
     OR COUNTRY LIKE 'Brazil' 
ORDER BY 
     ORDERS ASC; 
+0

此工程部分。它從德國或巴西的公司返回超過10個訂單,而另一個公司的列訂單則爲NULL。我只需要有10多個訂單的公司。 – sklebak