У меня есть таблица, например: Таблица 1, в которой есть столбец с датами, а другой столбец с некоторым числовым значением, связанным с этой датой.Он имеет случайные даты между 1 января 2018 года по 31 декабря 2018 года.Я пытаюсь создать другую таблицу с аналогичной структурой (2 поля даты и числовое значение), но дата должна содержать записи для всех дней 2018 года, а во 2-м столбце должно быть '-1' для дат, которых не былов 1-й таблице и числовое значение из 1-й таблицы, если даты совпадают.
---- Это дает мне даты во второй таблице ---
;WITH CTE AS
(
SELECT ROW_NUMBER() OVER (ORDER BY (SELECT 1)) - 1 AS [Incrementor]
FROM [master].[sys].[columns] sc1
CROSS JOIN [master].[sys].[columns] sc2
)
SELECT DATEADD(DAY, cte.[Incrementor], '2018-01-01') as [date]
into [Table 2]
FROM CTE
WHERE DATEADD(DAY, cte.[Incrementor], '2018-01-01') < '2018-12-31'
Тогда яиспользовала оператор case для создания столбца 2 в таблице 2, но не удалось.
select [Table 2].[date],
case
when ([Table 2].[date] = [table 1].[date]
then [Table1].[numericvalue] else '-1')
end as [NewNumericValue]
from
[Table1]
inner join
[table2]
on [table 1].[date] = [table 2].[date]
Столбец 2 таблицы 2 содержит все даты в 2018.