Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Нужна помощь  [new]
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]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь  [new]
Руслан Дамирович
Member

Откуда: Резиновая нерезиновая
Сообщений: 940
MrSudden
Пытался играться сам, но ничего не выходит. Прочтения кучи страниц форумов никчему не привели. С sql познакомился недавно, своих знаний не хватает.

Написать задачу сил хватило, а написать решение, пусть и нерабочее - нет? Не верю.
13 дек 16, 15:17    [19997928]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь  [new]
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 Ответить