混合计数并存在于一个查询中

时间:2012-04-27 02:43:07

标签: mysql sql sql-server sql-server-2008

假设我们有一个表并保存customerid和orderid。

一个查询计算所有订单检查某些customerid 是否存在的最佳方法是什么?

我知道这个查询是错误的,但我强迫写,因为Stackoverflow不允许我发布简短的问题!

例如:

(表名tbTest)

SELECT 
    COUNT(ORDERID), 
    EXIST(SELECT ID FROM tbTest WHERE customerid = {n}) 
FROM tbTest

2 个答案:

答案 0 :(得分:1)

你的意思是

SELECT CustomerID, COUNT(OrderID)
FROM dbo.tbTest
GROUP BY CustomerID;

或者

DECLARE @CustomerID INT;

SET @CustomerID = 20;

SELECT COUNT(*)
FROM dbo.tbTest
WHERE CustomerID = @CustomerID;

答案 1 :(得分:1)

请尝试使用以下

SELECT  COUNT(ORDERID),
        CASE
            WHEN EXISTS(SELECT ID FROM tbTest WHERE customerid = {n}) then 'Exist'  
            ELSE 'Not Exist'
        END
FROM tbTest