Ampliando la respuesta de KM, necesita una tabla de fechas que sea como una tabla de números. Hay muchos ejemplos en la web, pero aquí hay uno simple.
CREATE TABLE DateList (
DateValue DATE,
CONSTRAINT PK_DateList PRIMARY KEY CLUSTERED (DateValue)
)
GO
-- Insert dates from 01/01/2015 and 12/31/2015
DECLARE @StartDate DATE = '01/01/2015'
DECLARE @EndDatePlus1 DATE = '01/01/2016'
DECLARE @CurrentDate DATE = @StartDate
WHILE @EndDatePlus1 > @CurrentDate
BEGIN
INSERT INTO DateList VALUES (@CurrentDate)
SET @CurrentDate = DATEADD(dd,1,@CurrentDate)
END
Ahora tienes una mesa
entonces puede reescribir su consulta de la siguiente manera:
SELECT top (5) DateValue, isnull(Count(id),0) as Counted
FROM DateList
LEFT OUTER JOIN Table
on DateValue = CAST(Created AS DATE)
GROUP BY DateValue
order by DateValue desc
Dos notas:necesitará una cláusula where para especificar su rango. Unirse a un elenco no es lo ideal. El tipo de su tabla de fechas debe coincidir con el tipo de su tabla normal.