如何使用另一个表中的“日期”列过滤一个表的开始日期和结束日期

时间:2019-04-04 01:38:09

标签: sql oracle

我有两个带有以下详细信息的表。

具有开始日期和结束日期列的表1。

具有合格日期的表2。

我想根据表2中的合格日期获得表1的最终结果。

示例:日期为yyyy-mm-dd格式

表1:

         startdate   enddate
row1 : 2018-01-01    2018-03-31
row2 : 2018-02-01    2018-03-31
row3 : 2018-04-20    2018-06-30
row4 : 2017-07-01    2018-12-31
row5 : 2019-08-01    2020-11-30

表2:

   QualifyingDate   
row1 : 2018-03-01  
row2 : 2018-01-31  
row3 : 2018-04-20  
row4 : 2018-07-01  
row5 : 2018-08-01

表1的最终输出:

row1 : 2018-01-01  2018-03-31 (From table2, row1&row2 falls in between)
row2 : 2018-02-01  2018-03-31 (From table2, row1 falls in between)
row3 : 2018-04-20  2018-06-30 (From table2, row3 falls in between)
row4 : 2017-07-01  2018-12-31 (From table2, row1-row5 falls in between)

请帮助我。

1 个答案:

答案 0 :(得分:1)

您似乎想要:

select t1.*
from table1 t1
where exists (select 1
              from table2 t2
              where t2.QualifyingDate between t1.startdate and t1.enddate
             );