使用datediff查找行之间给定间隙的最低值

时间:2016-04-11 11:31:40

标签: sql tsql

所以我有一张桌子,我称之为任务,看起来像这样:

Tasks
Date_from datetime
Date_to datetime
user string

某些行的示例如下所示(其yyyy:mm:dd):

Date_from   Date_to    user
2014-06-01  2014-11-10 Garry
2014-11-11  2015-01-01 Garry
2015-01-02  2015-05-15 Garry

2015-06-01  2015-08-29 Garry
2015-30-01  2015-12-30 Garry

大多数任务停止一天,下一个任务从第二天开始。 我试图弄清楚如何做的是获得Garry用于开始任务的最低date_from,但如果他的任务中存在差距(如我用空白线所示)我想得到第一个最后一个date_to和date_from之间的天数大于例如10天。

我一直在尝试使用datediff来做这件事,但如果可能的话,我还是没能得到它:

select max(a.date_from) as lowest_date
from Tasks a 
where datediff(dd, 
    (select max(date_to) 
    from Tasks b 
    where b.date_from > a.date_to 
    and b.user= a.user),  a.date_from
    ) >= 10
and a.user = 'Garry'

起初我尝试使用min(a.date_from),但是如果有2个地方存在间隙,则需要使用min(a.date_from),而不是最新的那个。

0 个答案:

没有答案