Oracle重叠日期

时间:2014-03-14 09:08:53

标签: oracle date overlap overlapping

Oracle 10g

有两个付款图表:

OPER_ID  PAYDATE
1        09.12.2013
1        13.01.2014
1        08.02.2014
1        11.03.2014
1        08.04.2014
...................
1        07.11.2018
2        08.04.2014
2        08.05.2014
2        09.06.2014

在某些情况下,可能会有更多图表。我如何重叠这些图表,那么第一次结束时第一次结束?像这样:

OPER_ID  PAYDATE
1        09.12.2013
1        13.01.2014
1        08.02.2014
1        11.03.2014  
2        08.04.2014
2        08.05.2014
2        09.06.2014

在帮助表中列出了操作日期:

OPER_ID  OPER_DATE
1        07.11.2013
2        11.03.2014

更新

  1. 图表在一个表格中

  2. 图表中的日期大致相同

1 个答案:

答案 0 :(得分:0)

假设您的付款图表存储在GRAPH1GRAPH2表中,我可以提供解决方案:

SELECT 
 x.paydate,
 g1.operid as g1_operid,
 g2.operid as g2_operid
FROM (
      SELECT 
         t.paydate
      FROM (SELECT paydate FROM graph1 UNION ALL SELECT paydate FROM graph2) t
      GROUP BY t.paydate
) x
LEFT JOIN graph1 g1 ON g1.paydate = x.paydate
LEFT JOIN graph1 g2 ON g2.paydate = x.paydate
ORDER BY x.paydate

我们的想法是在两个图表中选择一组唯一的日期,然后通过paydate连接图表。