我一直在尝试各种各样的事情,我无法弄清楚这一点。我在搜索中没有看到相同的问题。从重叠的日期范围获取连续的日期范围
我有一个表有多个日期范围,我需要得到那些连续的,不重叠的。例如:
表:
Company | StartDate | EndDate
---------------------------------
A | 2014-07-01 | 2015-06-30
A | 2013-07-01 | 2014-06-30
A | 2013-01-01 | 2013-12-31
A | 2012-07-01 | 2013-06-30
A | 2012-01-01 | 2012-12-31
所需的结果:
Company | StartDate | EndDate
---------------------------------
A | 2014-07-01 | 2015-06-30
A | 2013-07-01 | 2014-06-30
A | 2012-07-01 | 2013-06-30
我们基本上有财年和日历年在这里。我希望我的结果集基于最新的一组日期。由于最近的是7/1 - 6/30,我不想在结果中有1/1 - 12/31的范围。我不能像WHERE MONTH(EndDate)=6
那样硬编码,因为在现实生活中,财年的开始和结束可能会有很大的不同。我不能这样做EndDate + 1 = StartDate
,因为旧的日历年将使新的日历年适合该集。
我对此数据库的访问权限有限,所以我无法写入SP或临时表。这是针对SQL Server 2008的。
包括您的原始表并包括您当前的查询。 –
我不明白为什么你不能使用enddate + 1 =开始日期。你能再解释一遍吗? –
2012-12-31 + 1 = 2013-01-01,因此2013-12-31结束日期的行不会被排除。 – JMcD