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 に答える