Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 重叠时间_Sql_Sql Server_Datetime_Overlap - Fatal编程技术网

Sql 重叠时间

Sql 重叠时间,sql,sql-server,datetime,overlap,Sql,Sql Server,Datetime,Overlap,我有一张这样的桌子: Id, TimeStart, TimeFinished 我需要找到任何在TimeFinished之前开始的TimeStart,但Id更高,这意味着时间重叠 Id TimeStart TimeFinished 1 2014-01-01 2014-01-02 2 2014-01-02 2014-01-03 3 2014-01-02 2014-01-04 这可以在第3行中找到。此处第2行显示TimeStartTimeStart尝试左外部联接: SELE

我有一张这样的桌子:

Id, TimeStart, TimeFinished
我需要找到任何在TimeFinished之前开始的TimeStart,但Id更高,这意味着时间重叠

Id  TimeStart   TimeFinished
1   2014-01-01  2014-01-02
2   2014-01-02  2014-01-03
3   2014-01-02  2014-01-04
这可以在第3行中找到。此处第2行显示TimeStartTimeStart

尝试左外部联接:

SELECT t1.*
FROM   table t1
       LEFT JOIN table t2
              ON t1.Id > t2.Id
                 AND t1.TimeStart < t2.TimeFinished
WHERE  t2.Id IS NOT NULL 

如果您只需要第一条记录中的信息,则可以使用:


到目前为止你尝试了什么?您尝试的查询的具体问题是什么?请阅读《Pred的权利》,如果您能先尝试自己解决问题,然后在失败时来找我们,您会发现您在StackOverflow的住宿会更加舒适。
select t.*
from table t
where exists (select 1
              from table t2
              where t.id > t2.id and t.TimeStart > t2.TimeFinish
             );