Migliorando la risposta di Dale K, ti suggerisco di utilizzare una tabella o una funzione di conteggio, poiché di solito è più performante.
Ho usato quello famoso di Itzik Ben-Gan di seguito:
DECLARE @StartDate date = '2020-11-01', @EndDate date = '2021-02-22';
WITH
L0 AS ( SELECT 1 AS c
FROM (VALUES(1),(1),(1),(1),(1),(1),(1),(1),
(1),(1),(1),(1),(1),(1),(1),(1)) AS D(c) ),
L1 AS ( SELECT 1 AS c FROM L0 AS A CROSS JOIN L0 AS B ),
L2 AS ( SELECT 1 AS c FROM L1 AS A CROSS JOIN L1 AS B ),
Nums AS ( SELECT ROW_NUMBER() OVER(ORDER BY (SELECT NULL)) AS rownum
FROM L2 )
Date_Range_T (d_range) AS (
SELECT TOP(DATEDIFF(day, @StartDate, @EndDate) + 1)
DATEADD(day, rownum - 1, @StartDate) AS d_range,
DATEADD(day, rownum, @StartDate) AS d_rangeNext
FROM Nums
)
SELECT d_range, COUNT(Id) AS Total
FROM Date_Range_T
LEFT JOIN tbl_Support_Requests R
ON R.CreatedDate >= T.d_range AND R.CreatedDate < T.d_rangeNext
GROUP BY d_range
ORDER BY d_range ASC