小编典典

连续日期的最小有效日期和有效日期

sql

有没有一种方法可以使用SQL 2000查询来实现以下目标,我到处都看到了,但是找不到任何有效的代码段。

我有连续的日期段,要求是获取每个连续日期的最小生效日期和最大生效日期。

如果不可能,则使用不同的查询获取连续段的最小生效日期和最大termdate也将对我有用。

ID  effdate     termdate
1   2007-05-01  2007-05-31
2   2007-06-01  2007-06-30
3   2007-07-01  2007-09-30
4   2008-03-01  2008-03-31
5   2008-05-01  2008-05-31
6   2008-06-01  2008-06-30

预期结果 :

2007-05-01  2007-09-30
2008-03-01  2008-03-31
2008-05-01  2008-06-30

阅读 174

收藏
2021-04-22

共1个答案

小编典典

我做了这样的事情来获取effdate和termdate相同,使它们成为两个单独的视图并得到最终结果。

SELECT distinct e0.effdate,e0.ID
  FROM  dbo.datatable e0    LEFT OUTER JOIN dbo.datatable PREV ON       
       PREV.ID = e0.ID 
 AND  PREV.termdate = DATEADD(dy, -1, e0.Effdate)        
  WHERE PREV.ID IS NULL
2021-04-22