所以我有一张桌子,我称之为任务,看起来像这样:
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),而不是最新的那个。