(Поиск разницы в датах) Передать результат запроса на выборку в другой запрос на выборку в цикле if-else

Я пытаюсь найти в таблице разницу между сегодняшней датой и указанной датой. В некоторых строках есть 1 дата, в то время как в других - 2 (возьмите более раннюю дату). Я пытался с динамической переменной и временной таблицей, но все еще не работает

Вот входная таблица

else
begin
SELECT * INTO #result2
 FROM 
 ( 

  declare @t date
  set @t = '
  select SUBSTRING(Availability, PATINDEX('% [0-9][0-9]-[0-9][0-9]-[0-9][0-9][0-9][0-9]%', [Availability]), 11) as [Date Part] from [ScrappedData_Regina] '

-- extracts date part from a column

  select  distinct [Product Name],[SKU],DATEDIFF(day,cast(@t as date),cast(GETDATE() as date)) as [Delivery Date]  from ScrappedData_Regina
)  -- i want to pass the date part in this select statement

Первый запрос даст результат как результат первого запроса

И я хочу тот же результат для второго запроса тоже для случая с двумя датами.

результат второго запроса

Наконец объединить оба результата в таблицу

1 ответ

Я думаю, что вы должны быть в состоянии сделать это в одном запросе (если я понимаю, что вы пытаетесь сделать). Удалите первый запрос и замените второй следующим:

SELECT DISTINCT [Product Name],
                [SKU],
                DATEDIFF(DAY, CAST(
                    SUBSTRING(Availability,
                        PATINDEX('% [0-9][0-9]-[0-9][0-9]-[0-9][0-9][0-9][0-9]%', [Availability]), 11) AS DATE),
                        CAST(GETDATE() AS DATE)
                    ) AS [Delivery Date]
FROM ScrappedData_Regina
Другие вопросы по тегам