Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 混合计数和存在于一个查询中_Mysql_Sql_Sql Server_Sql Server 2008 - Fatal编程技术网

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

Mysql 混合计数和存在于一个查询中,mysql,sql,sql-server,sql-server-2008,Mysql,Sql,Sql Server,Sql Server 2008,假设我们有一个表,并将customerid和orderid保存在表上 在一次查询中统计所有订单并检查特定客户ID是否存在的最佳方法是什么 我知道这个查询是错误的,但我强迫写,因为Stackoverflow不允许我发布简短的问题 例如: (表名tbTest) 你是说 SELECT CustomerID, COUNT(OrderID) FROM dbo.tbTest GROUP BY CustomerID; 或许 DECLARE @CustomerID INT; SET @CustomerID

假设我们有一个表,并将customerid和orderid保存在表上

在一次查询中统计所有订单并检查特定客户ID是否存在的最佳方法是什么

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

例如:

(表名tbTest)

你是说

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

DECLARE @CustomerID INT;

SET @CustomerID = 20;

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

请试着用下面的方法

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

在第一次查询中,首先按customerid分组,然后获取customerid的订单计数,在第二次查询中获取customerYes的计数,我知道。从你的问题很难看出你想要什么。谢谢,这是正确的,但我有一个问题。是否检查sql server案例表达式中的任何行?欢迎。我不确定你问题的答案,但请检查一些样本数据,以便你能确定。
SELECT  COUNT(ORDERID),
        CASE
            WHEN EXISTS(SELECT ID FROM tbTest WHERE customerid = {n}) then 'Exist'  
            ELSE 'Not Exist'
        END
FROM tbTest