Pregunta

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...

¿Fue útil?

Solución

   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;

Otros consejos

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;
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top