D2_MEASR_QTY_MV.sql 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. set serveroutput on
  2. DECLARE
  3. CNT NUMBER(1);
  4. BEGIN
  5. SELECT COUNT(*) INTO CNT FROM USER_MVIEWS WHERE MVIEW_NAME='D2_MEASR_QTY_MV';
  6. IF (CNT > 0) THEN
  7. EXECUTE IMMEDIATE 'DROP MATERIALIZED VIEW D2_MEASR_QTY_MV';
  8. DBMS_OUTPUT.PUT_LINE(' D2_MEASR_QTY_MV View Dropped');
  9. END IF;
  10. END;
  11. /
  12. CREATE MATERIALIZED VIEW D2_MEASR_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
  38. FROM
  39. (SELECT
  40. /*+ INDEX(mc,D1M252S2) */
  41. mc.measr_comp_id,
  42. mc.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. f1_installation f1
  61. WHERE mc.measr_comp_id =m.measr_comp_id
  62. AND m.char_type_cd IN ('D2POSTCD' ,'D2CITY','D2DVCTYP','D2HEADED','D2USGGRP','D2MARKET','D2SPR','D2SVCTYP','D2MKRLTY','D2MANUF','D2MODEL','D2GEOCD')
  63. AND mc.bus_obj_cd = 'D2-MeasuredQuantityAggregator '
  64. AND mc.BO_STATUS_CD = 'ACTIVE'
  65. AND mc.measr_comp_type_cd = mct.measr_comp_type_cd
  66. AND mct.mc_class_flg = 'D1AG'
  67. AND m.effdt =
  68. (SELECT MAX (a.effdt)
  69. FROM d1_measr_comp_char a
  70. WHERE a.measr_comp_id = m.measr_comp_id
  71. AND a.char_type_cd = m.char_type_cd
  72. )
  73. GROUP BY mc.measr_comp_id,
  74. mc.measr_comp_type_Cd,
  75. mc.bus_obj_cd,
  76. f1.language_cd
  77. ) T1,
  78. d1_measr_comp_type_l mctyp,
  79. d1_dvc_type_l dvtl,
  80. d1_spr_l sprl,
  81. d1_usg_grp_l usgrl,
  82. d1_mkt_l mktl,
  83. d1_spr_l sprl1,
  84. d1_svc_type_l svtl,
  85. ci_lookup_val_l lkpl,
  86. d1_manufacturer_l dmnl,
  87. d1_model_l dmdl
  88. WHERE T1.measr_comp_type_cd=mctyp.measr_comp_type_cd
  89. AND mctyp.language_cd = T1.language_cd
  90. AND T1.DEVICE_TYPE_CD =dvtl.device_type_cd
  91. AND T1.language_cd = dvtl.language_cd
  92. AND T1.head_end_system_cd =sprl.d1_spr_cd(+)
  93. AND T1.language_cd = sprl.language_cd(+)
  94. AND T1.usg_calc_grp_cd =usgrl.usg_grp_cd(+)
  95. AND T1.language_cd = usgrl.language_cd(+)
  96. AND T1.mkt_cd =mktl.mkt_cd(+)
  97. AND T1.language_cd = mktl.language_cd(+)
  98. AND T1.spr_cd =sprl1.d1_spr_cd(+)
  99. AND T1.language_cd = sprl1.language_cd(+)
  100. AND T1.d1_svc_tpe_cd =svtl.d1_svc_type_cd(+)
  101. AND T1.language_cd = svtl.language_cd(+)
  102. AND T1.mkt_rel_type_flg =lkpl.field_value(+)
  103. AND T1.language_cd = lkpl.language_cd(+)
  104. AND lkpl.field_name(+) = 'MKT_REL_TYPE_FLG'
  105. AND T1.manufacturer_cd =dmnl.manufacturer_cd(+)
  106. AND T1.manufacturer_cd = dmdl.manufacturer_cd(+)
  107. AND T1.language_cd = dmnl.language_cd(+)
  108. AND T1.d1_model_cd =dmdl.d1_model_cd(+)
  109. AND T1.language_cd = dmdl.language_cd(+)
  110. /
  111. CREATE unique index D2T100P0 on D2_MEASR_QTY_MV(MEASR_COMP_ID)
  112. /
  113. begin
  114. DBMS_MVIEW.REFRESH('D2_MEASR_QTY_MV','C');
  115. END;
  116. /
  117. ANALYZE TABLE D2_MEASR_QTY_MV COMPUTE STATISTICS
  118. /