D2_TIMELINESS_QTY_MV.sql 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. set serveroutput on
  2. DECLARE
  3. CNT NUMBER(1);
  4. BEGIN
  5. SELECT COUNT(*) INTO CNT FROM USER_MVIEWS WHERE MVIEW_NAME='D2_TIMELINESS_QTY_MV';
  6. IF (CNT > 0) THEN
  7. EXECUTE IMMEDIATE 'DROP MATERIALIZED VIEW D2_TIMELINESS_QTY_MV';
  8. DBMS_OUTPUT.PUT_LINE(' D2_TIMELINESS_QTY_MV View Dropped');
  9. END IF;
  10. END;
  11. /
  12. CREATE MATERIALIZED VIEW D2_TIMELINESS_QTY_MV PARALLEL BUILD DEFERRED REFRESH COMPLETE ON DEMAND START WITH SYSDATE DISABLE QUERY REWRITE
  13. AS
  14. SELECT T1.MEASR_COMP_ID AS MEASR_COMP_ID,
  15. T1.measr_comp_type_Cd as MEASR_COMP_TYPE_CD,
  16. T1.POSTAL AS POSTAL ,
  17. MCTYP.DESCR100 AS MC_TYPE_DESCR ,
  18. T1.CITY AS CITY,
  19. T1.DEVICE_TYPE_CD AS DEVICE_TYPE_CD,
  20. DVTL.DESCR100 AS DEVICE_TYPE_DESCR ,
  21. T1.HEAD_END_SYSTEM_CD AS HEAD_END_SYSTEM_CD ,
  22. SPRL.DESCR100 AS HEAD_END_SYSTEM_DESCR ,
  23. T1.USG_CALC_GRP_CD AS USG_CALC_GRP_CD,
  24. USGRL.DESCR100 AS USG_CALC_GRP_DESCR ,
  25. T1.MKT_CD AS MKT_CD,
  26. MKTL.DESCR100 AS MKT_DESCR ,
  27. T1.SPR_CD AS D1_SPR_CD ,
  28. SPRL1.DESCR100 AS SPR_DESCR ,
  29. T1.D1_SVC_TPE_CD AS D1_SVC_TPE_CD,
  30. SVTL.DESCR100 AS SVC_TYPE_DESCR ,
  31. T1.MKT_REL_TYPE_FLG AS MKT_REL_TYPE_FLG ,
  32. LKPL.DESCR AS MKT_REL_TYPE_DESCR ,
  33. T1.MANUFACTURER_CD AS MANUFACTURER_CD,
  34. DMNL.DESCR100 AS MANUFACTURER_DESCR ,
  35. T1.D1_MODEL_CD AS D1_MODEL_CD,
  36. DMDL.DESCR100 AS MODEL_DESCR ,
  37. T1.GEO_CODE AS GEO_CODE
  38. FROM
  39. (SELECT
  40. /*+ INDEX(mc,D1M252S2) */
  41. mc.measr_comp_id,
  42. mastermc.measr_comp_type_Cd,
  43. MAX(DECODE(m.char_type_cd ,'D2POSTCD',m.SRCH_CHAR_VAL,NULL)) AS postal,
  44. MAX(DECODE(trim(m.char_type_cd) ,'D2CITY',m.SRCH_CHAR_VAL,NULL)) AS city,
  45. MAX(DECODE(trim(m.char_type_cd) ,'D2DVCTYP',m.SRCH_CHAR_VAL,NULL)) AS DEVICE_TYPE_CD,
  46. MAX(DECODE(trim(m.char_type_cd) ,'D2HEADED',m.SRCH_CHAR_VAL,NULL)) AS head_end_system_cd,
  47. MAX(DECODE(trim(m.char_type_cd) ,'D2USGGRP',m.SRCH_CHAR_VAL,NULL)) AS usg_calc_grp_cd,
  48. MAX(DECODE(trim(m.char_type_cd) ,'D2MARKET',m.SRCH_CHAR_VAL,NULL)) AS mkt_cd,
  49. MAX(DECODE(trim(m.char_type_cd) ,'D2SPR',m.SRCH_CHAR_VAL,NULL)) AS spr_cd,
  50. MAX(DECODE(trim(m.char_type_cd) ,'D2SVCTYP',m.SRCH_CHAR_VAL,NULL)) AS d1_svc_tpe_cd,
  51. MAX(DECODE(trim(m.char_type_cd) ,'D2MKRLTY',m.SRCH_CHAR_VAL,NULL)) AS mkt_rel_type_flg,
  52. MAX(DECODE(trim(m.char_type_cd) ,'D2MANUF',m.SRCH_CHAR_VAL,NULL)) AS manufacturer_cd,
  53. MAX(DECODE(trim(m.char_type_cd) ,'D2MODEL',m.SRCH_CHAR_VAL,NULL)) AS d1_model_cd,
  54. MAX(DECODE(trim(m.char_type_cd) ,'D2GEOCD',m.SRCH_CHAR_VAL,NULL)) AS geo_code,
  55. mc.bus_obj_cd,
  56. f1.language_cd
  57. FROM d1_measr_comp mc,
  58. d1_measr_comp_type mct,
  59. d1_measr_comp_char m,
  60. d1_measr_comp_rel mcrel,
  61. d1_measr_comp mastermc,
  62. f1_installation f1
  63. WHERE mc.measr_comp_id =m.measr_comp_id
  64. AND m.char_type_cd IN ('D2POSTCD' ,'D2CITY','D2DVCTYP','D2HEADED','D2USGGRP','D2MARKET','D2SPR','D2SVCTYP','D2MKRLTY','D2MANUF','D2MODEL','D2GEOCD')
  65. AND mc.bus_obj_cd = 'D2-MsrmtTimelinessQuantityAggr'
  66. AND mc.BO_STATUS_CD = 'ACTIVE'
  67. AND mastermc.measr_comp_type_cd = mct.measr_comp_type_cd
  68. AND mct.mc_class_flg = 'D1AG'
  69. AND mcrel.rel_measr_comp_id =mc.measr_comp_id
  70. AND mastermc.measr_comp_id = mcrel.measr_comp_id
  71. AND m.effdt =
  72. (SELECT MAX (a.effdt)
  73. FROM d1_measr_comp_char a
  74. WHERE a.measr_comp_id = m.measr_comp_id
  75. AND a.char_type_cd = m.char_type_cd
  76. )
  77. GROUP BY mc.measr_comp_id,
  78. mastermc.measr_comp_type_Cd,
  79. mc.bus_obj_cd,
  80. f1.language_cd
  81. ) T1,
  82. d1_measr_comp_type_l mctyp,
  83. d1_dvc_type_l dvtl,
  84. d1_spr_l sprl,
  85. d1_usg_grp_l usgrl,
  86. d1_mkt_l mktl,
  87. d1_spr_l sprl1,
  88. d1_svc_type_l svtl,
  89. ci_lookup_val_l lkpl,
  90. d1_manufacturer_l dmnl,
  91. d1_model_l dmdl
  92. WHERE T1.measr_comp_type_cd=mctyp.measr_comp_type_cd
  93. AND mctyp.language_cd = T1.language_cd
  94. AND T1.DEVICE_TYPE_CD =dvtl.device_type_cd
  95. AND T1.language_cd = dvtl.language_cd
  96. AND T1.head_end_system_cd =sprl.d1_spr_cd(+)
  97. AND T1.language_cd = sprl.language_cd(+)
  98. AND T1.usg_calc_grp_cd =usgrl.usg_grp_cd(+)
  99. AND T1.language_cd = usgrl.language_cd(+)
  100. AND T1.mkt_cd =mktl.mkt_cd(+)
  101. AND T1.language_cd = mktl.language_cd(+)
  102. AND T1.spr_cd =sprl1.d1_spr_cd(+)
  103. AND T1.language_cd = sprl1.language_cd(+)
  104. AND T1.d1_svc_tpe_cd =svtl.d1_svc_type_cd(+)
  105. AND T1.language_cd = svtl.language_cd(+)
  106. AND T1.mkt_rel_type_flg =lkpl.field_value(+)
  107. AND T1.language_cd = lkpl.language_cd(+)
  108. AND lkpl.field_name(+) = 'MKT_REL_TYPE_FLG'
  109. AND T1.manufacturer_cd =dmnl.manufacturer_cd(+)
  110. AND T1.manufacturer_cd = dmdl.manufacturer_cd(+)
  111. AND T1.language_cd = dmnl.language_cd(+)
  112. AND T1.d1_model_cd =dmdl.d1_model_cd(+)
  113. AND T1.language_cd = dmdl.language_cd(+)
  114. /
  115. CREATE unique index D2T103P0 on D2_TIMELINESS_QTY_MV(MEASR_COMP_ID)
  116. /
  117. begin
  118. DBMS_MVIEW.REFRESH('D2_TIMELINESS_QTY_MV','C');
  119. END;
  120. /
  121. ANALYZE TABLE D2_TIMELINESS_QTY_MV COMPUTE STATISTICS
  122. /