2016-03-23 2 views
0

Я новичок и пытается написать Sql для расчета сроков между различными датами начала из следующей таблицы ..Расчет сроков между событиями в SQL

ID   StartDate 
202151080 3/27/2014 0:00 
202151080 5/16/2014 0:00 
202151080 10/27/2014 0:00 

Мой ожидаются выход

ID   StartDate  interval 
202151080 3/27/2014 0:00 0 
202151080 5/16/2014 0:00 50 
202151080 10/27/2014 0:00 164 

Я могу подойти к статическому ... вроде ниже .. Я борюсь за расчет отличия от таблицы чтения.

SELECT id, datediff(dd,'2014-03-27 00:00:00','2014-05-16 00:00:00'); 

спасибо за ваше время.

ответ

0

Вы можете использовать коррелировала подзапрос для этого:

SELECT ID, StartDate, 
     COALESCE(DATEDIFF(StartDate, 
         (SELECT StartDate 
         FROM mytable AS t2 
         WHERE t2.ID = t1.ID AND t2.StartDate < t1.StartDate 
         ORDER BY StartDate DESC LIMIT 1)), 0) AS `interval` 
FROM mytable AS t1        
ORDER BY StartDate 

Demo here

Смежные вопросы