DBA Data[Home] [Help]

MATERIALIZED VIEW: APPS.BIL_BI_TOPOP_G_MV

Source


SELECT /* bug4654692 */ * FROM
  (
    SELECT
      'SLSREP' umarker,
      RANK() OVER(PARTITION BY base.sales_group_id,base.salesrep_id,yr,opty_status ORDER BY opty_amt DESC)
        year_rank,
      RANK() OVER(PARTITION BY base.sales_group_id,base.salesrep_id,quarter,opty_status ORDER BY opty_amt DESC)
        quarter_rank,
      RANK() OVER(PARTITION BY base.sales_group_id,base.salesrep_id,period,opty_status ORDER BY opty_amt DESC)
        period_rank,
      RANK() OVER(PARTITION BY base.sales_group_id,base.salesrep_id,week,opty_status ORDER BY opty_amt DESC)
        week_rank,
      base.sales_group_id parent_sales_group_id,
      base.sales_group_id,
      base.salesrep_id,
      base.opty_id,
      base.opty_number,
      base.customer_id,
      base.sales_stage_id,
      base.win_probability,
      base.opty_close_date,
      base.opty_status,
      base.opty_status_code,
      base.yr,
      base.quarter,
      base.period,
      base.week,
      base.opty_amt,
      base.opty_amt_s
    FROM
      (
      SELECT /*+ USE_HASH(sumry) USE_HASH(time) USE_HASH(jgu)*/
        sumry.opty_id,
        sumry.lead_number opty_number,
        sumry.owner_sales_group_id sales_group_id,
        sumry.owner_salesrep_id salesrep_id,
        TO_DATE(sumry.opty_effective_time_id,'J') opty_close_date,
        sumry.customer_id,
        sumry.win_probability,
        (CASE
          WHEN forecast_rollup_flag||open_status_flag='YY' THEN 'OPEN'
          WHEN open_status_flag||win_loss_indicator='NW'   THEN 'WON'
          WHEN open_status_flag||win_loss_indicator='NL'   THEN 'LOST'
          WHEN open_status_flag||win_loss_indicator='NN'   THEN 'NO_OPPORTUNITY'
          ELSE '-1' END
        ) opty_status,
        (CASE WHEN opty_effective_time_id BETWEEN time.yr_start_date_id AND time.yr_end_date_id 
          THEN 1 ELSE 0 END) yr,
        (CASE WHEN opty_effective_time_id BETWEEN time.qtr_start_date_id AND time.qtr_end_date_id 
          THEN 1 ELSE 0 END) quarter,
        (CASE WHEN opty_effective_time_id BETWEEN time.per_start_date_id AND time.per_end_date_id 
          THEN 1 ELSE 0 END) period,
        (CASE WHEN opty_effective_time_id BETWEEN time.wk_start_date_id AND time.wk_end_date_id 
          THEN 1 ELSE 0 END) week,
        sumry.sales_stage_id,
        sumry.status opty_status_code,
        sumry.opty_amt,
        sumry.opty_amt_s
      FROM
        bil_bi_opdtl_mv sumry,
        JTF.JTF_RS_GROUP_USAGES jgu,
        (SELECT
             TO_NUMBER(TO_CHAR(LEAST(ent_year_start_date,week_start_date),'J')) start_date_id
           , TO_NUMBER(TO_CHAR(GREATEST(ent_year_end_date, week_end_date),'J')) end_date_id
           , TO_NUMBER(TO_CHAR(ent_year_start_date,'J')) yr_start_date_id
           , TO_NUMBER(TO_CHAR(ent_year_end_date,'J')) yr_end_date_id
           , TO_NUMBER(TO_CHAR(ent_qtr_start_date,'J')) qtr_start_date_id
           , TO_NUMBER(TO_CHAR(ent_qtr_end_date,'J')) qtr_end_date_id
           , TO_NUMBER(TO_CHAR(ent_period_start_date,'J')) per_start_date_id
           , TO_NUMBER(TO_CHAR(ent_period_end_date,'J')) per_end_date_id
           , TO_NUMBER(TO_CHAR(week_start_date,'J')) wk_start_date_id
           , TO_NUMBER(TO_CHAR(week_end_date,'J')) wk_end_date_id
         FROM
           FII.FII_TIME_DAY day
         WHERE
           TRUNC(SYSDATE) = day.report_date
        ) time
      WHERE
        sumry.opty_effective_time_id BETWEEN time.start_date_id AND time.end_date_id
        AND sumry.owner_sales_group_id = jgu.group_id
        AND jgu.usage='SALES'
	   AND NVL(sumry.opty_amt,0) > 0
      GROUP BY
        sumry.opty_id,
        sumry.lead_number,
        sumry.owner_sales_group_id,
        sumry.owner_salesrep_id,
        sumry.opty_effective_time_id,
        sumry.customer_id,
        sumry.win_probability,
        sumry.win_loss_indicator,
        sumry.open_status_flag,
        sumry.forecast_rollup_flag,
        sumry.sales_stage_id,
        sumry.status,
        sumry.opty_amt,
        sumry.opty_amt_s,
        time.start_date_id,
        time.end_date_id,
        time.yr_start_date_id,
        time.yr_end_date_id,
        time.qtr_start_date_id,
        time.qtr_end_date_id,
        time.per_start_date_id,
        time.per_end_date_id,
        time.wk_start_date_id,
        time.wk_end_date_id
        ) base
      WHERE base.opty_status <> '-1'
  UNION ALL
    SELECT
      'SLSGRP' umarker,
      RANK() OVER(PARTITION BY jgd.parent_group_id,yr,opty_status ORDER BY opty_amt DESC) year_rank,
      RANK() OVER(PARTITION BY jgd.parent_group_id,quarter,opty_status ORDER BY opty_amt DESC) quarter_rank,
      RANK() OVER(PARTITION BY jgd.parent_group_id,period,opty_status ORDER BY opty_amt DESC) period_rank,
      RANK() OVER(PARTITION BY jgd.parent_group_id,week,opty_status ORDER BY opty_amt DESC) week_rank,
      jgd.parent_group_id parent_sales_group_id,
      base.sales_group_id,
      base.salesrep_id,
      base.opty_id,
      base.opty_number,
      base.customer_id,
      base.sales_stage_id,
      base.win_probability,
      base.opty_close_date,
      base.opty_status,
      base.opty_status_code,
      base.yr,
      base.quarter,
      base.period,
      base.week,
      base.opty_amt,
      base.opty_amt_s
    FROM
      JTF.JTF_RS_GROUPS_DENORM jgd,
      JTF.JTF_RS_GROUP_USAGES pjgu,
      (
      SELECT /*+ USE_HASH(sumry) USE_HASH(time) USE_HASH(jgu)*/
        sumry.opty_id,
        sumry.lead_number opty_number,
        sumry.owner_sales_group_id sales_group_id,
        sumry.owner_salesrep_id salesrep_id,
        TO_DATE(sumry.opty_effective_time_id,'J') opty_close_date,
        sumry.customer_id,
        sumry.win_probability,
        (CASE
          WHEN forecast_rollup_flag||open_status_flag='YY' THEN 'OPEN'
          WHEN open_status_flag||win_loss_indicator='NW'   THEN 'WON'
          WHEN open_status_flag||win_loss_indicator='NL'   THEN 'LOST'
          WHEN open_status_flag||win_loss_indicator='NN'   THEN 'NO_OPPORTUNITY'
          ELSE '-1' END
        ) opty_status,
        (CASE WHEN opty_effective_time_id BETWEEN time.yr_start_date_id AND time.yr_end_date_id 
          THEN 1 ELSE 0 END) yr,
        (CASE WHEN opty_effective_time_id BETWEEN time.qtr_start_date_id AND time.qtr_end_date_id 
          THEN 1 ELSE 0 END) quarter,
        (CASE WHEN opty_effective_time_id BETWEEN time.per_start_date_id AND time.per_end_date_id 
          THEN 1 ELSE 0 END) period,
        (CASE WHEN opty_effective_time_id BETWEEN time.wk_start_date_id AND time.wk_end_date_id 
          THEN 1 ELSE 0 END) week,
        sumry.sales_stage_id,
        sumry.status opty_status_code,
        sumry.opty_amt,
        sumry.opty_amt_s
      FROM
        bil_bi_opdtl_mv sumry,
        JTF.JTF_RS_GROUP_USAGES jgu,
        (SELECT
             TO_NUMBER(TO_CHAR(LEAST(ent_year_start_date,week_start_date),'J')) start_date_id
           , TO_NUMBER(TO_CHAR(GREATEST(ent_year_end_date, week_end_date),'J')) end_date_id
           , TO_NUMBER(TO_CHAR(ent_year_start_date,'J')) yr_start_date_id
           , TO_NUMBER(TO_CHAR(ent_year_end_date,'J')) yr_end_date_id
           , TO_NUMBER(TO_CHAR(ent_qtr_start_date,'J')) qtr_start_date_id
           , TO_NUMBER(TO_CHAR(ent_qtr_end_date,'J')) qtr_end_date_id
           , TO_NUMBER(TO_CHAR(ent_period_start_date,'J')) per_start_date_id
           , TO_NUMBER(TO_CHAR(ent_period_end_date,'J')) per_end_date_id
           , TO_NUMBER(TO_CHAR(week_start_date,'J')) wk_start_date_id
           , TO_NUMBER(TO_CHAR(week_end_date,'J')) wk_end_date_id
         FROM
           FII.FII_TIME_DAY day
         WHERE
           TRUNC(SYSDATE) = day.report_date
        ) time
      WHERE
        sumry.opty_effective_time_id BETWEEN time.start_date_id AND time.end_date_id
        AND sumry.owner_sales_group_id = jgu.group_id
        AND jgu.usage='SALES'
	   AND NVL(sumry.opty_amt,0) > 0
      GROUP BY
        sumry.opty_id,
        sumry.lead_number,
        sumry.owner_sales_group_id,
        sumry.owner_salesrep_id,
        sumry.opty_effective_time_id,
        sumry.customer_id,
        sumry.win_probability,
        sumry.win_loss_indicator,
        sumry.open_status_flag,
        sumry.forecast_rollup_flag,
        sumry.competitor_id,
        sumry.sales_stage_id,
        sumry.status,
        sumry.opty_amt,
        sumry.opty_amt_s,
        time.start_date_id,
        time.end_date_id,
        time.yr_start_date_id,
        time.yr_end_date_id,
        time.qtr_start_date_id,
        time.qtr_end_date_id,
        time.per_start_date_id,
        time.per_end_date_id,
        time.wk_start_date_id,
        time.wk_end_date_id
        ) base
      WHERE base.opty_status <> '-1'
        AND base.sales_group_id = jgd.group_id
        AND jgd.parent_group_id = pjgu.group_id
        AND jgd.latest_relationship_flag = 'Y'
        AND pjgu.usage = 'SALES'
    )
    WHERE
          (yr = 1 and year_rank < 26)
       OR (quarter = 1 and quarter_rank < 26)
       OR (period = 1 and period_rank < 26)
       OR (week = 1 and week_rank < 26)