(Поиск разницы в датах) Передать результат запроса на выборку в другой запрос на выборку в цикле 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