有没有一种方法可以使用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
我做了这样的事情来获取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