我正在尝试找出一种方法来编写一个查询,该查询将从日志表中提取最近7天的记录。查询需要返回日期和描述。如果没有日期条目,则查询仍需要在结果中返回该日期。 如何在该日期的日志文件中没有任何内容的情况下创建记录?
谢谢, crjunk
这是预期结果的一个例子:
10/29/2012, null
10/28/2012, null
10/27/2012, null
10/26/2012, "Error: Unable to load xyz."
10/25/2012, null
10/24/2012, null
10/23/2012, null
答案 0 :(得分:0)
这是我的方式。希望它能帮到你。我想要一点解释,你应该有你所说的日期清单。此外,即使在该日期没有记录,您也需要使用LEFT OUTER JOIN来加入具有特定日期的日志以获取日期。我使用了一点CTE来生成日期并创建了一个名为"Log"
的示例表,如下面的代码所示。
; With Days (
Value
) As (
Select 1
Union All
Select Value
+ 1
From Days
Where Value < 31
) Select Dates.DateString
, Count(Log.Id)
From (
Select Convert(Nvarchar(10), DateAdd(Day, -Value, GetDate()), 102) As DateString
From Days
) As Dates
Left Outer Join
Log
On Convert(Nvarchar(10), Log.Date, 102) = Dates.DateString
Group By Dates.DateString
干杯