Я пытаюсь получить максимальные разницы дат, используя LEAD для каждой строки в следующем SQL-запросе, а затем упорядочивая его в порядке убывания. Ниже приведен запрос и его результаты. То, что я хочу сделать, также включает текущую дату. В настоящее время я не могу включить разницу между последним записанным инцидентом и сегодняшней датой.Включить сегодняшнюю дату во время выполнения SQL-запрос
Итак, в моем желаемом результате свинцовой датой будет сегодняшняя дата (она равна нулю в текущем запросе результатов, не упорядоченном). В настоящее время, в его нынешнем виде, последний зарегистрированный инцидент был 5/12/2016, так что это означало бы, что разница между последним записанным инцидентом и сегодняшней датой составляет примерно 63 дня.
Использование SQL Server
Запрос:
Select
convert(varchar, CLL.Call_Log_Date, 101) as [CreatedDate],
convert(varchar, Lead(CLL.Call_Log_Date, 1)
Over (Order by CLL.Call_Log_Date DESC), 101) as [Lead],
DATEDIFF(dd, Lead(CLL.Call_Log_Date, 1)
Over (Order by CLL.Call_Log_Date DESC), CLL.Call_Log_Date) as [DIFF]
From VMWareSM_Test.dbo.RV_CALL as CLL
Where CLL.IPK_Status_Ref = '1'
And CLL.Call_Priority_Ref IN (6,7)
Order by [DIFF] DESC;
Результат
CreatedDate Lead DIFF
06/24/2015 05/12/2015 43
11/20/2015 10/09/2015 42
05/13/2016 04/08/2016 35
10/09/2015 09/14/2015 25
01/13/2015 12/23/2014 21
12/22/2014 12/03/2014 19
01/08/2016 12/21/2015 18
03/02/2015 02/12/2015 18
08/23/2015 08/07/2015 16
04/08/2016 03/25/2016 14
просто используйте 'GETDATE()'. Также, пожалуйста, всегда указывайте явную длину при преобразовании в varchar: 'CONVERT (VARCHAR (10), CLL.Call_Log_Date, 101)' – Lamak
Это просто вставка GetDate()? И я прошу прощения. Я довольно новичок в SQL. – Avegavalencia
Просто замените 'Lead (.....' на 'GETDATE()' – Lamak