[toc]

任务需求

指标编码清单

行云开发

宽移融合受理套餐日报(DM_KPI_OM_ACCEPT_D)

脚本开发

该日报模型是单维表,字段直接取自南京院提供的码表,根据 KPI_CODE 直接获取对应 KPI_VALUE 即可。

分母为0,同环比都置空

SELECT 
T1.MONTH_ID,
T1.DAY_ID,
T1.MONTH_ID||T1.DAY_ID ACCT_DATE,
T1.PROV_ID,
PRO.PROV_NAME,
CASE WHEN T1.PROV_ID = '111' THEN -3
     WHEN T1.PROV_ID = '112' THEN -2
     WHEN T1.PROV_ID = '113' THEN -1
ELSE PRO.ORD END PROV_ORD,
T1.AREA_ID,
CASE WHEN T1.AREA_ID = '-1' THEN '汇总' ELSE CIT.AREA_DESC END,
CIT.ORD AREA_ORD,
SUM(CASE WHEN T1.KPI_CODE = 'CKP_13001' THEN T1.KPI_VALUE END) OM_USER, --宽移融合受理套餐数本日值
SUM(CASE WHEN T1.KPI_CODE = 'CKP_13001' AND T1.D_LD_VALUE != 0 AND T1.D_LD_VALUE IS NOT NULL THEN (T1.KPI_VALUE-T1.D_LD_VALUE)/T1.D_LD_VALUE ELSE NULL END) om_user_hb, --宽移融合受理套餐数日环比
SUM(CASE WHEN T1.KPI_CODE = 'CKP_13001' THEN T1.D_CMT_VALUE END) om_user_m, --宽移融合受理套餐数本月累计
SUM(CASE WHEN T1.KPI_CODE = 'CKP_13001' AND T1.D_LMT_VALUE != 0 AND T1.D_LMT_VALUE IS NOT NULL THEN (T1.D_CMT_VALUE-T1.D_LMT_VALUE)/T1.D_LMT_VALUE ELSE NULL END) om_user_m_hb, --宽移融合受理套餐数月环比
SUM(CASE WHEN T1.KPI_CODE = 'CKP_13002' THEN T1.KPI_VALUE END) om_yd_user, --宽移融合受理套餐捆绑的移动业务用户数本日值
SUM(CASE WHEN T1.KPI_CODE = 'CKP_13002' AND T1.D_LD_VALUE != 0 AND T1.D_LD_VALUE IS NOT NULL THEN (T1.KPI_VALUE-T1.D_LD_VALUE)/T1.D_LD_VALUE ELSE NULL END) om_yd_user_hb, --宽移融合受理套餐捆绑的移动业务用户数日环比
SUM(CASE WHEN T1.KPI_CODE = 'CKP_13002' THEN T1.D_CMT_VALUE END) om_yd_user_m, --宽移融合受理套餐捆绑的移动业务用户数本月累计
SUM(CASE WHEN T1.KPI_CODE = 'CKP_13002' AND T1.D_LMT_VALUE != 0 AND T1.D_LMT_VALUE IS NOT NULL THEN (T1.D_CMT_VALUE-T1.D_LMT_VALUE)/T1.D_LMT_VALUE ELSE NULL END) om_yd_user_m_hb, --宽移融合受理套餐捆绑的移动业务用户数月环比
SUM(CASE WHEN T1.KPI_CODE = 'CKP_13003' THEN T1.KPI_VALUE END) om_yd_cl_user, --宽移融合受理套餐捆绑的移动业务存量用户数本日值
SUM(CASE WHEN T1.KPI_CODE = 'CKP_13003' AND T1.D_LD_VALUE != 0 AND T1.D_LD_VALUE IS NOT NULL THEN (T1.KPI_VALUE-T1.D_LD_VALUE)/T1.D_LD_VALUE ELSE NULL END) om_yd_cl_user_hb, --宽移融合受理套餐捆绑的移动业务存量用户数日环比
SUM(CASE WHEN T1.KPI_CODE = 'CKP_13003' THEN T1.D_CMT_VALUE END) om_yd_cl_user_m, --宽移融合受理套餐捆绑的移动业务存量用户数本月累计
SUM(CASE WHEN T1.KPI_CODE = 'CKP_13003' AND T1.D_LMT_VALUE != 0 AND T1.D_LMT_VALUE IS NOT NULL THEN (T1.D_CMT_VALUE-T1.D_LMT_VALUE)/T1.D_LMT_VALUE ELSE NULL END) om_yd_cl_user_m_hb, --宽移融合受理套餐捆绑的移动业务存量用户数月环比
SUM(CASE WHEN T1.KPI_CODE = 'CKP_13004' THEN T1.KPI_VALUE END) om_yd_ly_devuser, --宽移融合受理套餐捆绑的移动业务本年发展用户数本日值
SUM(CASE WHEN T1.KPI_CODE = 'CKP_13004' AND T1.D_LD_VALUE != 0 AND T1.D_LD_VALUE IS NOT NULL THEN (T1.KPI_VALUE-T1.D_LD_VALUE)/T1.D_LD_VALUE ELSE NULL END) om_yd_ly_devuser_hb, --宽移融合受理套餐捆绑的移动业务本年发展用户数日环比
SUM(CASE WHEN T1.KPI_CODE = 'CKP_13004' THEN T1.D_CMT_VALUE END) om_yd_ly_devuser_m, --宽移融合受理套餐捆绑的移动业务本年发展用户数本月累计
SUM(CASE WHEN T1.KPI_CODE = 'CKP_13004' AND T1.D_LMT_VALUE != 0 AND T1.D_LMT_VALUE IS NOT NULL THEN (T1.D_CMT_VALUE-T1.D_LMT_VALUE)/T1.D_LMT_VALUE ELSE NULL END) om_yd_ly_devuser_m_hb, --宽移融合受理套餐捆绑的移动业务本年发展用户数月环比
SUM(CASE WHEN T1.KPI_CODE = 'CKP_13005' THEN T1.KPI_VALUE END) om_yd_ly_m_devuser, --宽移融合受理套餐捆绑的移动业务本年发展中本月发展用户数本日值
SUM(CASE WHEN T1.KPI_CODE = 'CKP_13005' AND T1.D_LD_VALUE != 0 AND T1.D_LD_VALUE IS NOT NULL THEN (T1.KPI_VALUE-T1.D_LD_VALUE)/T1.D_LD_VALUE ELSE NULL END) om_yd_ly_m_devuser_hb, --宽移融合受理套餐捆绑的移动业务本年发展中本月发展用户数日环比
SUM(CASE WHEN T1.KPI_CODE = 'CKP_13005' THEN T1.D_CMT_VALUE END) om_yd_ly_m_devuser_m, --宽移融合受理套餐捆绑的移动业务本年发展中本月发展用户数本月累计
SUM(CASE WHEN T1.KPI_CODE = 'CKP_13005' AND T1.D_LMT_VALUE != 0 AND T1.D_LMT_VALUE IS NOT NULL THEN (T1.D_CMT_VALUE-T1.D_LMT_VALUE)/T1.D_LMT_VALUE ELSE NULL END) om_yd_ly_m_devuser_m_hb, --宽移融合受理套餐捆绑的移动业务本年发展中本月发展用户数月环比
SUM(CASE WHEN T1.KPI_CODE = 'CKP_13006' THEN T1.KPI_VALUE END) om_yd_ly_nm_devuser, --宽移融合受理套餐捆绑的移动业务本年发展中非本月发展用户数本日值
SUM(CASE WHEN T1.KPI_CODE = 'CKP_13006' AND T1.D_LD_VALUE != 0 AND T1.D_LD_VALUE IS NOT NULL THEN (T1.KPI_VALUE-T1.D_LD_VALUE)/T1.D_LD_VALUE ELSE NULL END) om_yd_ly_nm_devuser_hb, --宽移融合受理套餐捆绑的移动业务本年发展中非本月发展用户数日环比
SUM(CASE WHEN T1.KPI_CODE = 'CKP_13006' THEN T1.D_CMT_VALUE END) om_yd_ly_nm_devuser_m, --宽移融合受理套餐捆绑的移动业务本年发展中非本月发展用户数本月累计
SUM(CASE WHEN T1.KPI_CODE = 'CKP_13006' AND T1.D_LMT_VALUE != 0 AND T1.D_LMT_VALUE IS NOT NULL THEN (T1.D_CMT_VALUE-T1.D_LMT_VALUE)/T1.D_LMT_VALUE ELSE NULL END) om_yd_ly_nm_devuser_m_hb, --宽移融合受理套餐捆绑的移动业务本年发展中非本月发展用户数月环比
SUM(CASE WHEN T1.KPI_CODE = 'CKP_13007' THEN T1.KPI_VALUE END) om_kd_user, --宽移融合受理套餐捆绑的宽带接入用户数本日值
SUM(CASE WHEN T1.KPI_CODE = 'CKP_13007' AND T1.D_LD_VALUE != 0 AND T1.D_LD_VALUE IS NOT NULL THEN (T1.KPI_VALUE-T1.D_LD_VALUE)/T1.D_LD_VALUE ELSE NULL END) om_kd_user_hb, --宽移融合受理套餐捆绑的宽带接入用户数日环比
SUM(CASE WHEN T1.KPI_CODE = 'CKP_13007' THEN T1.D_CMT_VALUE END) om_kd_user_m, --宽移融合受理套餐捆绑的宽带接入用户数本月累计
SUM(CASE WHEN T1.KPI_CODE = 'CKP_13007' AND T1.D_LMT_VALUE != 0 AND T1.D_LMT_VALUE IS NOT NULL THEN (T1.D_CMT_VALUE-T1.D_LMT_VALUE)/T1.D_LMT_VALUE ELSE NULL END) om_kd_user_m_hb, --宽移融合受理套餐捆绑的宽带接入用户数月环比
SUM(CASE WHEN T1.KPI_CODE = 'CKP_13008' THEN T1.KPI_VALUE END) om_kd_cl_user, --宽移融合受理套餐捆绑的宽带接入存量用户数本日值
SUM(CASE WHEN T1.KPI_CODE = 'CKP_13008' AND T1.D_LD_VALUE != 0 AND T1.D_LD_VALUE IS NOT NULL THEN (T1.KPI_VALUE-T1.D_LD_VALUE)/T1.D_LD_VALUE ELSE NULL END) om_kd_cl_user_hb, --宽移融合受理套餐捆绑的宽带接入存量用户数日环比
SUM(CASE WHEN T1.KPI_CODE = 'CKP_13008' THEN T1.D_CMT_VALUE END) om_kd_cl_user_m, --宽移融合受理套餐捆绑的宽带接入存量用户数本月累计
SUM(CASE WHEN T1.KPI_CODE = 'CKP_13008' AND T1.D_LMT_VALUE != 0 AND T1.D_LMT_VALUE IS NOT NULL THEN (T1.D_CMT_VALUE-T1.D_LMT_VALUE)/T1.D_LMT_VALUE ELSE NULL END) om_kd_cl_user_m_hb, --宽移融合受理套餐捆绑的宽带接入存量用户数月环比
SUM(CASE WHEN T1.KPI_CODE = 'CKP_13009' THEN T1.KPI_VALUE END) om_kd_ly_devuser, --宽移融合受理套餐捆绑的宽带接入本年发展用户数本日值
SUM(CASE WHEN T1.KPI_CODE = 'CKP_13009' AND T1.D_LD_VALUE != 0 AND T1.D_LD_VALUE IS NOT NULL THEN (T1.KPI_VALUE-T1.D_LD_VALUE)/T1.D_LD_VALUE ELSE NULL END) om_kd_ly_devuser_hb, --宽移融合受理套餐捆绑的宽带接入本年发展用户数日环比
SUM(CASE WHEN T1.KPI_CODE = 'CKP_13009' THEN T1.D_CMT_VALUE END) om_kd_ly_devuser_m, --宽移融合受理套餐捆绑的宽带接入本年发展用户数本月累计
SUM(CASE WHEN T1.KPI_CODE = 'CKP_13009' AND T1.D_LMT_VALUE != 0 AND T1.D_LMT_VALUE IS NOT NULL THEN (T1.D_CMT_VALUE-T1.D_LMT_VALUE)/T1.D_LMT_VALUE ELSE NULL END) om_kd_ly_devuser_m_hb, --宽移融合受理套餐捆绑的宽带接入本年发展用户数月环比
SUM(CASE WHEN T1.KPI_CODE = 'CKP_13010' THEN T1.KPI_VALUE END) om_kd_ly_m_devuser, --宽移融合受理套餐捆绑的宽带接入本年发展中本月发展用户数本日值
SUM(CASE WHEN T1.KPI_CODE = 'CKP_13010' AND T1.D_LD_VALUE != 0 AND T1.D_LD_VALUE IS NOT NULL THEN (T1.KPI_VALUE-T1.D_LD_VALUE)/T1.D_LD_VALUE ELSE NULL END) om_kd_ly_m_devuser_hb, --宽移融合受理套餐捆绑的宽带接入本年发展中本月发展用户数日环比
SUM(CASE WHEN T1.KPI_CODE = 'CKP_13010' THEN T1.D_CMT_VALUE END) om_kd_ly_m_devuser_m, --宽移融合受理套餐捆绑的宽带接入本年发展中本月发展用户数本月累计
SUM(CASE WHEN T1.KPI_CODE = 'CKP_13010' AND T1.D_LMT_VALUE != 0 AND T1.D_LMT_VALUE IS NOT NULL THEN (T1.D_CMT_VALUE-T1.D_LMT_VALUE)/T1.D_LMT_VALUE ELSE NULL END) om_kd_ly_m_devuser_m_hb, --宽移融合受理套餐捆绑的宽带接入本年发展中本月发展用户数月环比
SUM(CASE WHEN T1.KPI_CODE = 'CKP_13011' THEN T1.KPI_VALUE END) om_kd_ly_nm_devuser, --宽移融合受理套餐捆绑的宽带接入本年发展中非本月发展用户数本日值
SUM(CASE WHEN T1.KPI_CODE = 'CKP_13011' AND T1.D_LD_VALUE != 0 AND T1.D_LD_VALUE IS NOT NULL THEN (T1.KPI_VALUE-T1.D_LD_VALUE)/T1.D_LD_VALUE ELSE NULL END) om_kd_ly_nm_devuser_hb, --宽移融合受理套餐捆绑的宽带接入本年发展中非本月发展用户数日环比
SUM(CASE WHEN T1.KPI_CODE = 'CKP_13011' THEN T1.D_CMT_VALUE END) om_kd_ly_nm_devuser_m, --宽移融合受理套餐捆绑的宽带接入本年发展中非本月发展用户数本月累计
SUM(CASE WHEN T1.KPI_CODE = 'CKP_13011' AND T1.D_LMT_VALUE != 0 AND T1.D_LMT_VALUE IS NOT NULL THEN (T1.D_CMT_VALUE-T1.D_LMT_VALUE)/T1.D_LMT_VALUE ELSE NULL END) om_kd_ly_nm_devuser_m_hb --宽移融合受理套餐捆绑的宽带接入本年发展中非本月发展用户数月环比

FROM (
    SELECT * FROM
    ITSY_CUBE_NJ.DM_D_KPI_COMP 
    WHERE MONTH_ID = '202202' 
    AND DAY_ID ='01'
) T1 LEFT JOIN (
    SELECT PROV_ID,PROV_NAME,CAST(ORD AS NUMBER) ORD FROM ITSY_CUBE.DIM_PROVINCE --省份码表
) PRO ON PRO.PROV_ID = T1.PROV_ID

LEFT JOIN (
    SELECT AREA_ID,AREA_DESC,CAST(ORD AS NUMBER) ORD FROM ITSY_DIM.DIM_AREA  --地市码表
) CIT ON CIT.AREA_ID = T1.AREA_ID


GROUP BY 
T1.MONTH_ID,
T1.DAY_ID,
T1.MONTH_ID||T1.DAY_ID,
T1.PROV_ID,
PRO.PROV_NAME,
CASE WHEN T1.PROV_ID = '111' THEN -3
     WHEN T1.PROV_ID = '112' THEN -2
     WHEN T1.PROV_ID = '113' THEN -1
ELSE PRO.ORD END,
T1.AREA_ID,
CASE WHEN T1.AREA_ID = '-1' THEN '汇总' ELSE CIT.AREA_DESC END,
CIT.ORD

ORDER BY 
PROV_ORD,AREA_ORD

存储过程开发

CREATE OR REPLACE PROCEDURE P_DM_KPI_OM_ACCEPT_D(
    V_MONTH IN VARCHAR ,
    V_DAY IN VARCHAR ,
    V_RETCODE OUT VARCHAR ,
    V_RETINFO OUT VARCHAR
) AS
    /*@
    ****************************************************************
    *名称 --%@NAME:                    宽移融合受理套餐日报     
    *执行周期 --%@PERIOD:              日
    *参数 --%@PARAM:                   V_MONTH  '202201' V_DAY '05'
    *参数 --%@PARAM:V_RETCODE          过程运行结束成功与否标志
    *参数 --%@PARAM:V_RETINFO          过程运行结束成功与否描述
    *创建人 --%@CREATOR:             樊鑫           
    *创建时间 --%@CREATED_TIME:     20220225
    *来源表 --%@FROM:    ITSY_CUBE.DIM_PROVINCE
    *来源表 --%@FROM:    ITSY_DIM.DIM_AREA
    *来源表 --%@FROM:    ITSY_CUBE_NJ.DM_D_KPI_COMP 
    *目标表 --%@TO:   ITSY_CUBE.DM_KPI_OM_ACCEPT_D
    *修改记录 --%@MODIFY:           
    ******************************************************************
    @*/
    
    V_SQL       VARCHAR(10000);
    V_CNT       NUMBER;
    V_PART_NAME VARCHAR(100);
    V_ACCT_DATE VARCHAR(20);
   
BEGIN
    V_PART_NAME:='PART'||V_MONTH||V_DAY;
    V_ACCT_DATE:=V_MONTH||V_DAY;
    V_SQL:='SELECT COUNT(*) FROM V$USER_TAB_PARTS WHERE TABLE_NAME =''DM_KPI_OM_ACCEPT_D'' AND PART_NAME='''||V_PART_NAME||'''';
    EXECUTE IMMEDIATE V_SQL INTO V_CNT;
    
    IF V_CNT =0 THEN 
        EXECUTE IMMEDIATE 'ALTER TABLE ITSY_CUBE.DM_KPI_OM_ACCEPT_D ADD PARTITION '||V_PART_NAME||'(ACCT_DATE='''||V_ACCT_DATE||''')';
    ELSE 
        EXECUTE IMMEDIATE 'ALTER TABLE ITSY_CUBE.DM_KPI_OM_ACCEPT_D TRUNCATE PARTITION '||V_PART_NAME;
    END IF;
    
    V_SQL := 'INSERT INTO ITSY_CUBE.DM_KPI_OM_ACCEPT_D PARTITION ON (ACCT_DATE='''||V_ACCT_DATE||''')
SELECT 
T1.MONTH_ID,
T1.DAY_ID,
T1.MONTH_ID||T1.DAY_ID ACCT_DATE,
T1.PROV_ID,
PRO.PROV_NAME,
CASE WHEN T1.PROV_ID = ''111'' THEN -3
     WHEN T1.PROV_ID = ''112'' THEN -2
     WHEN T1.PROV_ID = ''113'' THEN -1
ELSE PRO.ORD END PROV_ORD,
T1.AREA_ID,
CASE WHEN T1.AREA_ID = ''-1'' THEN ''汇总'' ELSE CIT.AREA_DESC END,
CIT.ORD AREA_ORD,
SUM(CASE WHEN T1.KPI_CODE = ''CKP_13001'' THEN T1.KPI_VALUE END) OM_USER, --宽移融合受理套餐数本日值
SUM(CASE WHEN T1.KPI_CODE = ''CKP_13001'' AND T1.D_LD_VALUE != 0 AND T1.D_LD_VALUE IS NOT NULL THEN (T1.KPI_VALUE-T1.D_LD_VALUE)/T1.D_LD_VALUE ELSE NULL END) om_user_hb, --宽移融合受理套餐数日环比
SUM(CASE WHEN T1.KPI_CODE = ''CKP_13001'' THEN T1.D_CMT_VALUE END) om_user_m, --宽移融合受理套餐数本月累计
SUM(CASE WHEN T1.KPI_CODE = ''CKP_13001'' AND T1.D_LMT_VALUE != 0 AND T1.D_LMT_VALUE IS NOT NULL THEN (T1.D_CMT_VALUE-T1.D_LMT_VALUE)/T1.D_LMT_VALUE ELSE NULL END) om_user_m_hb, --宽移融合受理套餐数月环比
SUM(CASE WHEN T1.KPI_CODE = ''CKP_13002'' THEN T1.KPI_VALUE END) om_yd_user, --宽移融合受理套餐捆绑的移动业务用户数本日值
SUM(CASE WHEN T1.KPI_CODE = ''CKP_13002'' AND T1.D_LD_VALUE != 0 AND T1.D_LD_VALUE IS NOT NULL THEN (T1.KPI_VALUE-T1.D_LD_VALUE)/T1.D_LD_VALUE ELSE NULL END) om_yd_user_hb, --宽移融合受理套餐捆绑的移动业务用户数日环比
SUM(CASE WHEN T1.KPI_CODE = ''CKP_13002'' THEN T1.D_CMT_VALUE END) om_yd_user_m, --宽移融合受理套餐捆绑的移动业务用户数本月累计
SUM(CASE WHEN T1.KPI_CODE = ''CKP_13002'' AND T1.D_LMT_VALUE != 0 AND T1.D_LMT_VALUE IS NOT NULL THEN (T1.D_CMT_VALUE-T1.D_LMT_VALUE)/T1.D_LMT_VALUE ELSE NULL END) om_yd_user_m_hb, --宽移融合受理套餐捆绑的移动业务用户数月环比
SUM(CASE WHEN T1.KPI_CODE = ''CKP_13003'' THEN T1.KPI_VALUE END) om_yd_cl_user, --宽移融合受理套餐捆绑的移动业务存量用户数本日值
SUM(CASE WHEN T1.KPI_CODE = ''CKP_13003'' AND T1.D_LD_VALUE != 0 AND T1.D_LD_VALUE IS NOT NULL THEN (T1.KPI_VALUE-T1.D_LD_VALUE)/T1.D_LD_VALUE ELSE NULL END) om_yd_cl_user_hb, --宽移融合受理套餐捆绑的移动业务存量用户数日环比
SUM(CASE WHEN T1.KPI_CODE = ''CKP_13003'' THEN T1.D_CMT_VALUE END) om_yd_cl_user_m, --宽移融合受理套餐捆绑的移动业务存量用户数本月累计
SUM(CASE WHEN T1.KPI_CODE = ''CKP_13003'' AND T1.D_LMT_VALUE != 0 AND T1.D_LMT_VALUE IS NOT NULL THEN (T1.D_CMT_VALUE-T1.D_LMT_VALUE)/T1.D_LMT_VALUE ELSE NULL END) om_yd_cl_user_m_hb, --宽移融合受理套餐捆绑的移动业务存量用户数月环比
SUM(CASE WHEN T1.KPI_CODE = ''CKP_13004'' THEN T1.KPI_VALUE END) om_yd_ly_devuser, --宽移融合受理套餐捆绑的移动业务本年发展用户数本日值
SUM(CASE WHEN T1.KPI_CODE = ''CKP_13004'' AND T1.D_LD_VALUE != 0 AND T1.D_LD_VALUE IS NOT NULL THEN (T1.KPI_VALUE-T1.D_LD_VALUE)/T1.D_LD_VALUE ELSE NULL END) om_yd_ly_devuser_hb, --宽移融合受理套餐捆绑的移动业务本年发展用户数日环比
SUM(CASE WHEN T1.KPI_CODE = ''CKP_13004'' THEN T1.D_CMT_VALUE END) om_yd_ly_devuser_m, --宽移融合受理套餐捆绑的移动业务本年发展用户数本月累计
SUM(CASE WHEN T1.KPI_CODE = ''CKP_13004'' AND T1.D_LMT_VALUE != 0 AND T1.D_LMT_VALUE IS NOT NULL THEN (T1.D_CMT_VALUE-T1.D_LMT_VALUE)/T1.D_LMT_VALUE ELSE NULL END) om_yd_ly_devuser_m_hb, --宽移融合受理套餐捆绑的移动业务本年发展用户数月环比
SUM(CASE WHEN T1.KPI_CODE = ''CKP_13005'' THEN T1.KPI_VALUE END) om_yd_ly_m_devuser, --宽移融合受理套餐捆绑的移动业务本年发展中本月发展用户数本日值
SUM(CASE WHEN T1.KPI_CODE = ''CKP_13005'' AND T1.D_LD_VALUE != 0 AND T1.D_LD_VALUE IS NOT NULL THEN (T1.KPI_VALUE-T1.D_LD_VALUE)/T1.D_LD_VALUE ELSE NULL END) om_yd_ly_m_devuser_hb, --宽移融合受理套餐捆绑的移动业务本年发展中本月发展用户数日环比
SUM(CASE WHEN T1.KPI_CODE = ''CKP_13005'' THEN T1.D_CMT_VALUE END) om_yd_ly_m_devuser_m, --宽移融合受理套餐捆绑的移动业务本年发展中本月发展用户数本月累计
SUM(CASE WHEN T1.KPI_CODE = ''CKP_13005'' AND T1.D_LMT_VALUE != 0 AND T1.D_LMT_VALUE IS NOT NULL THEN (T1.D_CMT_VALUE-T1.D_LMT_VALUE)/T1.D_LMT_VALUE ELSE NULL END) om_yd_ly_m_devuser_m_hb, --宽移融合受理套餐捆绑的移动业务本年发展中本月发展用户数月环比
SUM(CASE WHEN T1.KPI_CODE = ''CKP_13006'' THEN T1.KPI_VALUE END) om_yd_ly_nm_devuser, --宽移融合受理套餐捆绑的移动业务本年发展中非本月发展用户数本日值
SUM(CASE WHEN T1.KPI_CODE = ''CKP_13006'' AND T1.D_LD_VALUE != 0 AND T1.D_LD_VALUE IS NOT NULL THEN (T1.KPI_VALUE-T1.D_LD_VALUE)/T1.D_LD_VALUE ELSE NULL END) om_yd_ly_nm_devuser_hb, --宽移融合受理套餐捆绑的移动业务本年发展中非本月发展用户数日环比
SUM(CASE WHEN T1.KPI_CODE = ''CKP_13006'' THEN T1.D_CMT_VALUE END) om_yd_ly_nm_devuser_m, --宽移融合受理套餐捆绑的移动业务本年发展中非本月发展用户数本月累计
SUM(CASE WHEN T1.KPI_CODE = ''CKP_13006'' AND T1.D_LMT_VALUE != 0 AND T1.D_LMT_VALUE IS NOT NULL THEN (T1.D_CMT_VALUE-T1.D_LMT_VALUE)/T1.D_LMT_VALUE ELSE NULL END) om_yd_ly_nm_devuser_m_hb, --宽移融合受理套餐捆绑的移动业务本年发展中非本月发展用户数月环比
SUM(CASE WHEN T1.KPI_CODE = ''CKP_13007'' THEN T1.KPI_VALUE END) om_kd_user, --宽移融合受理套餐捆绑的宽带接入用户数本日值
SUM(CASE WHEN T1.KPI_CODE = ''CKP_13007'' AND T1.D_LD_VALUE != 0 AND T1.D_LD_VALUE IS NOT NULL THEN (T1.KPI_VALUE-T1.D_LD_VALUE)/T1.D_LD_VALUE ELSE NULL END) om_kd_user_hb, --宽移融合受理套餐捆绑的宽带接入用户数日环比
SUM(CASE WHEN T1.KPI_CODE = ''CKP_13007'' THEN T1.D_CMT_VALUE END) om_kd_user_m, --宽移融合受理套餐捆绑的宽带接入用户数本月累计
SUM(CASE WHEN T1.KPI_CODE = ''CKP_13007'' AND T1.D_LMT_VALUE != 0 AND T1.D_LMT_VALUE IS NOT NULL THEN (T1.D_CMT_VALUE-T1.D_LMT_VALUE)/T1.D_LMT_VALUE ELSE NULL END) om_kd_user_m_hb, --宽移融合受理套餐捆绑的宽带接入用户数月环比
SUM(CASE WHEN T1.KPI_CODE = ''CKP_13008'' THEN T1.KPI_VALUE END) om_kd_cl_user, --宽移融合受理套餐捆绑的宽带接入存量用户数本日值
SUM(CASE WHEN T1.KPI_CODE = ''CKP_13008'' AND T1.D_LD_VALUE != 0 AND T1.D_LD_VALUE IS NOT NULL THEN (T1.KPI_VALUE-T1.D_LD_VALUE)/T1.D_LD_VALUE ELSE NULL END) om_kd_cl_user_hb, --宽移融合受理套餐捆绑的宽带接入存量用户数日环比
SUM(CASE WHEN T1.KPI_CODE = ''CKP_13008'' THEN T1.D_CMT_VALUE END) om_kd_cl_user_m, --宽移融合受理套餐捆绑的宽带接入存量用户数本月累计
SUM(CASE WHEN T1.KPI_CODE = ''CKP_13008'' AND T1.D_LMT_VALUE != 0 AND T1.D_LMT_VALUE IS NOT NULL THEN (T1.D_CMT_VALUE-T1.D_LMT_VALUE)/T1.D_LMT_VALUE ELSE NULL END) om_kd_cl_user_m_hb, --宽移融合受理套餐捆绑的宽带接入存量用户数月环比
SUM(CASE WHEN T1.KPI_CODE = ''CKP_13009'' THEN T1.KPI_VALUE END) om_kd_ly_devuser, --宽移融合受理套餐捆绑的宽带接入本年发展用户数本日值
SUM(CASE WHEN T1.KPI_CODE = ''CKP_13009'' AND T1.D_LD_VALUE != 0 AND T1.D_LD_VALUE IS NOT NULL THEN (T1.KPI_VALUE-T1.D_LD_VALUE)/T1.D_LD_VALUE ELSE NULL END) om_kd_ly_devuser_hb, --宽移融合受理套餐捆绑的宽带接入本年发展用户数日环比
SUM(CASE WHEN T1.KPI_CODE = ''CKP_13009'' THEN T1.D_CMT_VALUE END) om_kd_ly_devuser_m, --宽移融合受理套餐捆绑的宽带接入本年发展用户数本月累计
SUM(CASE WHEN T1.KPI_CODE = ''CKP_13009'' AND T1.D_LMT_VALUE != 0 AND T1.D_LMT_VALUE IS NOT NULL THEN (T1.D_CMT_VALUE-T1.D_LMT_VALUE)/T1.D_LMT_VALUE ELSE NULL END) om_kd_ly_devuser_m_hb, --宽移融合受理套餐捆绑的宽带接入本年发展用户数月环比
SUM(CASE WHEN T1.KPI_CODE = ''CKP_13010'' THEN T1.KPI_VALUE END) om_kd_ly_m_devuser, --宽移融合受理套餐捆绑的宽带接入本年发展中本月发展用户数本日值
SUM(CASE WHEN T1.KPI_CODE = ''CKP_13010'' AND T1.D_LD_VALUE != 0 AND T1.D_LD_VALUE IS NOT NULL THEN (T1.KPI_VALUE-T1.D_LD_VALUE)/T1.D_LD_VALUE ELSE NULL END) om_kd_ly_m_devuser_hb, --宽移融合受理套餐捆绑的宽带接入本年发展中本月发展用户数日环比
SUM(CASE WHEN T1.KPI_CODE = ''CKP_13010'' THEN T1.D_CMT_VALUE END) om_kd_ly_m_devuser_m, --宽移融合受理套餐捆绑的宽带接入本年发展中本月发展用户数本月累计
SUM(CASE WHEN T1.KPI_CODE = ''CKP_13010'' AND T1.D_LMT_VALUE != 0 AND T1.D_LMT_VALUE IS NOT NULL THEN (T1.D_CMT_VALUE-T1.D_LMT_VALUE)/T1.D_LMT_VALUE ELSE NULL END) om_kd_ly_m_devuser_m_hb, --宽移融合受理套餐捆绑的宽带接入本年发展中本月发展用户数月环比
SUM(CASE WHEN T1.KPI_CODE = ''CKP_13011'' THEN T1.KPI_VALUE END) om_kd_ly_nm_devuser, --宽移融合受理套餐捆绑的宽带接入本年发展中非本月发展用户数本日值
SUM(CASE WHEN T1.KPI_CODE = ''CKP_13011'' AND T1.D_LD_VALUE != 0 AND T1.D_LD_VALUE IS NOT NULL THEN (T1.KPI_VALUE-T1.D_LD_VALUE)/T1.D_LD_VALUE ELSE NULL END) om_kd_ly_nm_devuser_hb, --宽移融合受理套餐捆绑的宽带接入本年发展中非本月发展用户数日环比
SUM(CASE WHEN T1.KPI_CODE = ''CKP_13011'' THEN T1.D_CMT_VALUE END) om_kd_ly_nm_devuser_m, --宽移融合受理套餐捆绑的宽带接入本年发展中非本月发展用户数本月累计
SUM(CASE WHEN T1.KPI_CODE = ''CKP_13011'' AND T1.D_LMT_VALUE != 0 AND T1.D_LMT_VALUE IS NOT NULL THEN (T1.D_CMT_VALUE-T1.D_LMT_VALUE)/T1.D_LMT_VALUE ELSE NULL END) om_kd_ly_nm_devuser_m_hb --宽移融合受理套餐捆绑的宽带接入本年发展中非本月发展用户数月环比

FROM (
    SELECT * FROM
    ITSY_CUBE_NJ.DM_D_KPI_COMP 
    WHERE MONTH_ID = '''||V_MONTH||''' 
    AND DAY_ID ='''||V_DAY||'''
) T1 LEFT JOIN (
    SELECT PROV_ID,PROV_NAME,CAST(ORD AS NUMBER) ORD FROM ITSY_CUBE.DIM_PROVINCE --省份码表
) PRO ON PRO.PROV_ID = T1.PROV_ID

LEFT JOIN (
    SELECT AREA_ID,AREA_DESC,CAST(ORD AS NUMBER) ORD FROM ITSY_DIM.DIM_AREA  --地市码表
) CIT ON CIT.AREA_ID = T1.AREA_ID


GROUP BY 
T1.MONTH_ID,
T1.DAY_ID,
T1.MONTH_ID||T1.DAY_ID,
T1.PROV_ID,
PRO.PROV_NAME,
CASE WHEN T1.PROV_ID = ''111'' THEN -3
     WHEN T1.PROV_ID = ''112'' THEN -2
     WHEN T1.PROV_ID = ''113'' THEN -1
ELSE PRO.ORD END,
T1.AREA_ID,
CASE WHEN T1.AREA_ID = ''-1'' THEN ''汇总'' ELSE CIT.AREA_DESC END,
CIT.ORD

ORDER BY 
PROV_ORD,AREA_ORD

 ';

    DBMS_OUTPUT.PUT_LINE(V_SQL);
    EXECUTE IMMEDIATE V_SQL;    
    
    V_RETCODE := 'SUCCESS';
    V_RETINFO := '结束';
    
EXCEPTION 
    WHEN OTHERS THEN
        V_RETCODE := 'FAIL';
        V_RETINFO := SQLERRM;
        DBMS_OUTPUT.PUT_LINE(SQLERRM);
END;

移动业务融合日报(DM_KPI_YYOM_ACCEPT_D)

由于多维表不支撑环比,所以修改ZBJF_099库下对应的表字段名以及注释信息。修改语句如下:

--- 修改字段名
ALTER TABLE ZBJF_099.DM_KPI_YYOM_ACCEPT_D RENAME COLUMN OM_YD_USER_M_HB TO OM_YD_USER_M_LM;
ALTER TABLE ZBJF_099.DM_KPI_YYOM_ACCEPT_D RENAME COLUMN YYOM_USER_M_HB TO YYOM_USER_M_LM;
ALTER TABLE ZBJF_099.DM_KPI_YYOM_ACCEPT_D RENAME COLUMN JRFQ_USER_M_HB TO JRFQ_USER_M_LM;

-- 修改字段类型
ALTER TABLE DM_KPI_YYOM_ACCEPT_D MODIFY (AREA_ORD NUMBER);

--- 修改注释信息
COMMENT ON COLUMN ZBJF_099.DM_KPI_YYOM_ACCEPT_D.OM_YD_USER_M_LM IS '宽移融合移动业务受理用户数上月同期累计值';
COMMENT ON COLUMN ZBJF_099.DM_KPI_YYOM_ACCEPT_D.YYOM_USER_M_LM IS '移移融合受理用户数上月同期累计值';
COMMENT ON COLUMN ZBJF_099.DM_KPI_YYOM_ACCEPT_D.JRFQ_USER_M_LM IS '移动业务金融分期受理用户数上月同期累计值';

加工脚本开发

剔重维度需要通过以下三个指标编码获取,和没有剔重的维度通过使用 UNION ALL进行拼接。

image-20220225151832395

SELECT 
T1.MONTH_ID,
T1.DAY_ID,
T1.MONTH_ID||T1.DAY_ID ACCT_DATE,
T1.PROV_ID,
PRO.PROV_NAME,
CASE WHEN T1.PROV_ID = '111' THEN -3
     WHEN T1.PROV_ID = '112' THEN -2
     WHEN T1.PROV_ID = '113' THEN -1
ELSE PRO.ORD END PROV_ORD,
T1.AREA_ID,
CASE WHEN T1.AREA_ID = '-1' THEN '汇总' ELSE CIT.AREA_DESC END,
CIT.ORD AREA_ORD,
T1.CERT_TYPE GROUP_TYPE, --客户群(公众、集客)
T1.LEVEL_YS_CODE accept_channel_type, --受理渠道类型(电子渠道、实体渠道、集团渠道、其它)
T1.LEVEL_ST_CODE accept_channel_type_xf,    --受理渠道类型细分(细分维值待确认)
T1.IS_ZX is_rn, --是否剔重(是、否)
T1.INNET_TIME innet_date,    --入网时间(非本年、本年非本月、本月非本日、本日)
T1.USER_TYPE yd_user_type, --用户类型(单移、移移、宽移、其它)
T1.PROD_TYPE product_type, --产品类型(王卡、非王卡、冰激凌、流量王、其它)
T1.IS_2I is_2I, --是否2I(是、否)
T1.IS_5G is_5g, --是否5G(是、否)
SUM(CASE WHEN T1.KPI_CODE = 'CKP_13018' THEN T1.KPI_VALUE END) om_yd_user, --宽移融合移动业务受理用户数当日值
SUM(CASE WHEN T1.KPI_CODE = 'CKP_13018' THEN T1.D_LD_VALUE END) om_yd_user_ld, --宽移融合移动业务受理用户数昨日值
SUM(CASE WHEN T1.KPI_CODE = 'CKP_13018' THEN T1.D_CMT_VALUE END) om_yd_user_m, --宽移融合移动业务受理用户数本月累计
SUM(CASE WHEN T1.KPI_CODE = 'CKP_13018' THEN T1.D_LMT_VALUE END) om_yd_user_m_lm, --宽移融合移动业务受理用户数上月同期累计值
SUM(CASE WHEN T1.KPI_CODE = 'CKP_13024' THEN T1.KPI_VALUE END) yyom_user, --移移融合受理用户数当日值
SUM(CASE WHEN T1.KPI_CODE = 'CKP_13024' THEN T1.D_LD_VALUE END) yyom_user_ld, --移移融合受理用户数昨日值
SUM(CASE WHEN T1.KPI_CODE = 'CKP_13024' THEN T1.D_CMT_VALUE END) yyom_user_m, --移移融合受理用户数本月累计
SUM(CASE WHEN T1.KPI_CODE = 'CKP_13024' THEN T1.D_LMT_VALUE END) yyom_user_m_lm, --移移融合受理用户数上月同期累计值
SUM(CASE WHEN T1.KPI_CODE = 'CKP_13025' THEN T1.KPI_VALUE END) jrfq_user, --移动业务金融分期受理用户数当日值
SUM(CASE WHEN T1.KPI_CODE = 'CKP_13025' THEN T1.D_LD_VALUE END) jrfq_user_ld, --移动业务金融分期受理用户数昨日值
SUM(CASE WHEN T1.KPI_CODE = 'CKP_13025' THEN T1.D_CMT_VALUE END) jrfq_user_m, --移动业务金融分期受理用户数本月累计
SUM(CASE WHEN T1.KPI_CODE = 'CKP_13025' THEN T1.D_LMT_VALUE END) jrfq_user_m_lm --移动业务金融分期受理用户数上月同期累计值

FROM (
    SELECT * FROM
    ITSY_CUBE_NJ.DM_D_KPI_COMP_MIX 
    WHERE MONTH_ID = '202202' 
    AND DAY_ID ='01'
) T1 LEFT JOIN (
    SELECT PROV_ID,PROV_NAME,CAST(ORD AS NUMBER) ORD FROM ITSY_CUBE.DIM_PROVINCE --省份码表
) PRO ON PRO.PROV_ID = T1.PROV_ID
LEFT JOIN (
    SELECT AREA_ID,AREA_DESC,CAST(ORD AS NUMBER) ORD FROM ITSY_DIM.DIM_AREA  --地市码表
) CIT ON CIT.AREA_ID = T1.AREA_ID

GROUP BY 
T1.MONTH_ID,
T1.DAY_ID,
T1.PROV_ID,
PRO.PROV_NAME,
PRO.ORD ,
T1.AREA_ID,
CIT.AREA_DESC ,
CIT.ORD ,
T1.CERT_TYPE , --客户群(公众、集客)
T1.LEVEL_YS_CODE , --受理渠道类型(电子渠道、实体渠道、集团渠道、其它)
T1.LEVEL_ST_CODE ,    --受理渠道类型细分(细分维值待确认)
T1.IS_ZX, --是否剔重(是、否)
T1.INNET_TIME ,    --入网时间(非本年、本年非本月、本月非本日、本日)
T1.USER_TYPE , --用户类型(单移、移移、宽移、其它)
T1.PROD_TYPE , --产品类型(王卡、非王卡、冰激凌、流量王、其它)
T1.IS_2I , --是否2I(是、否)
T1.IS_5G  --是否5G(是、否)

ORDER BY 
PROV_ORD,AREA_ORD
  • 是否剔重维度脚本开发
--地市汇总值(否剔重)

SELECT 
MONTH_ID,
DAY_ID,
ACCT_DATE,
PROV_ID,
PROV_NAME,
PROV_ORD,
AREA_ID,
AREA_NAME,
AREA_ORD,
'-1', --客户群(公众、集客)
'-1', --受理渠道类型(电子渠道、实体渠道、集团渠道、其它)
'-1',    --受理渠道类型细分(细分维值待确认)
'0', --是否剔重(是、否)
'-1',    --入网时间(非本年、本年非本月、本月非本日、本日)
'-1', --用户类型(单移、移移、宽移、其它)
'-1', --产品类型(王卡、非王卡、冰激凌、流量王、其它)
'-1', --是否2I(是、否)
'-1', --是否5G(是、否)
SUM(OM_YD_USER), --宽移融合移动业务受理用户数当日值
SUM(OM_YD_USER_LD), --宽移融合移动业务受理用户数昨日值
SUM(OM_YD_USER_M), --宽移融合移动业务受理用户数本月累计
SUM(OM_YD_USER_M_LM), --宽移融合移动业务受理用户数上月同期累计值
SUM(YYOM_USER), --移移融合受理用户数当日值
SUM(YYOM_USER_LD), --移移融合受理用户数昨日值
SUM(YYOM_USER_M), --移移融合受理用户数本月累计
SUM(YYOM_USER_M_LM), --移移融合受理用户数上月同期累计值
SUM(JRFQ_USER), --移动业务金融分期受理用户数当日值
SUM(JRFQ_USER_LD), --移动业务金融分期受理用户数昨日值
SUM(JRFQ_USER_M), --移动业务金融分期受理用户数本月累计
SUM(JRFQ_USER_M_LM) --移动业务金融分期受理用户数上月同期累计值

FROM ITSY_CUBE.DM_KPI_YYOM_ACCEPT_D
WHERE MONTH_ID = '202202' 
AND DAY_ID ='01'
AND IS_RN = '0'
AND AREA_ID != '-1'

GROUP BY 
MONTH_ID,
DAY_ID,
ACCT_DATE,
PROV_ID,
PROV_NAME,
PROV_ORD,
AREA_ID,
AREA_NAME,
AREA_ORD

UNION ALL 

--省份、全国、北南汇总值(否剔重)

SELECT 
MONTH_ID,
DAY_ID,
ACCT_DATE,
PROV_ID,
PROV_NAME,
PROV_ORD,
'-1',
'-1',
-1,
'-1', --客户群(公众、集客)
'-1', --受理渠道类型(电子渠道、实体渠道、集团渠道、其它)
'-1',    --受理渠道类型细分(细分维值待确认)
'0', --是否剔重(是、否)
'-1',    --入网时间(非本年、本年非本月、本月非本日、本日)
'-1', --用户类型(单移、移移、宽移、其它)
'-1', --产品类型(王卡、非王卡、冰激凌、流量王、其它)
'-1', --是否2I(是、否)
'-1', --是否5G(是、否)
SUM(OM_YD_USER), --宽移融合移动业务受理用户数当日值
SUM(OM_YD_USER_LD), --宽移融合移动业务受理用户数昨日值
SUM(OM_YD_USER_M), --宽移融合移动业务受理用户数本月累计
SUM(OM_YD_USER_M_LM), --宽移融合移动业务受理用户数上月同期累计值
SUM(YYOM_USER), --移移融合受理用户数当日值
SUM(YYOM_USER_LD), --移移融合受理用户数昨日值
SUM(YYOM_USER_M), --移移融合受理用户数本月累计
SUM(YYOM_USER_M_LM), --移移融合受理用户数上月同期累计值
SUM(JRFQ_USER), --移动业务金融分期受理用户数当日值
SUM(JRFQ_USER_LD), --移动业务金融分期受理用户数昨日值
SUM(JRFQ_USER_M), --移动业务金融分期受理用户数本月累计
SUM(JRFQ_USER_M_LM) --移动业务金融分期受理用户数上月同期累计值

FROM ITSY_CUBE.DM_KPI_YYOM_ACCEPT_D
WHERE MONTH_ID = '202202' 
AND DAY_ID ='01'
AND IS_RN = '0'

GROUP BY 
MONTH_ID,
DAY_ID,
ACCT_DATE,
PROV_ID,
PROV_NAME,
PROV_ORD


UNION ALL
--地市汇总值(是剔重)

SELECT 
MONTH_ID,
DAY_ID,
ACCT_DATE,
PROV_ID,
PROV_NAME,
PROV_ORD,
AREA_ID,
AREA_NAME,
AREA_ORD,
'-1', --客户群(公众、集客)
'-1', --受理渠道类型(电子渠道、实体渠道、集团渠道、其它)
'-1',    --受理渠道类型细分(细分维值待确认)
'1', --是否剔重(是、否)
'-1',    --入网时间(非本年、本年非本月、本月非本日、本日)
'-1', --用户类型(单移、移移、宽移、其它)
'-1', --产品类型(王卡、非王卡、冰激凌、流量王、其它)
'-1', --是否2I(是、否)
'-1', --是否5G(是、否)
SUM(OM_YD_USER), --宽移融合移动业务受理用户数当日值
SUM(OM_YD_USER_LD), --宽移融合移动业务受理用户数昨日值
SUM(OM_YD_USER_M), --宽移融合移动业务受理用户数本月累计
SUM(OM_YD_USER_M_LM), --宽移融合移动业务受理用户数上月同期累计值
SUM(YYOM_USER), --移移融合受理用户数当日值
SUM(YYOM_USER_LD), --移移融合受理用户数昨日值
SUM(YYOM_USER_M), --移移融合受理用户数本月累计
SUM(YYOM_USER_M_LM), --移移融合受理用户数上月同期累计值
SUM(JRFQ_USER), --移动业务金融分期受理用户数当日值
SUM(JRFQ_USER_LD), --移动业务金融分期受理用户数昨日值
SUM(JRFQ_USER_M), --移动业务金融分期受理用户数本月累计
SUM(JRFQ_USER_M_LM) --移动业务金融分期受理用户数上月同期累计值

FROM ITSY_CUBE.DM_KPI_YYOM_ACCEPT_D
WHERE MONTH_ID = '202202' 
AND DAY_ID ='01'
AND IS_RN = '1'
AND AREA_ID != '-1'

GROUP BY 
MONTH_ID,
DAY_ID,
ACCT_DATE,
PROV_ID,
PROV_NAME,
PROV_ORD,
AREA_ID,
AREA_NAME,
AREA_ORD

UNION ALL 

--省份、全国、北南汇总值(否剔重)

SELECT 
MONTH_ID,
DAY_ID,
ACCT_DATE,
PROV_ID,
PROV_NAME,
PROV_ORD,
'-1',
'-1',
-1,
'-1', --客户群(公众、集客)
'-1', --受理渠道类型(电子渠道、实体渠道、集团渠道、其它)
'-1',    --受理渠道类型细分(细分维值待确认)
'1', --是否剔重(是、否)
'-1',    --入网时间(非本年、本年非本月、本月非本日、本日)
'-1', --用户类型(单移、移移、宽移、其它)
'-1', --产品类型(王卡、非王卡、冰激凌、流量王、其它)
'-1', --是否2I(是、否)
'-1', --是否5G(是、否)
SUM(OM_YD_USER), --宽移融合移动业务受理用户数当日值
SUM(OM_YD_USER_LD), --宽移融合移动业务受理用户数昨日值
SUM(OM_YD_USER_M), --宽移融合移动业务受理用户数本月累计
SUM(OM_YD_USER_M_LM), --宽移融合移动业务受理用户数上月同期累计值
SUM(YYOM_USER), --移移融合受理用户数当日值
SUM(YYOM_USER_LD), --移移融合受理用户数昨日值
SUM(YYOM_USER_M), --移移融合受理用户数本月累计
SUM(YYOM_USER_M_LM), --移移融合受理用户数上月同期累计值
SUM(JRFQ_USER), --移动业务金融分期受理用户数当日值
SUM(JRFQ_USER_LD), --移动业务金融分期受理用户数昨日值
SUM(JRFQ_USER_M), --移动业务金融分期受理用户数本月累计
SUM(JRFQ_USER_M_LM) --移动业务金融分期受理用户数上月同期累计值

FROM ITSY_CUBE.DM_KPI_YYOM_ACCEPT_D
WHERE MONTH_ID = '202202' 
AND DAY_ID ='01'
AND IS_RN = '1'

GROUP BY 
MONTH_ID,
DAY_ID,
ACCT_DATE,
PROV_ID,
PROV_NAME,
PROV_ORD

存储过程开发

由于来源表 ITSY_CUBE_NJ.DM_D_KPI_COMP_MIX 中的 是否剔重 没有直接提供对应的维度,将维度拆解成了两个字段,故开发CUBE对应模型的加工脚本时,需要将该字段加工成纵表,通过 UNION ALL 进行拼接。对应存储过程脚本如下所示:

CREATE OR REPLACE PROCEDURE P_DM_KPI_YYOM_ACCEPT_D(
    V_MONTH IN VARCHAR ,
    V_DAY IN VARCHAR ,
    V_RETCODE OUT VARCHAR ,
    V_RETINFO OUT VARCHAR
) AS
    /*@
    ****************************************************************
    *名称 --%@NAME:                    移动业务融合日报     
    *执行周期 --%@PERIOD:              日
    *参数 --%@PARAM:                   V_MONTH  '202202' V_DAY '01'
    *参数 --%@PARAM:V_RETCODE          过程运行结束成功与否标志
    *参数 --%@PARAM:V_RETINFO          过程运行结束成功与否描述
    *创建人 --%@CREATOR:             樊鑫           
    *创建时间 --%@CREATED_TIME:     20220225
    *来源表 --%@FROM:    ITSY_CUBE.DIM_PROVINCE
    *来源表 --%@FROM:    ITSY_DIM.DIM_AREA
    *来源表 --%@FROM:    ITSY_CUBE_NJ.DM_D_KPI_COMP_MIX 
    *目标表 --%@TO:   ITSY_CUBE.DM_KPI_YYOM_ACCEPT_D
    *修改记录 --%@MODIFY:           
    ******************************************************************
    @*/
    
    V_SQL       VARCHAR(10000);
    V_CNT       NUMBER;
    V_PART_NAME VARCHAR(100);
    V_ACCT_DATE VARCHAR(20);
   
BEGIN
    V_PART_NAME:='PART'||V_MONTH||V_DAY;
    V_ACCT_DATE:=V_MONTH||V_DAY;
    V_SQL:='SELECT COUNT(*) FROM V$USER_TAB_PARTS WHERE TABLE_NAME =''DM_KPI_YYOM_ACCEPT_D'' AND PART_NAME='''||V_PART_NAME||'''';
    EXECUTE IMMEDIATE V_SQL INTO V_CNT;
    
    IF V_CNT =0 THEN 
        EXECUTE IMMEDIATE 'ALTER TABLE ITSY_CUBE.DM_KPI_YYOM_ACCEPT_D ADD PARTITION '||V_PART_NAME||'(ACCT_DATE='''||V_ACCT_DATE||''')';
    ELSE 
        EXECUTE IMMEDIATE 'ALTER TABLE ITSY_CUBE.DM_KPI_YYOM_ACCEPT_D TRUNCATE PARTITION '||V_PART_NAME;
    END IF;
    
    V_SQL := 'INSERT INTO ITSY_CUBE.DM_KPI_YYOM_ACCEPT_D PARTITION ON (ACCT_DATE='''||V_ACCT_DATE||''')
SELECT 

    T1.MONTH_ID,
    T1.DAY_ID,
    T1.MONTH_ID||T1.DAY_ID ACCT_DATE,
    T1.PROV_ID,
    PRO.PROV_NAME,
    CASE WHEN T1.PROV_ID = ''111'' THEN -3
         WHEN T1.PROV_ID = ''112'' THEN -2
         WHEN T1.PROV_ID = ''113'' THEN -1
    ELSE PRO.ORD END PROV_ORD,
    T1.AREA_ID,
    CASE WHEN T1.AREA_ID = ''-1'' THEN ''汇总'' ELSE CIT.AREA_DESC END,
    CIT.ORD AREA_ORD,
    T1.CERT_TYPE GROUP_TYPE, --客户群(公众、集客)
    T1.LEVEL_YS_CODE accept_channel_type, --受理渠道类型(电子渠道、实体渠道、集团渠道、其它)
    T1.LEVEL_ST_CODE accept_channel_type_xf,    --受理渠道类型细分(细分维值待确认)
    ''0'' IS_RN, --是否剔重(是、否)
    T1.INNET_TIME innet_date,    --入网时间(非本年、本年非本月、本月非本日、本日)
    T1.USER_TYPE yd_user_type, --用户类型(单移、移移、宽移、其它)
    T1.PROD_TYPE product_type, --产品类型(王卡、非王卡、冰激凌、流量王、其它)
    T1.IS_2I is_2I, --是否2I(是、否)
    T1.IS_5G is_5g, --是否5G(是、否)
    SUM(CASE WHEN T1.KPI_CODE = ''CKP_13018'' THEN T1.KPI_VALUE END) om_yd_user, --宽移融合移动业务受理用户数当日值
    SUM(CASE WHEN T1.KPI_CODE = ''CKP_13018'' THEN T1.D_LD_VALUE END) om_yd_user_ld, --宽移融合移动业务受理用户数昨日值
    SUM(CASE WHEN T1.KPI_CODE = ''CKP_13018'' THEN T1.D_CMT_VALUE END) om_yd_user_m, --宽移融合移动业务受理用户数本月累计
    SUM(CASE WHEN T1.KPI_CODE = ''CKP_13018'' THEN T1.D_LMT_VALUE END) om_yd_user_m_lm, --宽移融合移动业务受理用户数上月同期累计值
    SUM(CASE WHEN T1.KPI_CODE = ''CKP_13024'' THEN T1.KPI_VALUE END) yyom_user, --移移融合受理用户数当日值
    SUM(CASE WHEN T1.KPI_CODE = ''CKP_13024'' THEN T1.D_LD_VALUE END) yyom_user_ld, --移移融合受理用户数昨日值
    SUM(CASE WHEN T1.KPI_CODE = ''CKP_13024'' THEN T1.D_CMT_VALUE END) yyom_user_m, --移移融合受理用户数本月累计
    SUM(CASE WHEN T1.KPI_CODE = ''CKP_13024'' THEN T1.D_LMT_VALUE END) yyom_user_m_lm, --移移融合受理用户数上月同期累计值
    SUM(CASE WHEN T1.KPI_CODE = ''CKP_13025'' THEN T1.KPI_VALUE END) jrfq_user, --移动业务金融分期受理用户数当日值
    SUM(CASE WHEN T1.KPI_CODE = ''CKP_13025'' THEN T1.D_LD_VALUE END) jrfq_user_ld, --移动业务金融分期受理用户数昨日值
    SUM(CASE WHEN T1.KPI_CODE = ''CKP_13025'' THEN T1.D_CMT_VALUE END) jrfq_user_m, --移动业务金融分期受理用户数本月累计
    SUM(CASE WHEN T1.KPI_CODE = ''CKP_13025'' THEN T1.D_LMT_VALUE END) jrfq_user_m_lm --移动业务金融分期受理用户数上月同期累计值

FROM (
    SELECT * FROM
    ITSY_CUBE_NJ.DM_D_KPI_COMP_MIX 
    WHERE MONTH_ID = '''||V_MONTH||''' 
    AND DAY_ID ='''||V_DAY||'''
) T1 LEFT JOIN (
    SELECT PROV_ID,PROV_NAME,CAST(ORD AS NUMBER) ORD FROM ITSY_CUBE.DIM_PROVINCE --省份码表
) PRO ON PRO.PROV_ID = T1.PROV_ID
LEFT JOIN (
    SELECT AREA_ID,AREA_DESC,CAST(ORD AS NUMBER) ORD FROM ITSY_DIM.DIM_AREA  --地市码表
) CIT ON CIT.AREA_ID = T1.AREA_ID

GROUP BY 
    T1.MONTH_ID,
    T1.DAY_ID,
    T1.PROV_ID,
    PRO.PROV_NAME,
    PRO.ORD ,
    T1.AREA_ID,
    CIT.AREA_DESC ,
    CIT.ORD ,
    T1.CERT_TYPE , --客户群(公众、集客)
    T1.LEVEL_YS_CODE , --受理渠道类型(电子渠道、实体渠道、集团渠道、其它)
    T1.LEVEL_ST_CODE ,    --受理渠道类型细分(细分维值待确认)
    T1.IS_ZX, --是否剔重(是、否)
    T1.INNET_TIME ,    --入网时间(非本年、本年非本月、本月非本日、本日)
    T1.USER_TYPE , --用户类型(单移、移移、宽移、其它)
    T1.PROD_TYPE , --产品类型(王卡、非王卡、冰激凌、流量王、其它)
    T1.IS_2I , --是否2I(是、否)
    T1.IS_5G  --是否5G(是、否)

UNION ALL 

SELECT 

    T1.MONTH_ID,
    T1.DAY_ID,
    T1.MONTH_ID||T1.DAY_ID ACCT_DATE,
    T1.PROV_ID,
    PRO.PROV_NAME,
    CASE WHEN T1.PROV_ID = ''111'' THEN -3
         WHEN T1.PROV_ID = ''112'' THEN -2
         WHEN T1.PROV_ID = ''113'' THEN -1
    ELSE PRO.ORD END PROV_ORD,
    T1.AREA_ID,
    CASE WHEN T1.AREA_ID = ''-1'' THEN ''汇总'' ELSE CIT.AREA_DESC END,
    CIT.ORD AREA_ORD,
    T1.CERT_TYPE GROUP_TYPE, --客户群(公众、集客)
    T1.LEVEL_YS_CODE accept_channel_type, --受理渠道类型(电子渠道、实体渠道、集团渠道、其它)
    T1.LEVEL_ST_CODE accept_channel_type_xf,    --受理渠道类型细分(细分维值待确认)
    ''1'' IS_RN, --是否剔重(是、否)
    T1.INNET_TIME innet_date,    --入网时间(非本年、本年非本月、本月非本日、本日)
    T1.USER_TYPE yd_user_type, --用户类型(单移、移移、宽移、其它)
    T1.PROD_TYPE product_type, --产品类型(王卡、非王卡、冰激凌、流量王、其它)
    T1.IS_2I is_2I, --是否2I(是、否)
    T1.IS_5G is_5g, --是否5G(是、否)
    SUM(CASE WHEN T1.KPI_CODE = ''CKP_13029'' THEN T1.KPI_VALUE END) om_yd_user, --宽移融合移动业务受理用户数当日值
    SUM(CASE WHEN T1.KPI_CODE = ''CKP_13029'' THEN T1.D_LD_VALUE END) om_yd_user_ld, --宽移融合移动业务受理用户数昨日值
    SUM(CASE WHEN T1.KPI_CODE = ''CKP_13029'' THEN T1.D_CMT_VALUE END) om_yd_user_m, --宽移融合移动业务受理用户数本月累计
    SUM(CASE WHEN T1.KPI_CODE = ''CKP_13029'' THEN T1.D_LMT_VALUE END) om_yd_user_m_lm, --宽移融合移动业务受理用户数上月同期累计值
    SUM(CASE WHEN T1.KPI_CODE = ''CKP_13027'' THEN T1.KPI_VALUE END) yyom_user, --移移融合受理用户数当日值
    SUM(CASE WHEN T1.KPI_CODE = ''CKP_13027'' THEN T1.D_LD_VALUE END) yyom_user_ld, --移移融合受理用户数昨日值
    SUM(CASE WHEN T1.KPI_CODE = ''CKP_13027'' THEN T1.D_CMT_VALUE END) yyom_user_m, --移移融合受理用户数本月累计
    SUM(CASE WHEN T1.KPI_CODE = ''CKP_13027'' THEN T1.D_LMT_VALUE END) yyom_user_m_lm, --移移融合受理用户数上月同期累计值
    SUM(CASE WHEN T1.KPI_CODE = ''CKP_13028'' THEN T1.KPI_VALUE END) jrfq_user, --移动业务金融分期受理用户数当日值
    SUM(CASE WHEN T1.KPI_CODE = ''CKP_13028'' THEN T1.D_LD_VALUE END) jrfq_user_ld, --移动业务金融分期受理用户数昨日值
    SUM(CASE WHEN T1.KPI_CODE = ''CKP_13028'' THEN T1.D_CMT_VALUE END) jrfq_user_m, --移动业务金融分期受理用户数本月累计
    SUM(CASE WHEN T1.KPI_CODE = ''CKP_13028'' THEN T1.D_LMT_VALUE END) jrfq_user_m_lm --移动业务金融分期受理用户数上月同期累计值

FROM (
    SELECT * FROM
    ITSY_CUBE_NJ.DM_D_KPI_COMP_MIX 
    WHERE MONTH_ID = '''||V_MONTH||''' 
    AND DAY_ID ='''||V_DAY||'''
) T1 LEFT JOIN (
    SELECT PROV_ID,PROV_NAME,CAST(ORD AS NUMBER) ORD FROM ITSY_CUBE.DIM_PROVINCE --省份码表
) PRO ON PRO.PROV_ID = T1.PROV_ID
LEFT JOIN (
    SELECT AREA_ID,AREA_DESC,CAST(ORD AS NUMBER) ORD FROM ITSY_DIM.DIM_AREA  --地市码表
) CIT ON CIT.AREA_ID = T1.AREA_ID

GROUP BY 
    T1.MONTH_ID,
    T1.DAY_ID,
    T1.PROV_ID,
    PRO.PROV_NAME,
    PRO.ORD ,
    T1.AREA_ID,
    CIT.AREA_DESC ,
    CIT.ORD ,
    T1.CERT_TYPE , --客户群(公众、集客)
    T1.LEVEL_YS_CODE , --受理渠道类型(电子渠道、实体渠道、集团渠道、其它)
    T1.LEVEL_ST_CODE ,    --受理渠道类型细分(细分维值待确认)
    T1.IS_ZX, --是否剔重(是、否)
    T1.INNET_TIME ,    --入网时间(非本年、本年非本月、本月非本日、本日)
    T1.USER_TYPE , --用户类型(单移、移移、宽移、其它)
    T1.PROD_TYPE , --产品类型(王卡、非王卡、冰激凌、流量王、其它)
    T1.IS_2I , --是否2I(是、否)
    T1.IS_5G  --是否5G(是、否)

ORDER BY 
    PROV_ORD,AREA_ORD
 ';

    DBMS_OUTPUT.PUT_LINE(V_SQL);
    EXECUTE IMMEDIATE V_SQL;    

--汇总值
     V_SQL := 'INSERT INTO ITSY_CUBE.DM_KPI_YYOM_ACCEPT_D PARTITION ON (ACCT_DATE='''||V_ACCT_DATE||''')
--地市汇总值(否剔重)

SELECT 

    MONTH_ID,
    DAY_ID,
    ACCT_DATE,
    PROV_ID,
    PROV_NAME,
    PROV_ORD,
    AREA_ID,
    AREA_NAME,
    AREA_ORD,
    ''汇总'', --客户群(公众、集客)
    ''汇总'', --受理渠道类型(电子渠道、实体渠道、集团渠道、其它)
    ''汇总'',    --受理渠道类型细分(细分维值待确认)
    ''0'', --是否剔重(是、否)
    ''汇总'',    --入网时间(非本年、本年非本月、本月非本日、本日)
    ''汇总'', --用户类型(单移、移移、宽移、其它)
    ''汇总'', --产品类型(王卡、非王卡、冰激凌、流量王、其它)
    ''汇总'', --是否2I(是、否)
    ''汇总'', --是否5G(是、否)
    SUM(OM_YD_USER), --宽移融合移动业务受理用户数当日值
    SUM(OM_YD_USER_LD), --宽移融合移动业务受理用户数昨日值
    SUM(OM_YD_USER_M), --宽移融合移动业务受理用户数本月累计
    SUM(OM_YD_USER_M_LM), --宽移融合移动业务受理用户数上月同期累计值
    SUM(YYOM_USER), --移移融合受理用户数当日值
    SUM(YYOM_USER_LD), --移移融合受理用户数昨日值
    SUM(YYOM_USER_M), --移移融合受理用户数本月累计
    SUM(YYOM_USER_M_LM), --移移融合受理用户数上月同期累计值
    SUM(JRFQ_USER), --移动业务金融分期受理用户数当日值
    SUM(JRFQ_USER_LD), --移动业务金融分期受理用户数昨日值
    SUM(JRFQ_USER_M), --移动业务金融分期受理用户数本月累计
    SUM(JRFQ_USER_M_LM) --移动业务金融分期受理用户数上月同期累计值

FROM ITSY_CUBE.DM_KPI_YYOM_ACCEPT_D
WHERE MONTH_ID = '''||V_MONTH||''' 
AND DAY_ID ='''||V_DAY||'''
AND IS_RN = ''0''
AND AREA_ID != ''-1''

GROUP BY 
    MONTH_ID,
    DAY_ID,
    ACCT_DATE,
    PROV_ID,
    PROV_NAME,
    PROV_ORD,
    AREA_ID,
    AREA_NAME,
    AREA_ORD

UNION ALL 

--省份、全国、北南汇总值(否剔重)

SELECT 

    MONTH_ID,
    DAY_ID,
    ACCT_DATE,
    PROV_ID,
    PROV_NAME,
    PROV_ORD,
    ''汇总'',
    ''汇总'',
    -1,
    ''汇总'', --客户群(公众、集客)
    ''汇总'', --受理渠道类型(电子渠道、实体渠道、集团渠道、其它)
    ''汇总'',    --受理渠道类型细分(细分维值待确认)
    ''0'', --是否剔重(是、否)
    ''汇总'',    --入网时间(非本年、本年非本月、本月非本日、本日)
    ''汇总'', --用户类型(单移、移移、宽移、其它)
    ''汇总'', --产品类型(王卡、非王卡、冰激凌、流量王、其它)
    ''汇总'', --是否2I(是、否)
    ''汇总'', --是否5G(是、否)
    SUM(OM_YD_USER), --宽移融合移动业务受理用户数当日值
    SUM(OM_YD_USER_LD), --宽移融合移动业务受理用户数昨日值
    SUM(OM_YD_USER_M), --宽移融合移动业务受理用户数本月累计
    SUM(OM_YD_USER_M_LM), --宽移融合移动业务受理用户数上月同期累计值
    SUM(YYOM_USER), --移移融合受理用户数当日值
    SUM(YYOM_USER_LD), --移移融合受理用户数昨日值
    SUM(YYOM_USER_M), --移移融合受理用户数本月累计
    SUM(YYOM_USER_M_LM), --移移融合受理用户数上月同期累计值
    SUM(JRFQ_USER), --移动业务金融分期受理用户数当日值
    SUM(JRFQ_USER_LD), --移动业务金融分期受理用户数昨日值
    SUM(JRFQ_USER_M), --移动业务金融分期受理用户数本月累计
    SUM(JRFQ_USER_M_LM) --移动业务金融分期受理用户数上月同期累计值

FROM ITSY_CUBE.DM_KPI_YYOM_ACCEPT_D
WHERE MONTH_ID = '''||V_MONTH||''' 
AND DAY_ID ='''||V_DAY||'''
AND IS_RN = ''0''

GROUP BY 
    MONTH_ID,
    DAY_ID,
    ACCT_DATE,
    PROV_ID,
    PROV_NAME,
    PROV_ORD


UNION ALL
--地市汇总值(是剔重)

SELECT 

    MONTH_ID,
    DAY_ID,
    ACCT_DATE,
    PROV_ID,
    PROV_NAME,
    PROV_ORD,
    AREA_ID,
    AREA_NAME,
    AREA_ORD,
    ''汇总'', --客户群(公众、集客)
    ''汇总'', --受理渠道类型(电子渠道、实体渠道、集团渠道、其它)
    ''汇总'',    --受理渠道类型细分(细分维值待确认)
    ''1'', --是否剔重(是、否)
    ''汇总'',    --入网时间(非本年、本年非本月、本月非本日、本日)
    ''汇总'', --用户类型(单移、移移、宽移、其它)
    ''汇总'', --产品类型(王卡、非王卡、冰激凌、流量王、其它)
    ''汇总'', --是否2I(是、否)
    ''汇总'', --是否5G(是、否)
    SUM(OM_YD_USER), --宽移融合移动业务受理用户数当日值
    SUM(OM_YD_USER_LD), --宽移融合移动业务受理用户数昨日值
    SUM(OM_YD_USER_M), --宽移融合移动业务受理用户数本月累计
    SUM(OM_YD_USER_M_LM), --宽移融合移动业务受理用户数上月同期累计值
    SUM(YYOM_USER), --移移融合受理用户数当日值
    SUM(YYOM_USER_LD), --移移融合受理用户数昨日值
    SUM(YYOM_USER_M), --移移融合受理用户数本月累计
    SUM(YYOM_USER_M_LM), --移移融合受理用户数上月同期累计值
    SUM(JRFQ_USER), --移动业务金融分期受理用户数当日值
    SUM(JRFQ_USER_LD), --移动业务金融分期受理用户数昨日值
    SUM(JRFQ_USER_M), --移动业务金融分期受理用户数本月累计
    SUM(JRFQ_USER_M_LM) --移动业务金融分期受理用户数上月同期累计值

FROM ITSY_CUBE.DM_KPI_YYOM_ACCEPT_D
WHERE MONTH_ID = '''||V_MONTH||''' 
AND DAY_ID ='''||V_DAY||'''
AND IS_RN = ''1''
AND AREA_ID != ''-1''

GROUP BY 
    MONTH_ID,
    DAY_ID,
    ACCT_DATE,
    PROV_ID,
    PROV_NAME,
    PROV_ORD,
    AREA_ID,
    AREA_NAME,
    AREA_ORD

UNION ALL 

--省份、全国、北南汇总值(否剔重)

SELECT 

    MONTH_ID,
    DAY_ID,
    ACCT_DATE,
    PROV_ID,
    PROV_NAME,
    PROV_ORD,
    ''汇总'',
    ''汇总'',
    -1,
    ''汇总'', --客户群(公众、集客)
    ''汇总'', --受理渠道类型(电子渠道、实体渠道、集团渠道、其它)
    ''汇总'',    --受理渠道类型细分(细分维值待确认)
    ''1'', --是否剔重(是、否)
    ''汇总'',    --入网时间(非本年、本年非本月、本月非本日、本日)
    ''汇总'', --用户类型(单移、移移、宽移、其它)
    ''汇总'', --产品类型(王卡、非王卡、冰激凌、流量王、其它)
    ''汇总'', --是否2I(是、否)
    ''汇总'', --是否5G(是、否)
    SUM(OM_YD_USER), --宽移融合移动业务受理用户数当日值
    SUM(OM_YD_USER_LD), --宽移融合移动业务受理用户数昨日值
    SUM(OM_YD_USER_M), --宽移融合移动业务受理用户数本月累计
    SUM(OM_YD_USER_M_LM), --宽移融合移动业务受理用户数上月同期累计值
    SUM(YYOM_USER), --移移融合受理用户数当日值
    SUM(YYOM_USER_LD), --移移融合受理用户数昨日值
    SUM(YYOM_USER_M), --移移融合受理用户数本月累计
    SUM(YYOM_USER_M_LM), --移移融合受理用户数上月同期累计值
    SUM(JRFQ_USER), --移动业务金融分期受理用户数当日值
    SUM(JRFQ_USER_LD), --移动业务金融分期受理用户数昨日值
    SUM(JRFQ_USER_M), --移动业务金融分期受理用户数本月累计
    SUM(JRFQ_USER_M_LM) --移动业务金融分期受理用户数上月同期累计值

FROM ITSY_CUBE.DM_KPI_YYOM_ACCEPT_D
WHERE MONTH_ID = '''||V_MONTH||''' 
AND DAY_ID ='''||V_DAY||'''
AND IS_RN = ''1''

GROUP BY 
    MONTH_ID,
    DAY_ID,
    ACCT_DATE,
    PROV_ID,
    PROV_NAME,
    PROV_ORD
';
    
    DBMS_OUTPUT.PUT_LINE(V_SQL);
    EXECUTE IMMEDIATE V_SQL;
    
    V_RETCODE := 'SUCCESS';
    V_RETINFO := '结束';
    
EXCEPTION 
    WHEN OTHERS THEN
        V_RETCODE := 'FAIL';
        V_RETINFO := SQLERRM;
        DBMS_OUTPUT.PUT_LINE(SQLERRM);
END;

导数脚本开发

从ITSY_CUBE直接导数到ZBJF_099应用集群,编写对应的导数存储过程,如下:

宽移融合受理套餐日报(DM_KPI_OM_ACCEPT_D)

CREATE OR REPLACE PROCEDURE P_DM_KPI_OM_ACCEPT_D_099(
    V_MONTH IN VARCHAR ,
    V_DAY IN VARCHAR ,
    V_RETCODE OUT VARCHAR ,
    V_RETINFO OUT VARCHAR
) AS
    /*@
    ****************************************************************
    *名称 --%@NAME:                    宽移融合受理套餐日报     
    *执行周期 --%@PERIOD:              日
    *参数 --%@PARAM:                   V_MONTH  '202201' V_DAY '01'
    *参数 --%@PARAM:V_RETCODE          过程运行结束成功与否标志
    *参数 --%@PARAM:V_RETINFO          过程运行结束成功与否描述
    *创建人 --%@CREATOR:             樊鑫           
    *创建时间 --%@CREATED_TIME:     20220225
    *来源表 --%@FROM:    ITSY_CUBE.DM_KPI_OM_ACCEPT_D
    *目标表 --%@TO:   ZBJF_099.DM_KPI_OM_ACCEPT_D
    *修改记录 --%@MODIFY:           
    ******************************************************************
    @*/
    
    V_SQL       VARCHAR(10000);
    V_CNT       NUMBER;
    V_PART_NAME VARCHAR(100);
    V_ACCT_DATE VARCHAR(20);
   
BEGIN
    V_PART_NAME:='PART'||V_MONTH||V_DAY;
    V_ACCT_DATE:=V_MONTH||V_DAY;
    V_SQL:='SELECT COUNT(*) FROM V$USER_TAB_PARTS WHERE TABLE_NAME =''DM_KPI_OM_ACCEPT_D'' AND PART_NAME='''||V_PART_NAME||'''';
    EXECUTE IMMEDIATE V_SQL INTO V_CNT;
    
    IF V_CNT =0 THEN 
        EXECUTE IMMEDIATE 'ALTER TABLE ZBJF_099.DM_KPI_OM_ACCEPT_D ADD PARTITION '||V_PART_NAME||'(ACCT_DATE='''||V_ACCT_DATE||''')';
    ELSE 
        EXECUTE IMMEDIATE 'ALTER TABLE ZBJF_099.DM_KPI_OM_ACCEPT_D TRUNCATE PARTITION '||V_PART_NAME;
    END IF;
    
    V_SQL := 'INSERT INTO ZBJF_099.DM_KPI_OM_ACCEPT_D PARTITION ON (ACCT_DATE='''||V_ACCT_DATE||''')
SELECT * FROM ITSY_CUBE.DM_KPI_OM_ACCEPT_D@CLOUND_APP_TO_PROC
WHERE ACCT_DATE = '''||V_ACCT_DATE||'''
ORDER BY PROV_ORD,AREA_ORD
 ';

    DBMS_OUTPUT.PUT_LINE(V_SQL);
    EXECUTE IMMEDIATE V_SQL;    
    
    V_RETCODE := 'SUCCESS';
    V_RETINFO := '结束';
    
EXCEPTION 
    WHEN OTHERS THEN
        V_RETCODE := 'FAIL';
        V_RETINFO := SQLERRM;
        DBMS_OUTPUT.PUT_LINE(SQLERRM);
END;

移动业务融合日报(DM_KPI_YYOM_ACCEPT_D)

CREATE OR REPLACE PROCEDURE P_DM_KPI_YYOM_ACCEPT_D_099(
    V_MONTH IN VARCHAR ,
    V_DAY IN VARCHAR ,
    V_RETCODE OUT VARCHAR ,
    V_RETINFO OUT VARCHAR
) AS
    /*@
    ****************************************************************
    *名称 --%@NAME:                    宽移融合受理套餐日报     
    *执行周期 --%@PERIOD:              日
    *参数 --%@PARAM:                   V_MONTH  '202201' V_DAY '01'
    *参数 --%@PARAM:V_RETCODE          过程运行结束成功与否标志
    *参数 --%@PARAM:V_RETINFO          过程运行结束成功与否描述
    *创建人 --%@CREATOR:             樊鑫           
    *创建时间 --%@CREATED_TIME:     20220225
    *来源表 --%@FROM:    ITSY_CUBE.DM_KPI_YYOM_ACCEPT_D
    *目标表 --%@TO:   ZBJF_099.DM_KPI_YYOM_ACCEPT_D
    *修改记录 --%@MODIFY:           
    ******************************************************************
    @*/
    
    V_SQL       VARCHAR(10000);
    V_CNT       NUMBER;
    V_PART_NAME VARCHAR(100);
    V_ACCT_DATE VARCHAR(20);
   
BEGIN
    V_PART_NAME:='PART'||V_MONTH||V_DAY;
    V_ACCT_DATE:=V_MONTH||V_DAY;
    V_SQL:='SELECT COUNT(*) FROM V$USER_TAB_PARTS WHERE TABLE_NAME =''DM_KPI_YYOM_ACCEPT_D'' AND PART_NAME='''||V_PART_NAME||'''';
    EXECUTE IMMEDIATE V_SQL INTO V_CNT;
    
    IF V_CNT =0 THEN 
        EXECUTE IMMEDIATE 'ALTER TABLE ZBJF_099.DM_KPI_YYOM_ACCEPT_D ADD PARTITION '||V_PART_NAME||'(ACCT_DATE='''||V_ACCT_DATE||''')';
    ELSE 
        EXECUTE IMMEDIATE 'ALTER TABLE ZBJF_099.DM_KPI_YYOM_ACCEPT_D TRUNCATE PARTITION '||V_PART_NAME;
    END IF;
    
    V_SQL := 'INSERT INTO ZBJF_099.DM_KPI_YYOM_ACCEPT_D PARTITION ON (ACCT_DATE='''||V_ACCT_DATE||''')
SELECT * FROM ITSY_CUBE.DM_KPI_YYOM_ACCEPT_D@CLOUND_APP_TO_PROC
WHERE ACCT_DATE = '''||V_ACCT_DATE||'''
ORDER BY PROV_ORD,AREA_ORD
 ';

    DBMS_OUTPUT.PUT_LINE(V_SQL);
    EXECUTE IMMEDIATE V_SQL;    
    
    V_RETCODE := 'SUCCESS';
    V_RETINFO := '结束';
    
EXCEPTION 
    WHEN OTHERS THEN
        V_RETCODE := 'FAIL';
        V_RETINFO := SQLERRM;
        DBMS_OUTPUT.PUT_LINE(SQLERRM);
END;

手动调度历史账期

DECLARE
V1 VARCHAR(300);
V2 VARCHAR(300);
BEGIN
P_DM_KPI_OM_ACCEPT_D('202201','01',V1,V2);
END;

数据云开发

资源注册

扫描对应的存储过程

ITSY_CUBE下的资源,扫描到 CUBE_ITSY_PROCEDURE 下。

P_DM_KPI_OM_ACCEPT_D
P_DM_KPI_YYOM_ACCEPT_D

ZBJF_099下的资源,扫描到 ZBJF_099 下。

P_DM_KPI_OM_ACCEPT_D_099
P_DM_KPI_YYOM_ACCEPT_D_099

流程开发

加工导数流程

  • 流程名:

    • F_DP_DM_KPI_OM_ACCEPT_D
    • F_DP_DM_KPI_YYOM_ACCEPT_D

image-20220228103018315

image-20220228103150374

定时调度

历史账期批量调度

由于需要批量调度 20220101 至今 的历史数据,所以编写批量调度的BDI流程,创建对应的模板,方便日后重复使用。

  • 模板名称:账期批量调度
  • 模板描述:输入开始账期结束账期,替换模板中的子流程节点为需要批量调度的流程,开始运行即可。
    支持的账期类型为

    • 日账期:20220101
    • 月账期:202202
      两种格式,会自动根据输入的账期进行判断,并生成指定范围内的账期批次。

image-20220228101742439

Last modification:March 25th, 2022 at 03:59 pm
如果觉得我的文章对你有用,请随意赞赏