Oracle:在两个日期之间创建月份范围

时间:2017-01-03 20:40:38

标签: oracle11g

我有下表:如果需要,我还有一个日历表。

ID    Start_dt          End_dt
 1      1/9/2016         3/10/2016

预期产出:

ID    Start_dt      End_dt         Month   ActiveCustomerPerMonth
 1      1/9/16       3/10/2016    201601         1
 1      1/9/16       3/10/2016    201602         1
 1      1/9/16       3/10/2016    201603         0 (Not Active end of Month)

我需要这个,因为我正在处理一个当前查询,该查询将使用case语句来计算该客户当月是否处于活动状态。如果该成员在该月的最后一天处于活动状态,则该成员将在该月被认为是活动的。但我需要能够为该客户计算几个月。

  CASE 
     WHEN LAST_DAY(x.END_DT) = x.END_DT
       THEN '1'
     WHEN  TO_CHAR(X.END_DT,'MM/DD/YYYY') != '01/01/3000' 
       OR X.DISCHARGE_REASON IS NOT NULL 
        THEN '0'   
     WHEN X.FIRST_ASSGN_DT IS NULL
        THEN '0'      
   ELSE '1'
    END ActiveMemberForMonth

我是Oracle新手并且正在阅读有关connect by但不了解该过程的信息,并且不确定这是否适合使用。

1 个答案:

答案 0 :(得分:1)

像这样的东西。

passw%40rd