DBA Data[Home] [Help]

MATERIALIZED VIEW: APPS.FII_AP_HATY_XB_MV

Source


select /* 12.0: bug#4526784 */ org_id,
       supplier_id,
       time_id,
       period_type_id,
       grouping_id(org_id, supplier_id, time_id, period_type_id) gid,
       sum(inv_on_hold_amt_wtd_b) inv_on_hold_amt_wtd_b,
       sum(inv_on_hold_amt_mtd_b) inv_on_hold_amt_mtd_b,
       sum(inv_on_hold_amt_qtd_b) inv_on_hold_amt_qtd_b,
       sum(inv_on_hold_amt_ytd_b) inv_on_hold_amt_ytd_b,
       sum(inv_on_hold_amt_wtd_prim_g) inv_on_hold_amt_wtd_prim_g,
       sum(inv_on_hold_amt_mtd_prim_g) inv_on_hold_amt_mtd_prim_g,
       sum(inv_on_hold_amt_qtd_prim_g) inv_on_hold_amt_qtd_prim_g,
       sum(inv_on_hold_amt_ytd_prim_g) inv_on_hold_amt_ytd_prim_g,
       sum(inv_on_hold_amt_wtd_sec_g) inv_on_hold_amt_wtd_sec_g,
       sum(inv_on_hold_amt_mtd_sec_g) inv_on_hold_amt_mtd_sec_g,
       sum(inv_on_hold_amt_qtd_sec_g) inv_on_hold_amt_qtd_sec_g,
       sum(inv_on_hold_amt_ytd_sec_g) inv_on_hold_amt_ytd_sec_g,
       sum(inv_on_hold_count_wtd) inv_on_hold_count_wtd,
       sum(inv_on_hold_count_mtd) inv_on_hold_count_mtd,
       sum(inv_on_hold_count_qtd) inv_on_hold_count_qtd,
       sum(inv_on_hold_count_ytd) inv_on_hold_count_ytd,
       sum(days_on_hold_wtd) days_on_hold_wtd,
       sum(days_on_hold_mtd) days_on_hold_mtd,
       sum(days_on_hold_qtd) days_on_hold_qtd,
       sum(days_on_hold_ytd) days_on_hold_ytd,
       sum(hold_count) no_of_holds_placed
from
(select f.org_id,
        f.supplier_id,
        decode(grouping_id(fday.ent_year_id, fday.ent_qtr_id, fday.ent_period_id, fday.week_id, fday.report_date_julian),
        0, fday.report_date_julian, 1, fday.week_id, 3, fday.ent_period_id, 7, fday.ent_qtr_id, 15, fday.ent_year_id) time_id,
        decode(grouping_id(fday.ent_year_id, fday.ent_qtr_id, fday.ent_period_id, fday.week_id, fday.report_date_julian),
        0, 1, 1, 16, 3, 32, 7, 64, 15, 128) period_type_id,
        sum(case when f.wtd_rank=1 then f.base_amount else 0 end) inv_on_hold_amt_wtd_b,
        sum(case when f.mtd_rank=1 then f.base_amount else 0 end) inv_on_hold_amt_mtd_b,
        sum(case when f.qtd_rank=1 then f.base_amount else 0 end) inv_on_hold_amt_qtd_b,
        sum(case when f.ytd_rank=1 then f.base_amount else 0 end) inv_on_hold_amt_ytd_b,
        sum(case when f.wtd_rank=1 then f.prim_amount else 0 end) inv_on_hold_amt_wtd_prim_g,
        sum(case when f.mtd_rank=1 then f.prim_amount else 0 end) inv_on_hold_amt_mtd_prim_g,
        sum(case when f.qtd_rank=1 then f.prim_amount else 0 end) inv_on_hold_amt_qtd_prim_g,
        sum(case when f.ytd_rank=1 then f.prim_amount else 0 end) inv_on_hold_amt_ytd_prim_g,
        sum(case when f.wtd_rank=1 then f.sec_amount else 0 end) inv_on_hold_amt_wtd_sec_g,
        sum(case when f.mtd_rank=1 then f.sec_amount else 0 end) inv_on_hold_amt_mtd_sec_g,
        sum(case when f.qtd_rank=1 then f.sec_amount else 0 end) inv_on_hold_amt_qtd_sec_g,
        sum(case when f.ytd_rank=1 then f.sec_amount else 0 end) inv_on_hold_amt_ytd_sec_g,
        (case when f.wtd_rank=1 then count(distinct f.invoice_id) else 0 end) inv_on_hold_count_wtd,
        (case when f.mtd_rank=1 then count(distinct f.invoice_id) else 0 end) inv_on_hold_count_mtd,
        (case when f.qtd_rank=1 then count(distinct f.invoice_id) else 0 end) inv_on_hold_count_qtd,
        (case when f.ytd_rank=1 then count(distinct f.invoice_id) else 0 end) inv_on_hold_count_ytd,
        (case when f.wtd_rank=1 then hold.days_on_hold else 0 end) days_on_hold_wtd,
        (case when f.mtd_rank=1 then hold.days_on_hold else 0 end) days_on_hold_mtd,
        (case when f.qtd_rank=1 then hold.days_on_hold else 0 end) days_on_hold_qtd,
        (case when f.ytd_rank=1 then hold.days_on_hold else 0 end) days_on_hold_ytd,
        0 hold_count
 from
 (select f.org_id org_id,
         f.supplier_id supplier_id,
         f.invoice_id,
         f.time_id time_id,
         rank() over (partition by f.invoice_id, time.week_id order by f.hold_date) wtd_rank,
         rank() over (partition by f.invoice_id, time.ent_period_id order by f.hold_date) mtd_rank,
         rank() over (partition by f.invoice_id, time.ent_qtr_id order by f.hold_date) qtd_rank,
         rank() over (partition by f.invoice_id, time.ent_year_id order by f.hold_date) ytd_rank,
         inv.base_amount base_amount,
         inv.prim_amount prim_amount,
         inv.sec_amount sec_amount
  from (select distinct invoice_id, hold_date, org_id, supplier_id, time_id from FII.FII_AP_INV_HOLDS_B) f, FII.FII_AP_INVOICE_B inv, FII.FII_TIME_DAY time
  where inv.entered_date <= f.hold_date
  and f.invoice_id = inv.invoice_id
  and f.hold_date = time.report_date) f,
  (select invoice_id, sum(days_on_hold) days_on_hold from FII_AP_HHIST_IB_MV group by invoice_id) hold,
  FII.FII_TIME_DAY fday
 where f.time_id = fday.report_date_julian
 and hold.invoice_id = f.invoice_id
 group by f.org_id, f.supplier_id, f.invoice_id, f.wtd_rank, f.mtd_rank, f.qtd_rank, f.ytd_rank, hold.days_on_hold,
          rollup (fday.ent_year_id, fday.ent_qtr_id, fday.ent_period_id, fday.week_id, fday.report_date_julian)
 union all
 select f.org_id org_id,
        f.supplier_id supplier_id,
        decode(grouping_id(fday.ent_year_id, fday.ent_qtr_id, fday.ent_period_id, fday.week_id, fday.report_date_julian),
        0, fday.report_date_julian, 1, fday.week_id, 3, fday.ent_period_id, 7, fday.ent_qtr_id, 15, fday.ent_year_id) time_id,
        decode(grouping_id(fday.ent_year_id, fday.ent_qtr_id, fday.ent_period_id, fday.week_id, fday.report_date_julian),
        0, 1, 1, 16, 3, 32, 7, 64, 15, 128) period_type_id,
        0 inv_on_hold_amt_wtd_b,
        0 inv_on_hold_amt_mtd_b,
        0 inv_on_hold_amt_qtd_b,
        0 inv_on_hold_amt_ytd_b,
        0 inv_on_hold_amt_wtd_prim_g,
        0 inv_on_hold_amt_mtd_prim_g,
        0 inv_on_hold_amt_qtd_prim_g,
        0 inv_on_hold_amt_ytd_prim_g,
        0 inv_on_hold_amt_wtd_sec_g,
        0 inv_on_hold_amt_mtd_sec_g,
        0 inv_on_hold_amt_qtd_sec_g,
        0 inv_on_hold_amt_ytd_sec_g,
        0 inv_on_hold_count_wtd,
        0 inv_on_hold_count_mtd,
        0 inv_on_hold_count_qtd,
        0 inv_on_hold_count_ytd,
        0 days_on_hold_wtd,
        0 days_on_hold_mtd,
        0 days_on_hold_qtd,
        0 days_on_hold_ytd,
        sum(1) hold_count
 from FII.FII_AP_INV_HOLDS_B f, FII.FII_TIME_DAY fday
 where f.time_id = fday.report_date_julian
 group by f.org_id, f.supplier_id,
          rollup (fday.ent_year_id, fday.ent_qtr_id, fday.ent_period_id, fday.week_id, fday.report_date_julian))
 group by grouping sets((org_id, supplier_id, time_id, period_type_id),
                       (org_id, time_id, period_type_id))