我已經創建了用於計數的特定範圍之間每天記錄數爲選定位置以下存儲過程:SQL計數爲包括零值
[dbo].[getRecordsCount]
@LOCATION as INT,
@BEGIN as datetime,
@END as datetime
SELECT
ISNULL(COUNT(*), 0) AS counted_leads,
CONVERT(VARCHAR, DATEADD(dd, 0, DATEDIFF(dd, 0, Time_Stamp)), 3) as TIME_STAMP
FROM HL_Logs
WHERE Time_Stamp between @BEGIN and @END and ID_Location = @LOCATION
GROUP BY DATEADD(dd, 0, DATEDIFF(dd, 0, Time_Stamp))
,但問題是,其結果沒有顯示有零記錄的日子,我很確定它與我的WHERE語句有關,不允許顯示零值,但我不知道如何解決這個問題。
在此先感謝 尼爾
如果除去聚集你得到的行後面,你會期待什麼呢? –
正如其他人發佈的那樣,您首先需要一個實際的日期列表(我自己更喜歡一個永久性日曆文件 - 如果企業的財務日曆與標準本地日曆不一致,則它們特別有用)。但是,請不要**使用'BETWEEN',_especially_用於日期/時間/時間戳記值。我們自己的Aaron Bertrand擁有[博客文章](http://sqlblog.com/blogs/aaron_bertrand/archive/2011/10/19/what-do-between-and-the-devil-have-in-common)。 aspx)有關SQL Server在使用此子句時遇到的特定問題。 –