次のように構造化されたデータがあります。
次の CTE を使用します。
WITH DateRange AS
(
SELECT CAST('2012-01-24 06:00' AS DATETIME) DateValue
UNION ALL
SELECT DATEADD(mi, 1, DateValue)
FROM DateRange
WHERE DATEADD(mi, 1, DateValue) <= '2012-01-24 12:00'
)
SELECT DateValue FROM DateRange
OPTION (MAXRECURSION 0)
次のような「日付セット」を作成しました。
問題は次のとおりです。元のデータセットに、CTE に対応する日付がないデータがいくつかあります (提供されている例では、2012-01-24 6:00 はデータに存在しません)。
これらの欠落しているデータ ポイントについては、値として「NULL」を表示したいと思います。生成した CTE の日付を活用できるのではないかと考えましたが、どうすればこれができるかわかりません。
私はこのようなことを試みましたが成功しませんでした:
SELECT C.DateValue, D.Value
FROM myCTE C
LEFT OUTER JOIN myData D ON C.DateValue = D.Date
ORDER BY C.DateValue ASC;