SQL子查询中的条件
我做了这个查询,现在我必须找到不同的方法来返回相同的结果SQL子查询中的条件,sql,subquery,Sql,Subquery,我做了这个查询,现在我必须找到不同的方法来返回相同的结果 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(O
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…请指定您的数据库。这部分工作正常。它返回的公司来自德国或巴西,订单超过10份,但也返回其他订单为空的公司。我只需要有超过10个订单的公司。非常感谢!这正是我需要的。
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;
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;