У меня есть данные, которые структурированы следующим образом:
![enter image description here](https://i.stack.imgur.com/8qzET.jpg)
Использование следующего 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)
Я создал «Набор дат», который выглядит следующим образом:
![enter image description here](https://i.stack.imgur.com/ErB2F.jpg)
Проблема: В исходном наборе данных есть некоторые данные, у которых нет соответствующей даты в 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;