用于连续资格日期的SQL查询

时间:2014-04-20 22:55:24

标签: sql-server

我如何为以下内容撰写查询。

我有像

这样的数据
id   eff date   term date
 C   20000101   20050228
 C   20000501   20120229
 C   20060101   20120301

我需要检查连续资格,如果连续我需要摆脱其他记录。对于上面的例子,我需要输出为

id   Eff date   Term date
C    20000101  20120301

我需要删除重叠范围。在上面的例子中,我有重叠的资格范围。如果我有另一个输入记录(第4个)说C 20130101 20130531然后我的输出应该是两个记录。 C 20000010 20120301和C 20130101 20130531

1 个答案:

答案 0 :(得分:0)

我不确定持续资格的业务规则 - 但不知道是否会这样做:

 SELECT id, min(Eff_date), max(Term_date)
 FROM my_table
 GROUP BY id