KM の回答を拡張すると、数値テーブルのような日付テーブルが必要になります。Web には多くの例がありますが、ここでは単純なものを示します。
CREATE TABLE DateList ( DateValue DATE, CONSTRAINT PK_DateList PRIMARY KEY CLUSTERED (DateValue) ) GO -- 2015 年 1 月 1 日と 2015 年 12 月 31 日の日付を挿入 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コード> プレ>
テーブルができました
その後、次のようにクエリを書き換えることができます:
SELECT top (5) DateValue, isnull(Count(id),0) as CountedFROM DateList LEFT OUTER JOIN DateValue のテーブル =CAST(Created AS DATE) GROUP BY DateValueorder by DateValue desc
プレ>
2 つの注意事項:範囲を指定するには where 句が必要です。キャストでの結合は理想的ではありません。日付テーブルの型は、通常のテーブルの型と一致する必要があります。