Как следует из сообщения об ошибке, вы не можете использовать агрегатную функцию внутри другой агрегатной функции.
Для вашего запроса, чтобы достичь суммы OrderRecordId
, когда RequestStatusKey IN (1,2)
, вы можете использовать SUM
без использования COUNT
, например:
SUM(CASE WHEN RequestStatusKey IN (1,2) THEN 1 ELSE 0 END) AS GrandTotal
Однако, как предположил Тим, поскольку вы уже использовали RequestStatusKey IN (1,2)
в своем предложении WHERE
, вам не нужно использовать условное SUM
. Просто используйте COUNT
без условий:
COUNT(OrderRecordId) AS GrandTotal
UPDATE:
Поскольку вы хотите показать сумму всех строк в одном и том же результате, вы можете использовать ROLLUP
для этого:
SELECT
ISNULL(OQ.GroupID,'Grand Total') GroupName,
CONVERT(VARCHAR, COUNT(OrderRecordID)) TotalRecord
FROM tblDesk OQ
WHERE OQ.RequestStatusKey IN ( 1, 2 )
AND OQ.GroupID IS NOT NULL
GROUP BY ROLLUP (OQ.GroupID)
ORDER BY OQ.GroupID
См. Это SQLFiddle .