sql - 通过比较两个日期列来确定实际的 TAT(周转时间)

标签 sql oracle date overlapping

我有一个具有以下结构的表,我试图用它来查找两天之间的TAT(周转时间)。但是,重叠的日子,我无法找到实际的 TAT

Appln No        Start Date  End Date
1001009     01-10-15    06-10-15
1001009     02-10-15    04-10-15
1001009     03-10-15    04-10-15
1001009     03-10-15    05-10-15
1001009     04-10-15    07-10-15
1001009     09-10-15    10-10-15
1001009     12-10-15    16-10-15
1001009     14-10-15    17-10-15

从上述示例数据中删除重叠日期后,输出将采用以下格式 -

Appln No    Start Date  End Date
1001009     01-10-15    07-10-15
1001009     09-10-15    10-10-15
1001009     12-10-15    17-10-15

由于我是sql初学者并且使用oracle sql Developer,所以我发现将上述逻辑编写成代码很困难。欢迎对此问题提出任何建议:)

最佳答案

试试这个:

select t1.* from myTable t1
inner join myTable t2
on t2.StartDate > t1.StartDate and t2.StartDate < t1.EndDate

关于sql - 通过比较两个日期列来确定实际的 TAT(周转时间),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33260588/

相关文章:

sql - 按 <a date field> 分组在我的 Sql (Oracle) 中不起作用

c# - 返回查询中的最大值

sql - SQL Server 一段时间后自动删除一条记录?

mysql - 有没有办法通过使用时间戳进行比较来删除最近的行

来自 URL 的正则表达式子字符串

java - 如何将字符串对象转换为日期对象?

java - 如何使用Swing Timers来制定整体更新率?

sql - 单列上没有重复的 Oracle sql 联合

javascript - 在下拉列表中使用 JavaScript 显示 future 日期。 (每次都是动态的)

java - 如何在 android 中获得两个日期之间的差异?,尝试所有事情并发布