Я считаю количество сущностей, которые были получены между двумя датами или были разрешены между этими теми же двумя датами, и затем группирую их по их источнику.
В настоящее время мой код
SELECT
CASE WHEN GROUPING(EntitySource) = 1 THEN 'Total' ELSE EntitySource END EntitySource,
(
SELECT COUNT(PostmarkDate)
FROM tblEntity t1
Where ((PostmarkDate BETWEEN @StartDate AND @EndDate)) AND t1.EntitySource = t.EntitySource
) AS Recieved,
COUNT(ResolDate) AS Completed
FROM tblEntity t
WHERE
(IsCompleted = '1' AND (ResolDate BETWEEN @StartDate AND @EndDate)) OR ( (PostmarkDate BETWEEN @StartDate AND @EndDate))
GROUP BY EntitySource WITH ROLLUP
ORDER BY
CASE WHEN EntitySource = 'D' THEN 1 ELSE 2 END,
CASE WHEN EntitySource = 'B' THEN 1 ELSE 2 END,
CASE WHEN EntitySource = 'C' THEN 1 ELSE 2 END,
CASE WHEN EntitySource = 'E' THEN 1 ELSE 2 END,
CASE WHEN EntitySource = 'A' THEN 1 ELSE 2 END,
CASE WHEN EntitySource = 'F' THEN 1 ELSE 2 END
Использование этого запроса приводит к таблице
EntitySource Recieved Completed
D 79 175
B 272 614
C 19 13
E 1 6
A 1 0
F 3 12
Total 0 820
Как вы можете видеть, ROLLUP правильно суммирует столбец завершенных сущностей, но вообще не суммирует полученный столбец.Итого по этому столбцу должно отображаться 375, что дает общую строку
Total 375 820