首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在SQL Server中合并重叠的日期范围

在SQL Server中合并重叠的日期范围
EN

Stack Overflow用户
提问于 2011-08-11 01:41:05
回答 1查看 2.7K关注 0票数 0

我有一个有数百万行的表格,它要求日期跨度与特定的“合同号”和“服务代码”不重叠。通常有2-4行日期重叠,必须合并到单个记录中。不重叠的记录不应合并,并应保留间隙。

代码语言:javascript
复制
ContractNumber     ServiceCode      StartDate      EndDate
1111111            AFL              2010-01-01     2010-12-31
1111111            AFL              2011-01-01     2011-12-31
1111111            AFL              2011-04-01     2012-03-31
1111111            AFL              2011-04-01     2012-06-30
1111111            AFL              2013-01-01     2013-12-31

这些必须组合成:

代码语言:javascript
复制
ContractNumber     ServiceCode      StartDate      EndDate
1111111            AFL              2010-01-01     2010-12-31   (remains the same)
1111111            AFL              2011-01-01     2012-06-30   (merged)
1111111            AFL              2013-01-01     2013-12-31   (gap maintained)

另外,我已经研究过这个问题:Eliminate and reduce overlapping date ranges。它在一个数据子集下工作,但一旦我在我拥有的所有数据上释放它,它就真的很慢。我需要在几分钟内运行数百万行的程序。有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2011-08-11 03:18:30

在这些问题上花了很多时间之后,我认为保持数据整洁、没有重叠要比从大表中消除它们更有效率。约束使我们能够高效地完成这项工作:Contiguous Time Periods

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7015286

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档