Question

I made this query and now I have to find different ways which will return same results.

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;

So I made this but I have no idea where should I put the ">=10" condition. Could someone tell me how to do it? I tried some ways but it didn't work.

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;

It's for MS SQL Server...

Was it helpful?

Solution

   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;

OTHER TIPS

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;
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top