得到失踪的月份

时间:2015-05-25 08:23:06

标签: sql

我的结果设置如

DT_START      DT_END            
 ------------- ----------- 
 2013-05-01    2014-04-01       
 2014-07-01    2015-04-01       
 2014-11-01    2015-02-01   

我有开始日期和结束日期。我需要在两个日期错过2014年的月份。 就像2014年缺少的月份是5和6(这是第一行和#34之间的差异; DT_END和#34;第二行" DT_START")

1 个答案:

答案 0 :(得分:1)

一种可能的解决方案:

创建日历表或创建一个返回最低dt_start和最高dt_end之间所有月份的查询。如何执行此操作取决于您使用的实际数据库 - 一些具有可用于创建序列的好函数,一些具有数字表等。

然后将其用作源并与表进行左连接并过滤掉dt_start为null的行。

select month from all_months -- this is the table/query with all months
left join your_table on month between dt_start and dt_end
where dt_start is null