केएम के उत्तर पर विस्तार करते हुए, आपको एक तिथि तालिका की आवश्यकता है जो एक संख्या तालिका की तरह है। वेब पर कई उदाहरण हैं लेकिन यहां एक सरल है।
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
अब आपके पास एक टेबल है
तो आप अपनी क्वेरी को इस प्रकार फिर से लिख सकते हैं:
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
दो नोट:आपको अपनी सीमा निर्दिष्ट करने के लिए जहां एक खंड की आवश्यकता होगी। एक कलाकार में शामिल होना आदर्श नहीं है। आपकी तिथि तालिका का प्रकार आपकी नियमित तालिका के प्रकार से मेल खाना चाहिए।