2012-04-27 4 views
-1

Предположим, что у нас есть таблица и сохранить на ней customerid и orderid.Количество смешивания и существует в одном запросе

Каков наилучший подход для взятия подсчета всего заказа и проверка существует определенного CustomerID в один запрос?

Я знаю, что этот запрос неверен, но я вынужден написать, что, поскольку Stackoverflow не разрешил мне опубликовать короткий вопрос!

Например:

(имя таблицы tbTest)

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

ответ

1

Пожалуйста, попробуйте с

происходит некорректно
SELECT COUNT(ORDERID), 
     CASE 
      WHEN EXISTS(SELECT ID FROM tbTest WHERE customerid = {n}) then 'Exist' 
      ELSE 'Not Exist' 
     END 
FROM tbTest 
+0

спасибо, это правильно, но у меня есть вопрос. проверяет выражение case sql server для любых строк? –

+0

добро пожаловать. я не уверен в ответе на ваш вопрос, но, пожалуйста, проконсультируйтесь с некоторыми образцовыми данными, чтобы вы могли с уверенностью сказать об этом. – sarwar026

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; 
+0

в первом запросе первой группы от customerid, затем получите счетчик заказа клиента –

+0

, а в вашем втором запросе получите кол-во клиентов –

+0

Да, я знаю. С вашего вопроса сложно сказать, чего вы хотите. –

Смежные вопросы