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;
Pergunta
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...
Solução
Outras dicas
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 em: CC-BY-SA com atribuição
Não afiliado a StackOverflow