-1

我有一个表格,其中包含候选人培训课程的开始日期和结束日期,并且需要在表格中移动,检查候选人之前的记录结束日期是否早于他们当前记录的开始日期。

换句话说,我需要检查候选人培训记录是否重叠,如果重叠,我需要能够将不良记录发送到另一个表。

我在这里添加了一个示例,其中所有日期都不正确,因为所有结束日期都在下一个记录开始日期之后。

我已经尝试过 while 循环和游标,但我看不到一种方法来存储一条记录中的值,同时移动到下一条记录以进行比较。谢谢。

PERS_ID PERS_TYPE_SD    PERS_TYPE_ED
6444    2006-08-01 00:00:00.000 2018-07-29 00:00:00.000
6444    2009-08-01 00:00:00.000 2012-07-31 00:00:00.000
6444    2007-08-01 00:00:00.000 2009-07-31 00:00:00.000
4

1 回答 1

1
select t1.*, t2.*
from table as t1 
join table as t2 
  on t2.PERS_TYPE_SD > t1.PERS_TYPE_SD 
 and t2.PERS_TYPE_SD < t1.PERS_TYPE_ED 
 and t1.PERS_ID < t2.PERS_ID  
order by  t1.PERS_ID, t2.PERS_ID
于 2013-04-15T00:49:44.477 回答