假设我们有一个表并保存customerid和orderid。
在一个查询中计算所有订单和检查某些customerid 是否存在的最佳方法是什么?
我知道这个查询是错误的,但我强迫写,因为Stackoverflow不允许我发布简短的问题!
例如:
(表名tbTest)
SELECT
COUNT(ORDERID),
EXIST(SELECT ID FROM tbTest WHERE customerid = {n})
FROM tbTest
答案 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