Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
MrSudden Member Откуда: Сообщений: 1 |
Здравствуйте, мне нужен скрипт который бы вычислял минимальную разницу в днях между поставками товара. Пример таблицы: Id | Даты поставок 245 | 12.05.2015 245 | 19.06.2015 245 | 02.07.2015 245 | 15.07.2015 и т.д. Разница нужна в днях. Вывод ID товара и разница. Пытался играться сам, но ничего не выходит. Прочтения кучи страниц форумов никчему не привели. С sql познакомился недавно, своих знаний не хватает. |
13 дек 16, 15:06 [19997855] Ответить | Цитировать Сообщить модератору |
Руслан Дамирович Member Откуда: Резиновая нерезиновая Сообщений: 940 |
Написать задачу сил хватило, а написать решение, пусть и нерабочее - нет? Не верю. |
||
13 дек 16, 15:17 [19997928] Ответить | Цитировать Сообщить модератору |
Sybex Member Откуда: Moscow Сообщений: 117 |
Кучу страниц форума перелопатил, но среди них не оказалось правил оформления топика. Так что я подразумеваю сразу 2016 скуль.DECLARE @T TABLE ([ID] int, [Дата поставки] date); INSERT @T VALUES (245, CONVERT(date, '12.05.2015', 104)) ,(245, CONVERT(date, '19.06.2015', 104)) ,(245, CONVERT(date, '02.07.2015', 104)) ,(245, CONVERT(date, '15.07.2015', 104)) ,(345, CONVERT(date, '12.04.2016', 104)) ,(345, CONVERT(date, '19.06.2016', 104)) ,(345, CONVERT(date, '03.07.2016', 104)) ,(345, CONVERT(date, '15.08.2016', 104)); ;WITH [CTE] AS ( SELECT [ID] ,DATEDIFF(day, LAG([Дата поставки]) OVER (PARTITION BY [ID] ORDER BY [Дата поставки]), [Дата поставки]) AS [Diff] FROM @T ) SELECT [ID] ,MIN([Diff]) [MinDiff] FROM [CTE] GROUP BY [ID]; |
13 дек 16, 15:22 [19997966] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |