【发布时间】:2008-10-08 22:07:54
【问题描述】:
能否告诉我在日期范围重叠时拆分日期范围的 SQL?
数据(具有日期范围和可能的其他列的示例数据):
Col1 FromDate ToDate
1. 1 1/1/2008 31/12/2010
2. 1 1/1/2009 31/12/2012
3. 1 1/1/2009 31/12/2014
输出:
Col1 From Date ToDate
1. 1 1/1/2008 31/12/2008 (from row 1 above)
2. 1 1/1/2009 31/12/2010 (from rows 1,2 and 3 above)
3. 1 1/1/2011 31/12/2012 (from rows 2 and 3 above)
4. 1 1/1/2013 31/12/2014 (from row 3 above)
【问题讨论】:
-
好的,我没有完整的答案,但这里有几点需要考虑。 1. 第一个时间块是从表组中选择 min(FromDate) by FromDate
print("code sample");2. 然后第一个块的结束是从表组中选择 min(FromDate) by FromDate where FromDate > "start of block" 3.根据需要重复。 :)
标签: sql date-range