0

我试图找出一种方法来编写一个查询,该查询将从日志表中提取过去 7 天的记录。查询需要返回日期和描述。如果某个日期没有条目,则查询仍需要在结果中返回该日期。我如何去创建一天的记录,而该日期的日志文件中没有任何内容?

谢谢,垃圾

这是预期结果的示例:

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
4

1 回答 1

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

干杯

于 2012-10-29T20:17:17.980 回答