new file: 02 dm_td_external_keycompatitor.sql new file: 03 dm_td_external_brand_market.sql new file: 04 dm_td_external_calendar.sql new file: 05 dm_td_external_exchangerate.sql new file: 07 dm_td_external_packinfo.sql new file: 08 dm_td_external_corp.sql new file: 09 dm_td_external_geo_type.sql new file: 11 DM_TD_EXTERNAL_MARKET_NEW.sql new file: 12 dm_td_external_org.sql new file: 13 external auth.sql new file: 14 dm_tf_external_retail_special_bkp.sql new file: AIA/01 dm_aia_pack_property.sql new file: AIA/02 dm_ext_aia_sales.sql new file: AIA/02 dm_ext_aia_sales_bakup_20230327.sql new file: AIA/03 dm_aia_flag.sql new file: AIA/04 dm_aia_provided_flag.sql new file: AIA/06 DM_TD_EXT_AIA_PACK_PROPERTY.sql new file: AIA/07 DM_TD_EXT_AIA_PACK2MARKET.sql new file: AIA/08 DM_TD_EXT_AIA_MARKET_RATIO.sql new file: AIA/09 DM_TD_EXT_AIA_MARKET_BRAND_RATIO.sql new file: AIA/10 DM_TD_EXT_AIA_MARKET_PACK_MAPPING.sql new file: AIA/11 DM_TD_EXT_AIA_TARGET_INST.sql new file: AIA/11 dm_aia_targethp_flag.sql new file: "AIA/z_03 dm_aia_flag_\345\244\207\344\273\275\347\224\250.sql" new file: CHC/01 dm_chc_pack_property.sql new file: CHC/02 DM_TF_EXT_CHC_SALES.sql new file: CHC/03 DM_TD_EXT_CHC_PACK_PROPERTY.sql new file: CHC/04 DM_TD_EXT_CHC_PACK2MARKET.sql new file: CHC/05 DM_TD_EXT_CHC_MARKET_RATIO.sql new file: CHC/06 DM_TD_EXT_CHC_MARKET_BRAND_RATIO.sql new file: CHC/07 DM_TD_EXT_CHC_MARKET_PACK_MAPPING.sql new file: CHPA/01 dwd_ims_atc_hierarchy.sql new file: CHPA/01 dwd_ims_nfc_hierarchy.sql new file: CHPA/01 dwd_ims_td_manufacturer_corp.sql new file: CHPA/01 dwd_ims_td_pack_property.sql new file: CHPA/01 dwd_update.sql new file: CHPA/01_FB_BLOB_TO_DWD.sql new file: CHPA/02 DWS_IMS_TD_GEO.sql new file: CHPA/02 dws_ims_td_atc_cn.sql new file: CHPA/02 dws_ims_td_corp_cn.sql new file: CHPA/02 dws_ims_td_date.sql new file: CHPA/02 dws_ims_td_manu_cn.sql new file: CHPA/02 dws_ims_td_market.sql new file: CHPA/02 dws_ims_td_market_ta.sql new file: CHPA/02 dws_ims_td_nfc_cn.sql new file: CHPA/02 dws_ims_td_prod_cn.sql new file: CHPA/02 tmp_ims_td_prod_tmp.sql new file: CHPA/02 tmp_ims_tf_fact_sales.sql new file: CHPA/03 DM_TD_EXT_CHPA_MARKET_BRAND_RATIO.sql new file: CHPA/03 DM_TD_EXT_CHPA_MARKET_PACK_MAPPING.sql new file: CHPA/03 DM_TD_EXT_CHPA_MARKET_RATIO.sql new file: CHPA/03 DM_TD_EXT_CHPA_PACK2MARKET.sql new file: CHPA/03 DM_TD_EXT_CHPA_PACK_PROPERTY.sql new file: CHPA/03 DM_TF_EXT_CHPA_SALES.sql new file: CHPA/03 dm_ims_td_calendar.sql new file: CHPA/03 dm_ims_td_geo.sql new file: CHPA/03 dm_ims_td_market_property.sql new file: CHPA/03 dm_ims_td_org.sql new file: CHPA/03 dm_ims_td_org_hvh.sql new file: CHPA/03 dm_ims_td_pack_property.sql new file: CHPA/03 dm_ims_tf_sales.sql new file: CHPA/03 dm_td_chpa_market_definition.sql new file: CHPA/03 dm_td_ims_city_mapping.sql new file: EC/03 ec_load_data.sql new file: EC/04 DM_TD_EXT_EC_PACK_PROPERTY.sql new file: EC/05 DM_TF_EXT_EC_SALES.sql new file: EC/06 DM_TD_EXT_EC_PACK2MARKET.sql new file: EC/07 DM_TD_EXT_EC_MARKET_RATIO.sql new file: EC/08 DM_TD_EXT_EC_MARKET_BRAND_RATIO.sql new file: EC/09 DM_TD_EXT_EC_MARKET_PACK_MAPPING.sql new file: EC/1 (ec)blob_to_dwd.sql new file: EC/2 dwd_inc_gnd_ext_ec_nationnal_pack_union_all.py new file: Merged_Data/Merged_Data_Config_table_bkp.sql new file: Merged_Data/Merged_Data_Config_table_bymonth.sql new file: Merged_Data/dm_tf_exteranl_sales_merged_data_dtp_others_bkp.sql new file: Merged_Data/dm_tf_exteranl_sales_merged_data_dtp_others_bymonth_bkp.sql new file: ORG/DM_TD_EXT_AIA_ORG.sql new file: ORG/DM_TD_EXT_CHC_ORG.sql new file: ORG/DM_TD_EXT_CHPA_ORG.sql new file: ORG/DM_TD_EXT_COUNTY_ORG.sql new file: ORG/DM_TD_EXT_EC_ORG.sql new file: ORG/DM_TD_EXT_RETAIL_ORG.sql new file: ORG/DM_TD_EXT_THC_ORG.sql new file: ORG/DM_TD_EXT_XIEHE_ORG.sql new file: OTHERS/01 dm_td_report_url.sql new file: OTHERS/02 dws_ext_email_warning.sql new file: OTHERS/external_triggered_email.py new file: Retail/01 load_tmp_data.py new file: Retail/02 split_brand_data.py new file: Retail/03 split_pack_data.py new file: Retail/04 map_to_dws_table.py new file: Retail/05 load_dtp_temp_data.py new file: Retail/06 split_dtp_brand_data.py new file: Retail/07 split_dtp_pack_data.py new file: Retail/08 map_to_dtp_dws_table.py new file: Retail/09 dwd_inc_gnd_ext_retail_nataional.py new file: Retail/10 map_to_retail_dm_table.py new file: Retail/11 map_to_overview_dm_table.py new file: Retail/12 dws_tf_external_retail_dtp_special.sql new file: Retail/13 DM_TF_EXT_RETAIL_SALES.sql new file: Retail/14 DM_TF_EXT_RETAIL_DTP_SALES.sql new file: Retail/15 DM_TD_EXT_RETAIL_PACK_PROPERTY.sql new file: Retail/16 DM_TD_EXT_RETAIL_DTP_PACK_PROPERTY.sql new file: Retail/17 DM_TD_EXT_DTP_PACK2MARKET.sql new file: Retail/17 DM_TD_EXT_RETAIL_PACK2MARKET.sql new file: Retail/18 DM_TD_EXT_DTP_MARKET_RATIO.sql new file: Retail/18 DM_TD_EXT_RETAIL_MARKET_RATIO.sql new file: Retail/19 DM_TD_EXT_DTP_MARKET_BRAND_RATIO.sql new file: Retail/19 DM_TD_EXT_RETAIL_MARKET_BRAND_RATIO.sql new file: Retail/20 DM_TD_EXT_DTP_MARKET_PACK_MAPPING.sql new file: Retail/20 DM_TD_EXT_RETAIL_MARKET_PACK_MAPPING.sql new file: "Retail/z1 dwd_inc_gnd_ext_retail_nataional_\344\275\234\345\272\237.py" new file: "Retail/z2 retail_load_data_\344\275\234\345\272\237.sql" new file: "Retail/z3 retail_overview_data_\344\275\234\345\272\237.sql" new file: THC/01 dm_thc_pack_property.sql new file: THC/02 dm_ext_thc_sales.sql new file: THC/02 dm_ext_thc_sales_bakup_20260327.sql new file: THC/03 DM_TF_EXT_THC_MARKET_SALES_CHT.sql new file: THC/04 dm_tf_external_sales_thc.sql new file: THC/05 DM_TD_EXT_THC_PACK_PROPERTY.sql new file: THC/06 DM_TD_EXT_THC_PACK2MARKET.sql new file: THC/07 DM_TD_EXT_THC_MARKET_RATIO.sql new file: THC/08 DM_TD_EXT_THC_MARKET_BRAND_RATIO.sql new file: THC/09 DM_TD_EXT_THC_MARKET_PACK_MAPPING.sql new file: UNIONALL/DM_TD_EXT_UNIONALL_MARKET_PACK_MAPPING.sql new file: UNIONALL/DM_TD_EXT_UNIONALL_PACKINFO.sql new file: UNIONALL/DM_TF_EXT_UNIONALL_MARKET_SALES.sql new file: UNIONALL/DM_TF_EXT_UNIONALL_MARKET_SALES_v1.0.sql new file: UNIONALL/DM_TF_EXT_UNIONALL_SALES.sql new file: UNIONALL/DM_TF_EXT_UNIONALL_SALES_MAPPING.sql new file: UNIONALL/DM_TF_EXT_UNIONALL_SALES_MAPPING_NIAD.sql new file: XIEHE/01 xiehe_blob_to_dwd.py new file: XIEHE/02 dm_xiehe_pack_property.sql new file: XIEHE/03 dm_ext_xiehe_geo.sql new file: XIEHE/04 dm_ext_xiehe_sales.sql new file: XIEHE/05 dm_td_xiehe_core_dept.sql new file: XIEHE/06 DM_TF_EXT_XIEHE_SALES.sql new file: XIEHE/07 DM_TD_EXT_XIEHE_PACK_PROPERTY.sql new file: XIEHE/08 DM_TD_EXT_XIEHE_PACK2MARKET.sql new file: XIEHE/09 DM_TD_EXT_XIEHE_MARKET_RATIO.sql new file: XIEHE/10 DM_TD_EXT_XIEHE_MARKET_BRAND_RATIO.sql new file: XIEHE/11 DM_TD_EXT_XIEHE_MARKET_PACK_MAPPING.sql new file: XIEHE/bkp_01 xiehe_blob2dwd.py new file: XIEHE/bkp_02 dm_ext_xiehe_sales.sql new file: XIEHE/bkp_03 dm_ext_xiehe_pack_property.sql new file: county/01 tmp_ims_county_fact_sales_sum.sql new file: county/02 tmp_imscounty_Result.sql new file: county/03 dm_ims_td_county_geo.sql new file: county/04 dws_ext_county_tf_sales.sql new file: county/05 dm_ext_county_td_pack_property.sql new file: county/06 dm_td_county_pack_region.sql new file: county/07 dm_ext_county_tf_sales_region.sql new file: county/08 DM_TD_EXT_COUNTY_PACK_PROPERTY.sql new file: county/09 DM_TF_EXT_COUNTY_SALES.sql new file: county/10 DM_TD_EXT_COUNTY_PACK2MARKET.sql new file: county/11 DM_TD_EXT_COUNTY_MARKET_RATIO.sql new file: county/12 DM_TD_EXT_COUNTY_MARKET_BRAND_RATIO.sql new file: county/13 DM_TD_EXT_COUNTY_MARKET_PACK_MAPPING.sql new file: for_AIA_Dashboard/01 dm_td_aia_inst_mkt.sql new file: for_AIA_Dashboard/02 dm_td_aia_auth_sales.sql new file: for_AIA_Dashboard/03 dm_td_aia_original_col.sql new file: for_AIA_Dashboard/04 dm_td_aia_nosales_inst.sql new file: for_AIA_Dashboard/05 dm_td_aia_is_eagle_flag.sql new file: for_AIA_Dashboard/06 dm_td_aia_rank.sql new file: for_AIA_Dashboard/07 dm_ext_aia_data_remove_flag.sql new file: for_AIA_Dashboard/07 dm_td_aia_remove_special_ins_bkp.py new file: for_AIA_Dashboard/08 dm_ext_aia_data_quality_flag.sql new file: z 01 dm_tf_external_sales.sql new file: "z 10 dm_td_external_market_pack_mapping_\344\275\234\345\272\237.sql" new file: "z 11 dm_td_external_market_\344\275\234\345\272\237.sql" new file: "\344\270\212\347\272\277\350\204\232\346\234\254.sql" new file: "\346\225\260\346\215\256\351\252\214\350\257\201.sql"
4917 lines
176 KiB
Python
4917 lines
176 KiB
Python
# Databricks notebook source
|
||
############################################################START##############################################################
|
||
### STEP-1: map to dm.dm_zk_retail_geo
|
||
### STEP-2: map to dm.dm_ext_rc_ratio
|
||
### STEP-3: map to dm.dm_zk_retail_sales
|
||
### STEP-4: map to dm.dm_zk_retail_pack_property
|
||
### STEP-5: map to dm.dm_zk_retail_market_property
|
||
### STEP-6: map to dm.dm_zk_retail_dtp_pack_property
|
||
### STEP-7: map to dm.dm_zk_retail_dtp_sales
|
||
### STEP-8: map to dm.dm_zk_retail_sales_kpi
|
||
### STEP-9: map to dm.dm_zk_retail_market_ratio
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %md
|
||
# MAGIC ## STEP-1: map to dm.dm_zk_retail_geo
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %sql
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC -- STEP-1: map to dm.dm_zk_retail_geo
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC
|
||
# MAGIC with all_province_city as (
|
||
# MAGIC select distinct province_city from tmp.tmp_retail_brand_rawdata
|
||
# MAGIC union
|
||
# MAGIC select distinct zk_regin from tmp.tmp_retail_pack_rawdata
|
||
# MAGIC union
|
||
# MAGIC select distinct province_city from dwd.dwd_gnd_ext_dtp_zk_brand
|
||
# MAGIC union
|
||
# MAGIC select distinct region from dwd.dwd_gnd_ext_retail_dtp_datasource
|
||
# MAGIC ), tmp as (
|
||
# MAGIC ----------------按照retail 逻辑划分福厦泉、全国,并从chpa的geo中提取其他维度信息---------------------
|
||
# MAGIC select distinct
|
||
# MAGIC case when t1.province_city = '全国' then 'CHT'
|
||
# MAGIC when t1.province_city = '福厦泉' then 'FXQ'
|
||
# MAGIC else
|
||
# MAGIC nvl(t2.geo_key, t3.geo_key)
|
||
# MAGIC end geo_key,
|
||
# MAGIC t4.AZ_City_tier
|
||
# MAGIC ,t4.city_tier,
|
||
# MAGIC province_city,
|
||
# MAGIC t3.city_name,
|
||
# MAGIC t3.city_code,
|
||
# MAGIC t3.city_name_en,
|
||
# MAGIC case when t1.province_city = '福厦泉' then '福建'
|
||
# MAGIC when t1.province_city = '全国' then '全国'
|
||
# MAGIC else
|
||
# MAGIC nvl(t3.province_name,t2.province_name)
|
||
# MAGIC end province_name,
|
||
# MAGIC case when t1.province_city = '福厦泉' then 'FJ'
|
||
# MAGIC when t1.province_city = '全国' then 'National'
|
||
# MAGIC else
|
||
# MAGIC nvl(t3.province_code,t2.province_code)
|
||
# MAGIC end province_code,
|
||
# MAGIC case when t1.province_city = '福厦泉' then 'Fujian'
|
||
# MAGIC when t1.province_city = '全国' then 'National'
|
||
# MAGIC else
|
||
# MAGIC nvl(t3.province_name_en,t2.province_name_en)
|
||
# MAGIC end province_name_en,
|
||
# MAGIC case when t1.province_city = '福厦泉' then 'SOUTH'
|
||
# MAGIC when t1.province_city = '全国' then 'National'
|
||
# MAGIC else
|
||
# MAGIC nvl(t3.area_code,t2.area_code)
|
||
# MAGIC end area_code,
|
||
# MAGIC case when t1.province_city = '福厦泉' then '南部地区'
|
||
# MAGIC when t1.province_city = '全国' then 'National'
|
||
# MAGIC else
|
||
# MAGIC nvl(t3.area_name,t2.area_name)
|
||
# MAGIC end area_name,
|
||
# MAGIC case when t1.province_city = '福厦泉' then 'South China'
|
||
# MAGIC when t1.province_city = '全国' then 'National'
|
||
# MAGIC else
|
||
# MAGIC nvl(t3.area_name_en,t2.area_name_en)
|
||
# MAGIC end area_name_en,
|
||
# MAGIC case when t1.province_city = '福厦泉' then 'SOUTH'
|
||
# MAGIC when t1.province_city = '全国' then 'National'
|
||
# MAGIC else
|
||
# MAGIC nvl(t3.rc_code,t2.rc_code)
|
||
# MAGIC end rc_code,
|
||
# MAGIC case when t1.province_city = '福厦泉' then '南部地区'
|
||
# MAGIC when t1.province_city = '全国' then 'National'
|
||
# MAGIC else
|
||
# MAGIC nvl(t3.rc_name,t2.rc_name)
|
||
# MAGIC end rc_name,
|
||
# MAGIC case when t1.province_city = '福厦泉' then 'South China'
|
||
# MAGIC when t1.province_city = '全国' then 'National'
|
||
# MAGIC else
|
||
# MAGIC nvl(t3.rc_name_en,t2.rc_name_en)
|
||
# MAGIC end rc_name_en
|
||
# MAGIC from all_province_city t1
|
||
# MAGIC left join dm.dm_td_geography t2
|
||
# MAGIC on t1.province_city = t2.province_name and t2.geo_key = t2.province_code
|
||
# MAGIC left join dm.dm_td_geography t3
|
||
# MAGIC on t1.province_city = replace(t3.city_name,'市','') and t3.geo_key = t3.city_code
|
||
# MAGIC left join dws.dws_ims_td_geo t4
|
||
# MAGIC on t1.province_city = replace(t4.AUDIT_DES_C,'市','')
|
||
# MAGIC where t1.province_city <> 'ROC'
|
||
# MAGIC )
|
||
# MAGIC
|
||
# MAGIC -------------------省份、自治区等处理-----------------------
|
||
# MAGIC insert overwrite table dm.dm_zk_retail_geo
|
||
# MAGIC SELECT
|
||
# MAGIC geo_key
|
||
# MAGIC ,city_name_en
|
||
# MAGIC ,replace(city_name,'市') city_c
|
||
# MAGIC ,case when city_code is not null then 'City' else 'Province' END city_type
|
||
# MAGIC ,city_tier
|
||
# MAGIC ,AZ_City_tier
|
||
# MAGIC ,province_name_en
|
||
# MAGIC ,province_name
|
||
# MAGIC ,province_code
|
||
# MAGIC ,city_name city_map
|
||
# MAGIC ,case when province_code in ('TJ','CQ','BJ','SH') then concat(province_name,'市')
|
||
# MAGIC when province_code in ('SC','YN','LN','SA','GZ','HN','HL','SX','ZJ','JS','SD','JL','FJ','GD','HU','AH','GS','HE','JX','HB') then concat(province_name,'省')
|
||
# MAGIC when province_code ='GX' THEN concat(province_name,'壮族自治区')
|
||
# MAGIC when province_code ='IM' THEN concat(province_name,'自治区')
|
||
# MAGIC ELSE province_name
|
||
# MAGIC end province_map
|
||
# MAGIC ,city_code
|
||
# MAGIC ,province_city
|
||
# MAGIC ,area_code
|
||
# MAGIC ,area_name
|
||
# MAGIC ,area_name_en
|
||
# MAGIC ,rc_code
|
||
# MAGIC ,rc_name
|
||
# MAGIC ,rc_name_en
|
||
# MAGIC ,from_utc_timestamp(current_timestamp(),'UTC+8') etl_insert_dt
|
||
# MAGIC ,from_utc_timestamp(current_timestamp(),'UTC+8') etl_update_dt
|
||
# MAGIC from tmp
|
||
# MAGIC
|
||
# MAGIC UNION ALL
|
||
# MAGIC
|
||
# MAGIC SELECT
|
||
# MAGIC 'ROC'
|
||
# MAGIC ,'Other Low Tiers'
|
||
# MAGIC ,'Other Low Tiers'
|
||
# MAGIC ,'City'
|
||
# MAGIC , 1
|
||
# MAGIC , 1
|
||
# MAGIC ,'Other Low Tiers'
|
||
# MAGIC ,'Other Low Tiers'
|
||
# MAGIC , null
|
||
# MAGIC ,'Other Low Tiers'
|
||
# MAGIC ,'Other Low Tiers'
|
||
# MAGIC ,'Other Low Tiers'
|
||
# MAGIC ,'Other Low Tiers'
|
||
# MAGIC ,'Other Low Tiers'
|
||
# MAGIC ,'Other Low Tiers'
|
||
# MAGIC ,'Other Low Tiers'
|
||
# MAGIC ,'Other Low Tiers'
|
||
# MAGIC ,'Other Low Tiers'
|
||
# MAGIC ,'Other Low Tiers'
|
||
# MAGIC ,from_utc_timestamp(current_timestamp(),'UTC+8') etl_insert_dt
|
||
# MAGIC ,from_utc_timestamp(current_timestamp(),'UTC+8') etl_update_dt
|
||
# MAGIC
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %md
|
||
# MAGIC ## STEP-2: map to dm.dm_ext_rc_ratio
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %sql
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC -- STEP-2: map to dm.dm_ext_rc_ratio
|
||
# MAGIC -- 2.1 rc 拆分逻辑处理
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC insert overwrite table dws.dws_ext_rc_ratio
|
||
# MAGIC select
|
||
# MAGIC a.sub_bu
|
||
# MAGIC ,a.mkt
|
||
# MAGIC ,a.region_code
|
||
# MAGIC ,nvl(b.PROVINCE_CODE,c.PROVINCE_CODE ) PROVINCE_CODE
|
||
# MAGIC ,nvl(b.AUDIT_COD,c.PROVINCE_CODE) city_code
|
||
# MAGIC ,a.ratio
|
||
# MAGIC ,From_utc_timestamp(CURRENT_TIMESTAMP(), 'UTC+8') etl_insert_dt
|
||
# MAGIC ,From_utc_timestamp(CURRENT_TIMESTAMP(), 'UTC+8') etl_update_dt
|
||
# MAGIC from dwd.dwd_gnd_ext_rc_ratio a
|
||
# MAGIC left join dm.dm_ims_td_geo b on a.city = b.CITY_C
|
||
# MAGIC left join (
|
||
# MAGIC select province_code,province_name
|
||
# MAGIC from dm.dm_td_geography group by province_name,province_code
|
||
# MAGIC ) c on a.city = c.province_name
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %sql
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC -- STEP-2: map to dm.dm_ext_rc_ratio
|
||
# MAGIC -- 2.2 rc 拆分逻辑处理
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC insert overwrite table dm.dm_ext_rc_ratio
|
||
# MAGIC select
|
||
# MAGIC sub_bu
|
||
# MAGIC ,mkt
|
||
# MAGIC ,region_code
|
||
# MAGIC ,PROVINCE_CODE
|
||
# MAGIC ,city_code
|
||
# MAGIC ,ratio
|
||
# MAGIC ,From_utc_timestamp(CURRENT_TIMESTAMP(), 'UTC+8') etl_insert_dt
|
||
# MAGIC ,From_utc_timestamp(CURRENT_TIMESTAMP(), 'UTC+8') etl_update_dt
|
||
# MAGIC from dws.dws_ext_rc_ratio
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %md
|
||
# MAGIC ## STEP-3: map to dm.dm_zk_retail_sales
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %md
|
||
# MAGIC ### 3.1 将数据写入最终表的临时表
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %sql
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC -- STEP-3: map to dm.dm_zk_retail_sales
|
||
# MAGIC -- 3.2 write pack data from tmp.tmp_retail_final_sales to tmp.tmp_retail_dm_zk_retail_sales_final
|
||
# MAGIC -- pack_flag :0-倒减的others 1-不拆的 2-拆的
|
||
# MAGIC -- brand_flag :0-倒减的others 1-买了这个品牌 2-没买这个品牌
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC with tmp_source as (
|
||
# MAGIC select
|
||
# MAGIC distinct
|
||
# MAGIC yyyymm,
|
||
# MAGIC iqvia_pack_code,
|
||
# MAGIC province_city,
|
||
# MAGIC collect_list(distinct market) as source
|
||
# MAGIC from tmp.tmp_retail_final_sales
|
||
# MAGIC group by yyyymm,iqvia_pack_code,province_city
|
||
# MAGIC ), tmp_pack as (
|
||
# MAGIC select
|
||
# MAGIC yyyymm,
|
||
# MAGIC iqvia_pack_code,
|
||
# MAGIC province_city,
|
||
# MAGIC market,
|
||
# MAGIC pack_flag,
|
||
# MAGIC brand_flag,
|
||
# MAGIC sum(sales_unit) as sales_unit,
|
||
# MAGIC sum(sales_unit_ly) as sales_unit_ly,
|
||
# MAGIC sum(sales_value) as sales_value,
|
||
# MAGIC sum(sales_value_ly) as sales_value_ly,
|
||
# MAGIC sum(counting_unit) as counting_unit,
|
||
# MAGIC sum(counting_unit_ly) as counting_unit_ly
|
||
# MAGIC from tmp.tmp_retail_final_sales
|
||
# MAGIC group by yyyymm,iqvia_pack_code,province_city,market,pack_flag,brand_flag
|
||
# MAGIC )
|
||
# MAGIC
|
||
# MAGIC insert overwrite table tmp.tmp_retail_dm_zk_retail_sales_final
|
||
# MAGIC select
|
||
# MAGIC a.yyyymm,
|
||
# MAGIC a.iqvia_pack_code,
|
||
# MAGIC CASE WHEN a.province_city ='ROC' then 'ROC' ELSE b.geo_key END as AUDIT_COD,
|
||
# MAGIC a.province_city,
|
||
# MAGIC c.corp_cod,
|
||
# MAGIC a.sales_unit,
|
||
# MAGIC a.sales_unit_ly,
|
||
# MAGIC a.sales_value,
|
||
# MAGIC a.sales_value_ly,
|
||
# MAGIC a.counting_unit,
|
||
# MAGIC a.counting_unit_ly,
|
||
# MAGIC 'Retail(Quarterly)' as DATA_SOURCE,
|
||
# MAGIC d.source,
|
||
# MAGIC a.pack_flag,
|
||
# MAGIC a.brand_flag,
|
||
# MAGIC case
|
||
# MAGIC when a.market in ('他汀类+血脂康','高血压用药','Brilinta Market') then 'CV'
|
||
# MAGIC when a.market in ('NIAD','RD Market') then 'CVRM'
|
||
# MAGIC ELSE ''
|
||
# MAGIC END as FLAG
|
||
# MAGIC from tmp_pack a
|
||
# MAGIC left join dm.dm_zk_retail_geo b
|
||
# MAGIC on a.province_city = b.province_city
|
||
# MAGIC left join tmp.tmp_zk_retail_pack_property_corp c
|
||
# MAGIC on a.iqvia_pack_code = c.iqvia_pack_code
|
||
# MAGIC left join tmp_source d
|
||
# MAGIC on a.yyyymm = d.yyyymm
|
||
# MAGIC and a.iqvia_pack_code = d.iqvia_pack_code
|
||
# MAGIC and a.province_city = d.province_city
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %md
|
||
# MAGIC ### 3.2 计算OTHERS数据
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %sql
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC -- STEP-5: map to dm.dm_zk_retail_sales
|
||
# MAGIC -- 3.3 calculate OTHERS DATA
|
||
# MAGIC -- 3.3.1 将数据处理到dws
|
||
# MAGIC -- 3.3.1.1 维度信息计算
|
||
# MAGIC -- STEP1: nataional_top_corp
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC --直接写入旧的文件对应的表,这样后面的代码都不用改动。
|
||
# MAGIC --新文件《全国-集团排名》筛选:TA=Retail Total,Rx/OTC= Rx,Top/Top Incre. = Top Sales,对应了旧文件:《全国-Rx-TOP集团》
|
||
# MAGIC insert overwrite table dwd.dwd_gnd_ext_retail_nataional_top_corp
|
||
# MAGIC (
|
||
# MAGIC rank1,
|
||
# MAGIC corp_desc,
|
||
# MAGIC corporation,
|
||
# MAGIC corp_type,
|
||
# MAGIC sales_quarter,
|
||
# MAGIC sales_amount,
|
||
# MAGIC ytd_gr,
|
||
# MAGIC ytd_ms,
|
||
# MAGIC ytd_delta_ms,
|
||
# MAGIC builtinarchivedate,
|
||
# MAGIC source_file_path,
|
||
# MAGIC source_file_name,
|
||
# MAGIC etl_insert_dt
|
||
# MAGIC )
|
||
# MAGIC select
|
||
# MAGIC trim(rank1) as rank1,
|
||
# MAGIC corp_desc,
|
||
# MAGIC corporation,
|
||
# MAGIC `type` as corp_type,
|
||
# MAGIC sales_quarter,
|
||
# MAGIC sales_amount,
|
||
# MAGIC null as ytd_gr,
|
||
# MAGIC null as ytd_ms,
|
||
# MAGIC null as ytd_delta_ms,
|
||
# MAGIC builtinarchivedate,
|
||
# MAGIC source_file_path,
|
||
# MAGIC source_file_name,
|
||
# MAGIC etl_insert_dt
|
||
# MAGIC from dwd.dwd_gnd_retail_national_corp_rank
|
||
# MAGIC where upper(ta) = 'RETAIL TOTAL'
|
||
# MAGIC and upper(rx_otc) = 'RX'
|
||
# MAGIC and upper(top_top_incre) = 'TOP SALES'
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %sql
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC -- STEP-5: map to dm.dm_zk_retail_sales
|
||
# MAGIC -- 3.3 calculate OTHERS DATA
|
||
# MAGIC -- 3.3.1 将数据处理到dws
|
||
# MAGIC -- 3.3.1.1 维度信息计算
|
||
# MAGIC -- STEP2: nataional_ta_top_corp
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC --直接写入旧的文件对应的表,这样后面的代码都不用改动。
|
||
# MAGIC --新文件《全国-集团排名》筛选:TA <> Retail Total,Top/Top Incre. = Top Sales,对应了旧文件:《全国-分TA-TOP集团》
|
||
# MAGIC insert overwrite table dwd.dwd_gnd_ext_retail_nataional_ta_top_corp
|
||
# MAGIC (
|
||
# MAGIC rank1,
|
||
# MAGIC corp_desc,
|
||
# MAGIC corp_name,
|
||
# MAGIC corp_type,
|
||
# MAGIC source_name,
|
||
# MAGIC sales_quarter,
|
||
# MAGIC sales_amount,
|
||
# MAGIC ytd_gr,
|
||
# MAGIC ytd_ms,
|
||
# MAGIC ytd_delta_ms,
|
||
# MAGIC builtinarchivedate,
|
||
# MAGIC source_file_path,
|
||
# MAGIC source_file_name,
|
||
# MAGIC etl_insert_dt
|
||
# MAGIC )
|
||
# MAGIC select
|
||
# MAGIC trim(rank1) as rank1,
|
||
# MAGIC corp_desc,
|
||
# MAGIC corporation as corp_name,
|
||
# MAGIC `type` as corp_type,
|
||
# MAGIC case when ta = 'GI' then concat(ta,'-',rx_otc)
|
||
# MAGIC when ta = 'NIAD-excl. GLP1' then 'DM'
|
||
# MAGIC else ta end as source_name,
|
||
# MAGIC sales_quarter,
|
||
# MAGIC sales_amount,
|
||
# MAGIC null as ytd_gr,
|
||
# MAGIC null as ytd_ms,
|
||
# MAGIC null as ytd_delta_ms,
|
||
# MAGIC builtinarchivedate,
|
||
# MAGIC source_file_path,
|
||
# MAGIC source_file_name,
|
||
# MAGIC etl_insert_dt
|
||
# MAGIC from dwd.dwd_gnd_retail_national_corp_rank
|
||
# MAGIC where upper(ta) <> 'RETAIL TOTAL'
|
||
# MAGIC and upper(top_top_incre) = 'TOP SALES'
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %sql
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC -- STEP-5: map to dm.dm_zk_retail_sales
|
||
# MAGIC -- 3.3 calculate OTHERS DATA
|
||
# MAGIC -- 3.3.1 将数据处理到dws
|
||
# MAGIC -- 3.3.1.2 将 top_corp 的数据处理到dws
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC --------------------获取 全国total 本同期数据------------------------
|
||
# MAGIC insert overwrite table dws.dws_zk_retail_top_corp
|
||
# MAGIC SELECT
|
||
# MAGIC yyyymm,
|
||
# MAGIC rank1,
|
||
# MAGIC corp_desc,
|
||
# MAGIC corporation,
|
||
# MAGIC -- source_name,
|
||
# MAGIC sum(sales_amount) as sales_amount,
|
||
# MAGIC sum(sales_amount_ly) as sales_amount_ly
|
||
# MAGIC FROM
|
||
# MAGIC (
|
||
# MAGIC SELECT
|
||
# MAGIC nvl(rank1,'' ) as rank1 ,
|
||
# MAGIC corp_desc,
|
||
# MAGIC corporation,
|
||
# MAGIC corp_type,
|
||
# MAGIC -- source_name,
|
||
# MAGIC CAST(sales_quarter AS int ) as yyyymm,
|
||
# MAGIC sales_amount * 1000000 AS sales_amount,
|
||
# MAGIC 0 AS sales_amount_ly
|
||
# MAGIC FROM dwd.dwd_gnd_ext_retail_nataional_top_corp
|
||
# MAGIC UNION ALL
|
||
# MAGIC SELECT
|
||
# MAGIC nvl(rank1,'' ) rank1,
|
||
# MAGIC corp_desc,
|
||
# MAGIC corporation,
|
||
# MAGIC corp_type,
|
||
# MAGIC -- source_name,
|
||
# MAGIC CAST(sales_quarter + 100 AS int ) as yyyymm,
|
||
# MAGIC 0 AS sales_amount,
|
||
# MAGIC sales_amount * 1000000 AS sales_amount_ly
|
||
# MAGIC FROM dwd.dwd_gnd_ext_retail_nataional_top_corp
|
||
# MAGIC WHERE CAST(sales_quarter + 100 AS int )
|
||
# MAGIC <=(SELECT
|
||
# MAGIC max(CAST(sales_quarter AS int ))
|
||
# MAGIC FROM dwd.dwd_gnd_ext_retail_nataional_top_corp ) )
|
||
# MAGIC GROUP BY
|
||
# MAGIC yyyymm,
|
||
# MAGIC rank1,
|
||
# MAGIC corp_desc,
|
||
# MAGIC corporation
|
||
# MAGIC -- source_name
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %sql
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC -- STEP-3: map to dm.dm_zk_retail_sales
|
||
# MAGIC -- 3.3 calculate OTHERS DATA
|
||
# MAGIC -- 3.3.1 将数据处理到dws
|
||
# MAGIC -- 3.3.1.3 将 ta_top_corp 的数据处理到dws
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC --------------------获取 ta total 本同期数据,用于后续取 total 及 az 值
|
||
# MAGIC insert overwrite table dws.dws_zk_retail_ta_top_corp
|
||
# MAGIC SELECT
|
||
# MAGIC source_name,
|
||
# MAGIC rank1,
|
||
# MAGIC corp_desc,
|
||
# MAGIC CORP_COD,
|
||
# MAGIC yyyymm,
|
||
# MAGIC sum(sales_amount) sales_amount,
|
||
# MAGIC sum(sales_amount_ly) sales_amount_ly
|
||
# MAGIC FROM
|
||
# MAGIC (
|
||
# MAGIC SELECT
|
||
# MAGIC a.rank1,
|
||
# MAGIC source_name,
|
||
# MAGIC A.corp_desc,
|
||
# MAGIC B.CORP_COD, --A.corp_name as CORP_COD, --自有的corp_name 是 corp_code
|
||
# MAGIC CAST(sales_quarter AS int ) yyyymm ,
|
||
# MAGIC sales_amount * 1000000 AS sales_amount,
|
||
# MAGIC 0 AS sales_amount_ly
|
||
# MAGIC FROM dwd.dwd_gnd_ext_retail_nataional_ta_top_corp a
|
||
# MAGIC LEFT JOIN (SELECT DISTINCT ZK_Corp_C,CORP_COD FROM dwd.dwd_inc_gnd_retail_b2c_label_total) b
|
||
# MAGIC ON a.corp_desc = b.ZK_Corp_C
|
||
# MAGIC UNION ALL
|
||
# MAGIC SELECT
|
||
# MAGIC a.rank1,
|
||
# MAGIC source_name,
|
||
# MAGIC A.corp_desc,
|
||
# MAGIC B.CORP_COD, --A.corp_name as CORP_COD, --自有的corp_name 是 corp_code
|
||
# MAGIC CAST(sales_quarter + 100 AS int ) yyyymm ,
|
||
# MAGIC 0 AS sales_amount,
|
||
# MAGIC sales_amount * 1000000 AS sales_amount_ly
|
||
# MAGIC FROM dwd.dwd_gnd_ext_retail_nataional_ta_top_corp a
|
||
# MAGIC LEFT JOIN (SELECT DISTINCT ZK_Corp_C,CORP_COD FROM dwd.dwd_inc_gnd_retail_b2c_label_total) b
|
||
# MAGIC ON a.corp_desc = b.ZK_Corp_C
|
||
# MAGIC WHERE
|
||
# MAGIC CAST(sales_quarter + 100 AS int )
|
||
# MAGIC <=( SELECT max(CAST(sales_quarter AS int ))
|
||
# MAGIC FROM dwd.dwd_gnd_ext_retail_nataional_ta_top_corp )
|
||
# MAGIC )
|
||
# MAGIC GROUP BY
|
||
# MAGIC 1,2,3,4,5
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %sql
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC -- STEP-3: map to dm.dm_zk_retail_sales
|
||
# MAGIC -- 3.3.2 calculate TA OTHERS
|
||
# MAGIC -- 3.3.2.1 calculate CV_AZ_OTHERS
|
||
# MAGIC -- pack_flag :0-倒减的others 1-不拆的 2-拆的
|
||
# MAGIC -- brand_flag :0-倒减的others 1-买了这个品牌 2-没买这个品牌
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC with tmp_az_total as (
|
||
# MAGIC select
|
||
# MAGIC yyyymm,
|
||
# MAGIC sales_amount,
|
||
# MAGIC sales_amount_ly
|
||
# MAGIC from dws.dws_zk_retail_ta_top_corp
|
||
# MAGIC where source_name='CV'
|
||
# MAGIC AND CORP_COD ='A5Z'
|
||
# MAGIC ), tmp_az_pack_total as (
|
||
# MAGIC select
|
||
# MAGIC a.YYYYMM,
|
||
# MAGIC a.corp_cod,
|
||
# MAGIC sum(a.sales_value) as sales_value ,
|
||
# MAGIC sum(a.sales_value_ly) as sales_value_ly
|
||
# MAGIC from tmp.tmp_retail_dm_zk_retail_sales_final a
|
||
# MAGIC where nvl(a.corp_cod,'') ='A5Z'
|
||
# MAGIC and FLAG = 'CV'
|
||
# MAGIC group by a.YYYYMM,a.corp_cod
|
||
# MAGIC )
|
||
# MAGIC
|
||
# MAGIC insert into table tmp.tmp_retail_dm_zk_retail_sales_final
|
||
# MAGIC
|
||
# MAGIC select
|
||
# MAGIC a.YYYYMM,
|
||
# MAGIC 'CV_AZ_OTHERS' as iqvia_pack_code,
|
||
# MAGIC 'ROC' as AUDIT_COD,
|
||
# MAGIC 'ROC' as province_city,
|
||
# MAGIC a.corp_cod,
|
||
# MAGIC 0 as sales_unit,
|
||
# MAGIC 0 as sales_unit_ly,
|
||
# MAGIC -------------------------* hard_code * -------------------------
|
||
# MAGIC -- 25年没有TA大数,此类数据直接赋值0
|
||
# MAGIC 0, --case when b.sales_amount is not null then b.sales_amount - a.sales_value else 0 end as sales_value,
|
||
# MAGIC 0, --case when b.sales_amount_ly is not null then b.sales_amount_ly - a.sales_value_ly else 0 end as sales_value_ly,
|
||
# MAGIC -------------------------* hard_code * -------------------------
|
||
# MAGIC 0 as counting_unit,
|
||
# MAGIC 0 as counting_unit_ly,
|
||
# MAGIC 'Retail(Quarterly)' as DATA_SOURCE,
|
||
# MAGIC null as source,
|
||
# MAGIC 0 as pack_flag,
|
||
# MAGIC 0 as brand_flag,
|
||
# MAGIC 'CV' as FLAG
|
||
# MAGIC from tmp_az_pack_total a
|
||
# MAGIC left join tmp_az_total b
|
||
# MAGIC on a.YYYYMM = b.yyyymm
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %sql
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC -- STEP-3: map to dm.dm_zk_retail_sales
|
||
# MAGIC -- 3.3.2 calculate TA OTHERS
|
||
# MAGIC -- 3.3.2.2 calculate CV_OTHERS
|
||
# MAGIC -- pack_flag :0-倒减的others 1-不拆的 2-拆的
|
||
# MAGIC -- brand_flag :0-倒减的others 1-买了这个品牌 2-没买这个品牌
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC with tmp_total as (
|
||
# MAGIC select
|
||
# MAGIC yyyymm,
|
||
# MAGIC sales_amount,
|
||
# MAGIC sales_amount_ly
|
||
# MAGIC from dws.dws_zk_retail_ta_top_corp
|
||
# MAGIC where source_name='CV'
|
||
# MAGIC AND rank1 = 'Total'
|
||
# MAGIC ), tmp_pack_total as (
|
||
# MAGIC select
|
||
# MAGIC a.YYYYMM,
|
||
# MAGIC sum(a.sales_value) as sales_value,
|
||
# MAGIC sum(a.sales_value_ly) as sales_value_ly
|
||
# MAGIC from tmp.tmp_retail_dm_zk_retail_sales_final a
|
||
# MAGIC where FLAG = 'CV'
|
||
# MAGIC group by a.YYYYMM
|
||
# MAGIC )
|
||
# MAGIC
|
||
# MAGIC insert into table tmp.tmp_retail_dm_zk_retail_sales_final
|
||
# MAGIC
|
||
# MAGIC select
|
||
# MAGIC a.YYYYMM,
|
||
# MAGIC 'CV_OTHERS' as iqvia_pack_code,
|
||
# MAGIC 'ROC' as AUDIT_COD,
|
||
# MAGIC 'ROC' as province_city,
|
||
# MAGIC 'CV_OTHERS' as corp_cod,
|
||
# MAGIC 0 as sales_unit,
|
||
# MAGIC 0 as sales_unit_ly,
|
||
# MAGIC -------------------------* hard_code * -------------------------
|
||
# MAGIC -- 25年没有TA大数,此类数据直接赋值0
|
||
# MAGIC 0, --case when b.sales_amount is not null then b.sales_amount - a.sales_value else 0 end as sales_value,
|
||
# MAGIC 0, --case when b.sales_amount_ly is not null then b.sales_amount_ly - a.sales_value_ly else 0 end as sales_value_ly,
|
||
# MAGIC -------------------------* hard_code * -------------------------
|
||
# MAGIC 0 as counting_unit,
|
||
# MAGIC 0 as counting_unit_ly,
|
||
# MAGIC 'Retail(Quarterly)' as DATA_SOURCE,
|
||
# MAGIC null as source,
|
||
# MAGIC 0 as pack_flag,
|
||
# MAGIC 0 as brand_flag,
|
||
# MAGIC 'CV' as FLAG
|
||
# MAGIC from tmp_pack_total a
|
||
# MAGIC left join tmp_total b
|
||
# MAGIC on a.YYYYMM = b.yyyymm
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %sql
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC -- STEP-3: map to dm.dm_zk_retail_sales
|
||
# MAGIC -- 3.3.2 calculate TA OTHERS
|
||
# MAGIC -- 3.3.2.3 calculate CVRM_AZ_OTHERS (TODO)
|
||
# MAGIC -- pack_flag :0-倒减的others 1-不拆的 2-拆的
|
||
# MAGIC -- brand_flag :0-倒减的others 1-买了这个品牌 2-没买这个品牌
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC with tmp_az_total as (
|
||
# MAGIC select
|
||
# MAGIC yyyymm,
|
||
# MAGIC sales_amount,
|
||
# MAGIC sales_amount_ly
|
||
# MAGIC from dws.dws_zk_retail_ta_top_corp
|
||
# MAGIC where source_name='CVRM'
|
||
# MAGIC AND CORP_COD ='A5Z'
|
||
# MAGIC ), tmp_az_pack_total as (
|
||
# MAGIC select
|
||
# MAGIC a.YYYYMM,
|
||
# MAGIC a.corp_cod,
|
||
# MAGIC sum(a.sales_value) as sales_value ,
|
||
# MAGIC sum(a.sales_value_ly) as sales_value_ly
|
||
# MAGIC from tmp.tmp_retail_dm_zk_retail_sales_final a
|
||
# MAGIC where nvl(a.corp_cod,'') ='A5Z'
|
||
# MAGIC and FLAG = 'CVRM'
|
||
# MAGIC group by a.YYYYMM,a.corp_cod
|
||
# MAGIC )
|
||
# MAGIC
|
||
# MAGIC insert into table tmp.tmp_retail_dm_zk_retail_sales_final
|
||
# MAGIC
|
||
# MAGIC select
|
||
# MAGIC a.YYYYMM,
|
||
# MAGIC 'CVRM_AZ_OTHERS' as iqvia_pack_code,
|
||
# MAGIC 'ROC' as AUDIT_COD,
|
||
# MAGIC 'ROC' as province_city,
|
||
# MAGIC a.corp_cod,
|
||
# MAGIC 0 as sales_unit,
|
||
# MAGIC 0 as sales_unit_ly,
|
||
# MAGIC -------------------------* hard_code * -------------------------
|
||
# MAGIC -- 25年没有TA大数,此类数据直接赋值0
|
||
# MAGIC 0, --case when b.sales_amount is not null then b.sales_amount - a.sales_value else 0 end as sales_value,
|
||
# MAGIC 0, --case when b.sales_amount_ly is not null then b.sales_amount_ly - a.sales_value_ly else 0 end as sales_value_ly,
|
||
# MAGIC -------------------------* hard_code * -------------------------
|
||
# MAGIC 0 as counting_unit,
|
||
# MAGIC 0 as counting_unit_ly,
|
||
# MAGIC 'Retail(Quarterly)' as DATA_SOURCE,
|
||
# MAGIC null as source,
|
||
# MAGIC 0 as pack_flag,
|
||
# MAGIC 0 as brand_flag,
|
||
# MAGIC 'CVRM' as FLAG
|
||
# MAGIC from tmp_az_pack_total a
|
||
# MAGIC left join tmp_az_total b
|
||
# MAGIC on a.YYYYMM = b.yyyymm
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %sql
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC -- STEP-5: map to dm.dm_zk_retail_sales
|
||
# MAGIC -- 5.3.2 calculate TA OTHERS
|
||
# MAGIC -- 5.3.2.4 calculate CVRM_OTHERS (TODO)
|
||
# MAGIC -- pack_flag :0-倒减的others 1-不拆的 2-拆的
|
||
# MAGIC -- brand_flag :0-倒减的others 1-买了这个品牌 2-没买这个品牌
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC with tmp_total as (
|
||
# MAGIC select
|
||
# MAGIC yyyymm,
|
||
# MAGIC sales_amount,
|
||
# MAGIC sales_amount_ly
|
||
# MAGIC from dws.dws_zk_retail_ta_top_corp
|
||
# MAGIC where source_name='CVRM'
|
||
# MAGIC AND rank1 = 'Total'
|
||
# MAGIC ), tmp_pack_total as (
|
||
# MAGIC select
|
||
# MAGIC a.YYYYMM,
|
||
# MAGIC sum(a.sales_value) as sales_value,
|
||
# MAGIC sum(a.sales_value_ly) as sales_value_ly
|
||
# MAGIC from tmp.tmp_retail_dm_zk_retail_sales_final a
|
||
# MAGIC where FLAG = 'CVRM'
|
||
# MAGIC group by a.YYYYMM
|
||
# MAGIC )
|
||
# MAGIC
|
||
# MAGIC insert into table tmp.tmp_retail_dm_zk_retail_sales_final
|
||
# MAGIC select
|
||
# MAGIC a.YYYYMM,
|
||
# MAGIC 'CVRM_OTHERS' as iqvia_pack_code,
|
||
# MAGIC 'ROC' as AUDIT_COD,
|
||
# MAGIC 'ROC' as province_city,
|
||
# MAGIC 'CV_OTHERS' as corp_cod,
|
||
# MAGIC 0 as sales_unit,
|
||
# MAGIC 0 as sales_unit_ly,
|
||
# MAGIC -------------------------* hard_code * -------------------------
|
||
# MAGIC -- 25年没有TA大数,此类数据直接赋值0
|
||
# MAGIC 0, --case when b.sales_amount is not null then b.sales_amount - a.sales_value else 0 end as sales_value,
|
||
# MAGIC 0, --case when b.sales_amount_ly is not null then b.sales_amount_ly - a.sales_value_ly else 0 end as sales_value_ly,
|
||
# MAGIC -------------------------* hard_code * -------------------------
|
||
# MAGIC 0 as counting_unit,
|
||
# MAGIC 0 as counting_unit_ly,
|
||
# MAGIC 'Retail(Quarterly)' as DATA_SOURCE,
|
||
# MAGIC null as source,
|
||
# MAGIC 0 as pack_flag,
|
||
# MAGIC 0 as brand_flag,
|
||
# MAGIC 'CVRM' as FLAG
|
||
# MAGIC from tmp_pack_total a
|
||
# MAGIC left join tmp_total b
|
||
# MAGIC on a.YYYYMM = b.yyyymm
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %sql
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC -- STEP-5: map to dm.dm_zk_retail_sales
|
||
# MAGIC -- 5.3.3 calculate OTHERS
|
||
# MAGIC -- 5.3.3.1 calculate OTHERS_AZ_TA
|
||
# MAGIC -- pack_flag :0-倒减的others 1-不拆的 2-拆的
|
||
# MAGIC -- brand_flag :0-倒减的others 1-买了这个品牌 2-没买这个品牌
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC with tmp_az_total as (
|
||
# MAGIC select
|
||
# MAGIC yyyymm,
|
||
# MAGIC sales_amount,
|
||
# MAGIC sales_amount_ly
|
||
# MAGIC from dws.dws_zk_retail_top_corp
|
||
# MAGIC where corp_desc = '阿斯利康'
|
||
# MAGIC ), tmp_az_pack_total as (
|
||
# MAGIC select
|
||
# MAGIC a.YYYYMM,
|
||
# MAGIC a.corp_cod,
|
||
# MAGIC sum(a.sales_value) as sales_value ,
|
||
# MAGIC sum(a.sales_value_ly) as sales_value_ly
|
||
# MAGIC from tmp.tmp_retail_dm_zk_retail_sales_final a
|
||
# MAGIC where nvl(a.corp_cod,'') ='A5Z'
|
||
# MAGIC group by a.YYYYMM,a.corp_cod
|
||
# MAGIC )
|
||
# MAGIC
|
||
# MAGIC insert into table tmp.tmp_retail_dm_zk_retail_sales_final
|
||
# MAGIC
|
||
# MAGIC select
|
||
# MAGIC a.YYYYMM,
|
||
# MAGIC 'OTHERS_AZ_TA' as iqvia_pack_code,
|
||
# MAGIC 'ROC' as AUDIT_COD,
|
||
# MAGIC 'ROC' as province_city,
|
||
# MAGIC a.corp_cod,
|
||
# MAGIC 0 as sales_unit,
|
||
# MAGIC 0 as sales_unit_ly,
|
||
# MAGIC case when b.sales_amount is not null then b.sales_amount - a.sales_value else 0 end as sales_value,
|
||
# MAGIC case when b.sales_amount_ly is not null then b.sales_amount_ly - a.sales_value_ly else 0 end as sales_value_ly,
|
||
# MAGIC 0 as counting_unit,
|
||
# MAGIC 0 as counting_unit_ly,
|
||
# MAGIC 'Retail(Quarterly)' as DATA_SOURCE,
|
||
# MAGIC null as source,
|
||
# MAGIC 0 as pack_flag,
|
||
# MAGIC 0 as brand_flag,
|
||
# MAGIC 'TA_AZ' as FLAG
|
||
# MAGIC from tmp_az_pack_total a
|
||
# MAGIC left join tmp_az_total b
|
||
# MAGIC on a.YYYYMM = b.yyyymm
|
||
# MAGIC
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %sql
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC -- STEP-5: map to dm.dm_zk_retail_sales
|
||
# MAGIC -- 5.3.3 calculate OTHERS
|
||
# MAGIC -- 5.3.3.2 calculate OTHERS_TA
|
||
# MAGIC -- pack_flag :0-倒减的others 1-不拆的 2-拆的
|
||
# MAGIC -- brand_flag :0-倒减的others 1-买了这个品牌 2-没买这个品牌
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC with tmp_total as (
|
||
# MAGIC select
|
||
# MAGIC yyyymm,
|
||
# MAGIC sales_amount,
|
||
# MAGIC sales_amount_ly
|
||
# MAGIC from dws.dws_zk_retail_top_corp
|
||
# MAGIC where rank1 = 'Total'
|
||
# MAGIC ), tmp_pack_total as (
|
||
# MAGIC select
|
||
# MAGIC a.YYYYMM,
|
||
# MAGIC sum(a.sales_value) as sales_value,
|
||
# MAGIC sum(a.sales_value_ly) as sales_value_ly
|
||
# MAGIC from tmp.tmp_retail_dm_zk_retail_sales_final a
|
||
# MAGIC group by a.YYYYMM
|
||
# MAGIC )
|
||
# MAGIC
|
||
# MAGIC insert into table tmp.tmp_retail_dm_zk_retail_sales_final
|
||
# MAGIC
|
||
# MAGIC select
|
||
# MAGIC a.YYYYMM,
|
||
# MAGIC 'OTHERS_TA' as iqvia_pack_code,
|
||
# MAGIC 'ROC' as AUDIT_COD,
|
||
# MAGIC 'ROC' as province_city,
|
||
# MAGIC 'OTHERS_TA' as corp_cod,
|
||
# MAGIC 0 as sales_unit,
|
||
# MAGIC 0 as sales_unit_ly,
|
||
# MAGIC case when b.sales_amount is not null then b.sales_amount - a.sales_value else 0 end as sales_value,
|
||
# MAGIC case when b.sales_amount_ly is not null then b.sales_amount_ly - a.sales_value_ly else 0 end as sales_value_ly,
|
||
# MAGIC 0 as counting_unit,
|
||
# MAGIC 0 as counting_unit_ly,
|
||
# MAGIC 'Retail(Quarterly)' as DATA_SOURCE,
|
||
# MAGIC null as source,
|
||
# MAGIC 0 as pack_flag,
|
||
# MAGIC 0 as brand_flag,
|
||
# MAGIC 'OTHERS_TA' as FLAG
|
||
# MAGIC from tmp_pack_total a
|
||
# MAGIC left join tmp_total b
|
||
# MAGIC on a.YYYYMM = b.yyyymm
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %md
|
||
# MAGIC ### 3.3 映射到DM最终表
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %sql
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC -- STEP-3: map to dm.dm_zk_retail_sales
|
||
# MAGIC -- 3.4 write into final table: dm.dm_zk_retail_sales
|
||
# MAGIC -- pack_flag :0-倒减的others 1-不拆的 2-拆的
|
||
# MAGIC -- brand_flag :0-倒减的others 1-买了这个品牌 2-没买这个品牌
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC insert overwrite table dm.dm_zk_retail_sales
|
||
# MAGIC
|
||
# MAGIC select
|
||
# MAGIC yyyymm,
|
||
# MAGIC iqvia_pack_code,
|
||
# MAGIC AUDIT_COD,
|
||
# MAGIC province_city,
|
||
# MAGIC corp_cod,
|
||
# MAGIC sales_unit,
|
||
# MAGIC sales_unit_ly,
|
||
# MAGIC sales_value,
|
||
# MAGIC sales_value_ly,
|
||
# MAGIC counting_unit,
|
||
# MAGIC counting_unit_ly,
|
||
# MAGIC DATA_SOURCE,
|
||
# MAGIC source,
|
||
# MAGIC pack_flag,
|
||
# MAGIC brand_flag,
|
||
# MAGIC FLAG,
|
||
# MAGIC from_utc_timestamp(current_timestamp(),'UTC+8') etl_insert_dt,
|
||
# MAGIC from_utc_timestamp(current_timestamp(),'UTC+8') etl_update_dt
|
||
# MAGIC from tmp.tmp_retail_dm_zk_retail_sales_final
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %md
|
||
# MAGIC ### 3.4 补充新增的OTHERS数据到配置表中
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %sql
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC -- STEP-3: map to dm.dm_zk_retail_sales
|
||
# MAGIC -- 3.5 将倒减的OTHERS数据补充到配置表中
|
||
# MAGIC -- pack_flag :0-倒减的others 1-不拆的 2-拆的
|
||
# MAGIC -- brand_flag :0-倒减的others 1-买了这个品牌 2-没买这个品牌
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC
|
||
# MAGIC insert overwrite table dws.dws_zk_retail_pack_property
|
||
# MAGIC (
|
||
# MAGIC iqvia_lineno,
|
||
# MAGIC iqvia_pack_code,
|
||
# MAGIC PROD_COD,
|
||
# MAGIC iqvia_notes,
|
||
# MAGIC new_pack_flag,
|
||
# MAGIC is_exists_chpa,
|
||
# MAGIC product_id,
|
||
# MAGIC prescription_nature,
|
||
# MAGIC medicine_type,
|
||
# MAGIC zk_medicine_tier1,
|
||
# MAGIC zk_medicine_tier2,
|
||
# MAGIC zk_medicine_tier3,
|
||
# MAGIC zk_medicine_tier4,
|
||
# MAGIC common_name,
|
||
# MAGIC dosage_form,
|
||
# MAGIC user_type,
|
||
# MAGIC category_name,
|
||
# MAGIC product_name,
|
||
# MAGIC brand_name,
|
||
# MAGIC zk_manu_des,
|
||
# MAGIC zk_corp_des,
|
||
# MAGIC zk_pack_des,
|
||
# MAGIC counting_unit_a,
|
||
# MAGIC dosage_unit_a,
|
||
# MAGIC unit_a,
|
||
# MAGIC app1_cod,
|
||
# MAGIC app1_des,
|
||
# MAGIC app1_des_c,
|
||
# MAGIC app2_cod,
|
||
# MAGIC app2_des,
|
||
# MAGIC app2_des_c,
|
||
# MAGIC app3_cod,
|
||
# MAGIC app3_des,
|
||
# MAGIC app3_des_c,
|
||
# MAGIC atc1_cod,
|
||
# MAGIC atc1_des,
|
||
# MAGIC atc1_des_c,
|
||
# MAGIC atc2_cod,
|
||
# MAGIC atc2_des,
|
||
# MAGIC atc2_des_c,
|
||
# MAGIC atc3_cod,
|
||
# MAGIC atc3_des,
|
||
# MAGIC atc3_des_c,
|
||
# MAGIC atc4_cod,
|
||
# MAGIC atc4_des,
|
||
# MAGIC atc4_des_c,
|
||
# MAGIC bio_desc,
|
||
# MAGIC cmps_cod,
|
||
# MAGIC cmps_des,
|
||
# MAGIC cmps_des_c,
|
||
# MAGIC corp_cod,
|
||
# MAGIC corp_des,
|
||
# MAGIC corp_des_c,
|
||
# MAGIC edl_desc,
|
||
# MAGIC eth_otc_desc,
|
||
# MAGIC gene_orig_desc,
|
||
# MAGIC gqce_desc,
|
||
# MAGIC manu_cod,
|
||
# MAGIC manu_des,
|
||
# MAGIC manu_des_c,
|
||
# MAGIC mnfl_cod,
|
||
# MAGIC mnfl_des,
|
||
# MAGIC nrdl_desc,
|
||
# MAGIC pack_des,
|
||
# MAGIC stgh_des,
|
||
# MAGIC pack_lch,
|
||
# MAGIC paed_desc,
|
||
# MAGIC prod_des,
|
||
# MAGIC prod_des_c,
|
||
# MAGIC tcm_desc,
|
||
# MAGIC vbp_desc,
|
||
# MAGIC unit,
|
||
# MAGIC counting_unit,
|
||
# MAGIC dosage_unit,
|
||
# MAGIC NRDL_ENTRY_DATE,
|
||
# MAGIC market,
|
||
# MAGIC bu,
|
||
# MAGIC extend_market_ratio,
|
||
# MAGIC is_az,
|
||
# MAGIC etl_insert_dt,
|
||
# MAGIC etl_update_dt
|
||
# MAGIC )
|
||
# MAGIC select
|
||
# MAGIC iqvia_lineno,
|
||
# MAGIC iqvia_pack_code,
|
||
# MAGIC PROD_COD,
|
||
# MAGIC iqvia_notes,
|
||
# MAGIC new_pack_flag,
|
||
# MAGIC is_exists_chpa,
|
||
# MAGIC product_id,
|
||
# MAGIC prescription_nature,
|
||
# MAGIC medicine_type,
|
||
# MAGIC zk_medicine_tier1,
|
||
# MAGIC zk_medicine_tier2,
|
||
# MAGIC zk_medicine_tier3,
|
||
# MAGIC zk_medicine_tier4,
|
||
# MAGIC common_name,
|
||
# MAGIC dosage_form,
|
||
# MAGIC user_type,
|
||
# MAGIC category_name,
|
||
# MAGIC product_name,
|
||
# MAGIC brand_name,
|
||
# MAGIC zk_manu_des,
|
||
# MAGIC zk_corp_des,
|
||
# MAGIC zk_pack_des,
|
||
# MAGIC counting_unit_a,
|
||
# MAGIC dosage_unit_a,
|
||
# MAGIC unit_a,
|
||
# MAGIC app1_cod,
|
||
# MAGIC app1_des,
|
||
# MAGIC app1_des_c,
|
||
# MAGIC app2_cod,
|
||
# MAGIC app2_des,
|
||
# MAGIC app2_des_c,
|
||
# MAGIC app3_cod,
|
||
# MAGIC app3_des,
|
||
# MAGIC app3_des_c,
|
||
# MAGIC atc1_cod,
|
||
# MAGIC atc1_des,
|
||
# MAGIC atc1_des_c,
|
||
# MAGIC atc2_cod,
|
||
# MAGIC atc2_des,
|
||
# MAGIC atc2_des_c,
|
||
# MAGIC atc3_cod,
|
||
# MAGIC atc3_des,
|
||
# MAGIC atc3_des_c,
|
||
# MAGIC atc4_cod,
|
||
# MAGIC atc4_des,
|
||
# MAGIC atc4_des_c,
|
||
# MAGIC bio_desc,
|
||
# MAGIC cmps_cod,
|
||
# MAGIC cmps_des,
|
||
# MAGIC cmps_des_c,
|
||
# MAGIC corp_cod,
|
||
# MAGIC corp_des,
|
||
# MAGIC corp_des_c,
|
||
# MAGIC edl_desc,
|
||
# MAGIC eth_otc_desc,
|
||
# MAGIC gene_orig_desc,
|
||
# MAGIC gqce_desc,
|
||
# MAGIC manu_cod,
|
||
# MAGIC manu_des,
|
||
# MAGIC manu_des_c,
|
||
# MAGIC mnfl_cod,
|
||
# MAGIC mnfl_des,
|
||
# MAGIC nrdl_desc,
|
||
# MAGIC pack_des,
|
||
# MAGIC stgh_des,
|
||
# MAGIC pack_lch,
|
||
# MAGIC paed_desc,
|
||
# MAGIC prod_des,
|
||
# MAGIC prod_des_c,
|
||
# MAGIC tcm_desc,
|
||
# MAGIC vbp_desc,
|
||
# MAGIC unit,
|
||
# MAGIC counting_unit,
|
||
# MAGIC dosage_unit,
|
||
# MAGIC NRDL_ENTRY_DATE,
|
||
# MAGIC market,
|
||
# MAGIC bu,
|
||
# MAGIC extend_market_ratio,
|
||
# MAGIC is_az,
|
||
# MAGIC from_utc_timestamp(current_timestamp(),'UTC+8') etl_insert_dt
|
||
# MAGIC ,from_utc_timestamp(current_timestamp(),'UTC+8') etl_update_dt
|
||
# MAGIC from tmp.tmp_zk_retail_pack_property
|
||
# MAGIC union all
|
||
# MAGIC ------事实表中倒减出来的pack 需要补充到配置表中
|
||
# MAGIC select
|
||
# MAGIC '' iqvia_lineno
|
||
# MAGIC ,iqvia_pack_code
|
||
# MAGIC ,'' prod_cod
|
||
# MAGIC ,'' iqvia_notes
|
||
# MAGIC ,'' new_pack_flag
|
||
# MAGIC ,'' Is_exists_chpa
|
||
# MAGIC ,iqvia_pack_code product_id
|
||
# MAGIC ,'' prescription_nature
|
||
# MAGIC ,'' medicine_type
|
||
# MAGIC ,'' zk_medicine_tier1
|
||
# MAGIC ,'' zk_medicine_tier2
|
||
# MAGIC ,'' zk_medicine_tier3
|
||
# MAGIC ,'' zk_medicine_tier4
|
||
# MAGIC ,'' common_name
|
||
# MAGIC ,'' dosage_form
|
||
# MAGIC ,'' user_type
|
||
# MAGIC ,'' category_name
|
||
# MAGIC ,'' product_name
|
||
# MAGIC ,'' brand_name
|
||
# MAGIC ,'' zk_manu_des
|
||
# MAGIC ,'' zk_corp_des
|
||
# MAGIC ,'' zk_pack_des
|
||
# MAGIC ,'' counting_unit_a
|
||
# MAGIC ,'' dosage_unit_a
|
||
# MAGIC ,'' unit_a
|
||
# MAGIC ,'' app1_cod
|
||
# MAGIC ,'' app1_des
|
||
# MAGIC ,'' app1_des_c
|
||
# MAGIC ,'' app2_cod
|
||
# MAGIC ,'' app2_des
|
||
# MAGIC ,'' app2_des_c
|
||
# MAGIC ,'' app3_cod
|
||
# MAGIC ,'' app3_des
|
||
# MAGIC ,'' app3_des_c
|
||
# MAGIC ,'' atc1_cod
|
||
# MAGIC ,'' atc1_des
|
||
# MAGIC ,'' atc1_des_c
|
||
# MAGIC ,'' atc2_cod
|
||
# MAGIC ,'' atc2_des
|
||
# MAGIC ,'' atc2_des_c
|
||
# MAGIC ,'' atc3_cod
|
||
# MAGIC
|
||
# MAGIC ,'' atc3_des
|
||
# MAGIC ,'' atc3_des_c
|
||
# MAGIC ,'' atc4_cod
|
||
# MAGIC ,'' atc4_des
|
||
# MAGIC ,'' atc4_des_c
|
||
# MAGIC ,'' bio_desc
|
||
# MAGIC ,'' cmps_cod
|
||
# MAGIC ,'' cmps_des
|
||
# MAGIC ,'' cmps_des_c
|
||
# MAGIC ,corp_cod corp_cod
|
||
# MAGIC ,'' corp_des
|
||
# MAGIC ,'' corp_des_c
|
||
# MAGIC ,'' edl_desc
|
||
# MAGIC ,'' eth_otc_desc
|
||
# MAGIC ,'' gene_orig_desc
|
||
# MAGIC ,'' gqce_desc
|
||
# MAGIC ,'' manu_cod
|
||
# MAGIC ,'' manu_des
|
||
# MAGIC ,'' manu_des_c
|
||
# MAGIC ,'' mnfl_cod
|
||
# MAGIC ,'' mnfl_des
|
||
# MAGIC ,'' nrdl_desc
|
||
# MAGIC ,'' pack_des
|
||
# MAGIC ,'' stgh_des
|
||
# MAGIC ,'' pack_lch
|
||
# MAGIC ,'' paed_desc
|
||
# MAGIC ,'Others' prod_des
|
||
# MAGIC ,'Others' prod_des_c
|
||
# MAGIC ,'' tcm_desc
|
||
# MAGIC ,'' vbp_desc
|
||
# MAGIC ,'' unit
|
||
# MAGIC ,'' counting_unit
|
||
# MAGIC ,'' dosage_unit
|
||
# MAGIC ,'' NRDL_ENTRY_DATE
|
||
# MAGIC ,'Non AZ Retail Related Market' market
|
||
# MAGIC ,'' bu
|
||
# MAGIC ,1 extend_market_ratio
|
||
# MAGIC ,CASE WHEN iqvia_pack_code LIKE '%AZ%' THEN 'Y' ELSE 'N' END is_az
|
||
# MAGIC ,from_utc_timestamp(current_timestamp(),'UTC+8') etl_insert_dt
|
||
# MAGIC ,from_utc_timestamp(current_timestamp(),'UTC+8') etl_update_dt
|
||
# MAGIC from (
|
||
# MAGIC select distinct iqvia_pack_code,corp_cod
|
||
# MAGIC from DM.dm_zk_retail_sales
|
||
# MAGIC where iqvia_pack_code not in (select distinct iqvia_pack_code from tmp.tmp_zk_retail_pack_property)
|
||
# MAGIC )
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %md
|
||
# MAGIC ## STEP-4: map to dm.dm_zk_retail_pack_property
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %md
|
||
# MAGIC ### 4.1 对公司归属从新划分
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %sql
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC -- STEP-4: map to dm.dm_zk_retail_pack_property
|
||
# MAGIC -- 4.1 对公司归属从新划分
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC insert overwrite table tmp.tmp_dm_zk_retail_pack_property
|
||
# MAGIC (
|
||
# MAGIC iqvia_lineno,
|
||
# MAGIC iqvia_pack_code,
|
||
# MAGIC PROD_COD,
|
||
# MAGIC iqvia_notes,
|
||
# MAGIC new_pack_flag,
|
||
# MAGIC is_exists_chpa,
|
||
# MAGIC product_id,
|
||
# MAGIC prescription_nature,
|
||
# MAGIC medicine_type,
|
||
# MAGIC zk_medicine_tier1,
|
||
# MAGIC zk_medicine_tier2,
|
||
# MAGIC zk_medicine_tier3,
|
||
# MAGIC zk_medicine_tier4,
|
||
# MAGIC common_name,
|
||
# MAGIC dosage_form,
|
||
# MAGIC user_type,
|
||
# MAGIC category_name,
|
||
# MAGIC product_name,
|
||
# MAGIC brand_name,
|
||
# MAGIC zk_manu_des,
|
||
# MAGIC zk_corp_des,
|
||
# MAGIC zk_pack_des,
|
||
# MAGIC counting_unit_a,
|
||
# MAGIC dosage_unit_a,
|
||
# MAGIC unit_a,
|
||
# MAGIC app1_cod,
|
||
# MAGIC app1_des,
|
||
# MAGIC app1_des_c,
|
||
# MAGIC app2_cod,
|
||
# MAGIC app2_des,
|
||
# MAGIC app2_des_c,
|
||
# MAGIC app3_cod,
|
||
# MAGIC app3_des,
|
||
# MAGIC app3_des_c,
|
||
# MAGIC atc1_cod,
|
||
# MAGIC atc1_des,
|
||
# MAGIC atc1_des_c,
|
||
# MAGIC atc2_cod,
|
||
# MAGIC atc2_des,
|
||
# MAGIC atc2_des_c,
|
||
# MAGIC atc3_cod,
|
||
# MAGIC atc3_des,
|
||
# MAGIC atc3_des_c,
|
||
# MAGIC atc4_cod,
|
||
# MAGIC atc4_des,
|
||
# MAGIC atc4_des_c,
|
||
# MAGIC bio_desc,
|
||
# MAGIC cmps_cod,
|
||
# MAGIC cmps_des,
|
||
# MAGIC cmps_des_c,
|
||
# MAGIC corp_cod,
|
||
# MAGIC corp_des,
|
||
# MAGIC corp_des_c,
|
||
# MAGIC edl_desc,
|
||
# MAGIC eth_otc_desc,
|
||
# MAGIC gene_orig_desc,
|
||
# MAGIC gqce_desc,
|
||
# MAGIC manu_cod,
|
||
# MAGIC manu_des,
|
||
# MAGIC manu_des_c,
|
||
# MAGIC mnfl_cod,
|
||
# MAGIC mnfl_des,
|
||
# MAGIC nrdl_desc,
|
||
# MAGIC pack_des,
|
||
# MAGIC stgh_des,
|
||
# MAGIC pack_lch,
|
||
# MAGIC paed_desc,
|
||
# MAGIC prod_des,
|
||
# MAGIC prod_des_c,
|
||
# MAGIC tcm_desc,
|
||
# MAGIC vbp_desc,
|
||
# MAGIC unit,
|
||
# MAGIC counting_unit,
|
||
# MAGIC dosage_unit,
|
||
# MAGIC NRDL_ENTRY_DATE,
|
||
# MAGIC MARKET,
|
||
# MAGIC bu,
|
||
# MAGIC extend_market_ratio,
|
||
# MAGIC is_az
|
||
# MAGIC )
|
||
# MAGIC select distinct
|
||
# MAGIC a.iqvia_lineno
|
||
# MAGIC ,a.iqvia_pack_code
|
||
# MAGIC ,a.PROD_COD
|
||
# MAGIC ,a.iqvia_notes
|
||
# MAGIC ,a.new_pack_flag
|
||
# MAGIC ,a.is_exists_chpa
|
||
# MAGIC ,a.product_id
|
||
# MAGIC ,a.prescription_nature
|
||
# MAGIC ,a.medicine_type
|
||
# MAGIC ,a.zk_medicine_tier1
|
||
# MAGIC ,a.zk_medicine_tier2
|
||
# MAGIC ,a.zk_medicine_tier3
|
||
# MAGIC ,a.zk_medicine_tier4
|
||
# MAGIC ,a.common_name
|
||
# MAGIC ,a.dosage_form
|
||
# MAGIC ,a.user_type
|
||
# MAGIC ,a.category_name
|
||
# MAGIC ,a.product_name
|
||
# MAGIC ,a.brand_name
|
||
# MAGIC ,a.zk_manu_des
|
||
# MAGIC ,a.zk_corp_des
|
||
# MAGIC ,a.zk_pack_des
|
||
# MAGIC ,a.counting_unit_a
|
||
# MAGIC ,a.dosage_unit_a
|
||
# MAGIC ,a.unit_a
|
||
# MAGIC ,a.app1_cod
|
||
# MAGIC ,a.app1_des
|
||
# MAGIC ,a.app1_des_c
|
||
# MAGIC ,a.app2_cod
|
||
# MAGIC ,a.app2_des
|
||
# MAGIC ,a.app2_des_c
|
||
# MAGIC ,a.app3_cod
|
||
# MAGIC ,a.app3_des
|
||
# MAGIC ,a.app3_des_c
|
||
# MAGIC ,a.atc1_cod
|
||
# MAGIC ,a.atc1_des
|
||
# MAGIC ,a.atc1_des_c
|
||
# MAGIC ,a.atc2_cod
|
||
# MAGIC ,a.atc2_des
|
||
# MAGIC ,a.atc2_des_c
|
||
# MAGIC ,a.atc3_cod
|
||
# MAGIC ,a.atc3_des
|
||
# MAGIC ,a.atc3_des_c
|
||
# MAGIC ,a.atc4_cod
|
||
# MAGIC ,a.atc4_des
|
||
# MAGIC ,a.atc4_des_c
|
||
# MAGIC ,a.bio_desc
|
||
# MAGIC ,a.cmps_cod
|
||
# MAGIC ,a.cmps_des
|
||
# MAGIC ,a.cmps_des_c
|
||
# MAGIC ,COALESCE(c.corp_cod,b.corp_cod,a.corp_cod) corp_cod
|
||
# MAGIC ,COALESCE(c.corp_des,b.corp_des,a.corp_des) corp_des
|
||
# MAGIC ,COALESCE(d.corp_des_c,a.corp_des_c ) corp_des_c
|
||
# MAGIC ,a.edl_desc
|
||
# MAGIC ,a.eth_otc_desc
|
||
# MAGIC ,a.gene_orig_desc
|
||
# MAGIC ,a.gqce_desc
|
||
# MAGIC ,COALESCE(c.manu_cod,b.manu_cod,a.manu_cod) manu_cod
|
||
# MAGIC ,COALESCE(c.manu_des,b.manu_des,a.manu_des) manu_des
|
||
# MAGIC ,COALESCE(e.manu_des_c,a.manu_des_c) manu_des_c
|
||
# MAGIC ,a.mnfl_cod
|
||
# MAGIC ,a.mnfl_des
|
||
# MAGIC ,a.nrdl_desc
|
||
# MAGIC ,a.pack_des
|
||
# MAGIC ,a.stgh_des
|
||
# MAGIC ,a.pack_lch
|
||
# MAGIC ,a.paed_desc
|
||
# MAGIC ,a.prod_des
|
||
# MAGIC ,a.prod_des_c
|
||
# MAGIC ,a.tcm_desc
|
||
# MAGIC ,a.vbp_desc
|
||
# MAGIC ,a.unit
|
||
# MAGIC ,a.counting_unit
|
||
# MAGIC ,a.dosage_unit
|
||
# MAGIC ,a.NRDL_ENTRY_DATE
|
||
# MAGIC ,A.MARKET
|
||
# MAGIC ,a.bu
|
||
# MAGIC ,a.extend_market_ratio
|
||
# MAGIC ,a.is_az
|
||
# MAGIC from dws.dws_zk_retail_pack_property a
|
||
# MAGIC left join (
|
||
# MAGIC select
|
||
# MAGIC ----------------------------------------------
|
||
# MAGIC -- format prod_cod
|
||
# MAGIC case when length(prod_cod) < 9 then right(concat('000000000',prod_cod),9) else prod_cod end as prod_cod,
|
||
# MAGIC ----------------------------------------------
|
||
# MAGIC corp_cod,corp_des,
|
||
# MAGIC right(concat('000000',manu_cod ),6) manu_cod,
|
||
# MAGIC manu_des
|
||
# MAGIC from dwd.dwd_gnd_tbl_corp_change
|
||
# MAGIC where pack_cod is null
|
||
# MAGIC ) b on a.prod_cod = b.prod_cod
|
||
# MAGIC left join (
|
||
# MAGIC select
|
||
# MAGIC ----------------------------------------------
|
||
# MAGIC -- format pack_cod
|
||
# MAGIC case when length(trim(pack_cod)) < 12 and trim(pack_cod) REGEXP '^[0-9]' then right(concat('000000000000',trim(pack_cod)),12) else trim(pack_cod) end as pack_cod,
|
||
# MAGIC ----------------------------------------------
|
||
# MAGIC corp_cod,
|
||
# MAGIC corp_des,
|
||
# MAGIC right(concat('000000',manu_cod ),6) manu_cod,
|
||
# MAGIC manu_des
|
||
# MAGIC from dwd.dwd_gnd_tbl_corp_change
|
||
# MAGIC where pack_cod is not null
|
||
# MAGIC ) c on a.iqvia_pack_code = c.pack_cod
|
||
# MAGIC left join (
|
||
# MAGIC select distinct corp_cod,corp_des_c from dwd.dwd_gnd_ext_retail_pack_property
|
||
# MAGIC ) d on coalesce(C.corp_cod,B.corp_cod ) = d.corp_cod
|
||
# MAGIC Left join (
|
||
# MAGIC select
|
||
# MAGIC distinct
|
||
# MAGIC right(concat('000000',manu_cod ),6) manu_cod,
|
||
# MAGIC manu_des,
|
||
# MAGIC manu_des_c
|
||
# MAGIC from dwd.dwd_gnd_ext_retail_pack_property
|
||
# MAGIC ) e On coalesce(C.manu_cod,B.manu_cod ) = e.manu_cod
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %md
|
||
# MAGIC ### 4.2 获取pack market的对应关系
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %sql
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC -- STEP-4: map to dm.dm_zk_retail_pack_property
|
||
# MAGIC -- 4.2 获取pack market的对应关系
|
||
# MAGIC -- 4.2.1 从底表获取market 与ta 对应关系
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC insert overwrite table dws.dws_ext_retail_td_ta
|
||
# MAGIC select
|
||
# MAGIC market,
|
||
# MAGIC ta,
|
||
# MAGIC from_utc_timestamp(current_timestamp(),'UTC+8') etl_insert_dt,
|
||
# MAGIC from_utc_timestamp(current_timestamp(),'UTC+8') etl_update_dt
|
||
# MAGIC from dwd.dwd_gnd_ext_retail_dim_ta;
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %sql
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC -- STEP-4: map to dm.dm_zk_retail_pack_property
|
||
# MAGIC -- 4.2 获取pack market的对应关系
|
||
# MAGIC -- 4.2.2 获取pack market的对应关系, 映射到dm
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC INSERT OVERWRITE table dm.dm_zk_retail_pack_property
|
||
# MAGIC SELECT
|
||
# MAGIC MARKET_PACK_KEY
|
||
# MAGIC ,iqvia_pack_code iqvia_pack_code
|
||
# MAGIC ,MAX(pack_des) pack_des
|
||
# MAGIC ,MAX(stgh_des) stgh_des
|
||
# MAGIC ,MAX(pack_lch) pack_lch
|
||
# MAGIC ,MAX(Family_Code) Family_Code
|
||
# MAGIC ,MAX(Family_Name) Family_Name
|
||
# MAGIC ,MAX(iqvia_prod_code) iqvia_prod_code
|
||
# MAGIC ,MAX(prod_des) prod_des
|
||
# MAGIC ,MAX(prod_des_c) prod_des_c
|
||
# MAGIC ,MAX(cmps_cod) cmps_cod
|
||
# MAGIC ,MAX(CMPS_DES) CMPS_DES
|
||
# MAGIC ,MAX(cmps_des_c) cmps_des_c
|
||
# MAGIC ,MAX(atc1_cod) atc1_cod
|
||
# MAGIC ,MAX(atc2_cod) atc2_cod
|
||
# MAGIC ,MAX(atc3_cod) atc3_cod
|
||
# MAGIC ,MAX(atc4_cod) atc4_cod
|
||
# MAGIC ,MAX(APP1_COD) APP1_COD
|
||
# MAGIC ,MAX(APP2_COD) APP2_COD
|
||
# MAGIC ,MAX(APP3_COD) APP3_COD
|
||
# MAGIC ,MAX(BIO_DESC) BIO_DESC
|
||
# MAGIC ,MAX(gene_orig_desc) gene_orig_desc
|
||
# MAGIC ,MAX(ETH_OTC_DESC) ETH_OTC_DESC
|
||
# MAGIC ,MAX(nrdl_desc) nrdl_desc
|
||
# MAGIC ,MAX(NRDL_ENTRY_DATE) NRDL_ENTRY_DATE
|
||
# MAGIC ,MAX(edl_desc) edl_desc
|
||
# MAGIC ,MAX(TCM_DESC) TCM_DESC
|
||
# MAGIC ,MAX(PAED_DESC) PAED_DESC
|
||
# MAGIC ,MAX(GQCE_DESC) GQCE_DESC
|
||
# MAGIC ,MAX(VBP_DESC) VBP_DESC
|
||
# MAGIC ,MAX(MANU_COD) MANU_COD
|
||
# MAGIC ,MAX(MANU_DES) MANU_DES
|
||
# MAGIC ,MAX(MANU_DES_C) MANU_DES_C
|
||
# MAGIC ,MAX(MNFL_COD) MNFL_COD
|
||
# MAGIC ,MAX(MNFL_DES) MNFL_DES
|
||
# MAGIC ,MAX(corp_cod) corp_cod
|
||
# MAGIC ,MAX(corp_des) corp_des
|
||
# MAGIC ,MAX(CORP_DES_C) CORP_DES_C
|
||
# MAGIC ,MAX(BrandType) BrandType
|
||
# MAGIC ,MAX(market) market
|
||
# MAGIC ,MAX(KEY_COMPETITOR) KEY_COMPETITOR
|
||
# MAGIC ,MAX(is_az) is_az
|
||
# MAGIC ,MAX(AZ_MAIN) AZ_MAIN
|
||
# MAGIC ,MAX(AZ_Related) AZ_Related
|
||
# MAGIC ,MAX(atc1_des) atc1_des
|
||
# MAGIC ,MAX(atc1_des_c) atc1_des_c
|
||
# MAGIC ,MAX(atc2_des) atc2_des
|
||
# MAGIC ,MAX(atc2_des_c) atc2_des_c
|
||
# MAGIC ,MAX(atc3_des) atc3_des
|
||
# MAGIC ,MAX(atc3_des_c) atc3_des_c
|
||
# MAGIC ,MAX(atc4_des) atc4_des
|
||
# MAGIC ,MAX(atc4_des_c) atc4_des_c
|
||
# MAGIC ,MAX(app1_des) app1_des
|
||
# MAGIC ,MAX(app1_des_c) app1_des_c
|
||
# MAGIC ,MAX(app2_des) app2_des
|
||
# MAGIC ,MAX(app2_des_c) app2_des_c
|
||
# MAGIC ,MAX(app3_des) app3_des
|
||
# MAGIC ,MAX(app3_des_c) app3_des_c
|
||
# MAGIC ,MAX(class) class
|
||
# MAGIC ,MAX(TA) TA
|
||
# MAGIC FROM (
|
||
# MAGIC select
|
||
# MAGIC distinct
|
||
# MAGIC CASE when a.iqvia_pack_code IN ('CVRM_AZ_OTHERS','CVRM_OTHERS') THEN 'CVRM_OTHER Market'
|
||
# MAGIC WHEN a.iqvia_pack_code IN ('CV_AZ_OTHERS','CV_OTHERS') THEN 'CV_OTHER Market'
|
||
# MAGIC WHEN A.iqvia_pack_code IN ('OTHERS_AZ_TA','OTHERS_TA') THEN 'OTHERS Market'
|
||
# MAGIC ELSE a.market
|
||
# MAGIC END ||'_'||a.iqvia_pack_code MARKET_PACK_KEY
|
||
# MAGIC ,a.iqvia_pack_code
|
||
# MAGIC ,c.pack_des
|
||
# MAGIC ,c.stgh_des
|
||
# MAGIC ,c.pack_lch
|
||
# MAGIC ,'' Family_Code
|
||
# MAGIC ,'' Family_Name
|
||
# MAGIC ,c.iqvia_prod_code
|
||
# MAGIC ,case when c.iqvia_pack_code like '%O%' THEN 'Others' else c.prod_des end prod_des
|
||
# MAGIC ,case when c.iqvia_pack_code like '%O%' THEN 'Others' else c.prod_des_c end prod_des_c
|
||
# MAGIC ,c.cmps_cod
|
||
# MAGIC ,c.CMPS_DES
|
||
# MAGIC ,c.cmps_des_c
|
||
# MAGIC ,c.atc1_cod
|
||
# MAGIC ,c.atc2_cod
|
||
# MAGIC ,c.atc3_cod
|
||
# MAGIC ,c.atc4_cod
|
||
# MAGIC ,c.APP1_COD
|
||
# MAGIC ,c.APP2_COD
|
||
# MAGIC ,c.APP3_COD
|
||
# MAGIC ,c.BIO_DESC
|
||
# MAGIC ,c.gene_orig_desc
|
||
# MAGIC ,c.ETH_OTC_DESC
|
||
# MAGIC ,c.nrdl_desc
|
||
# MAGIC ,nvl(MOLE.NRDL_Entry_Date,'') AS NRDL_ENTRY_DATE
|
||
# MAGIC ,c.edl_desc
|
||
# MAGIC ,c.TCM_DESC
|
||
# MAGIC ,c.PAED_DESC
|
||
# MAGIC ,c.GQCE_DESC
|
||
# MAGIC ,c.VBP_DESC
|
||
# MAGIC ,a.MANU_COD
|
||
# MAGIC ,a.MANU_DES
|
||
# MAGIC ,a.MANU_DES_C
|
||
# MAGIC ,c.MNFL_COD
|
||
# MAGIC ,c.MNFL_DES
|
||
# MAGIC ,CASE WHEN A.iqvia_pack_code LIKE '%AZ%' THEN 'A5Z' else a.CORP_COD END as corp_cod
|
||
# MAGIC ,CASE WHEN A.iqvia_pack_code LIKE '%AZ%' THEN 'ASTRAZENECA' else case when a.CORP_DES like '% GROUP%' THEN replace(a.CORP_DES ,' GROUP','' ) ELSE a.CORP_DES END END as corp_des
|
||
# MAGIC ,CASE WHEN A.iqvia_pack_code LIKE '%AZ%' THEN '阿斯利康制药集团' else a.CORP_DES_C END CORP_DES_C
|
||
# MAGIC ,'' BrandType
|
||
# MAGIC ,CASE when a.iqvia_pack_code IN ('CVRM_AZ_OTHERS','CVRM_OTHERS') THEN 'CVRM_OTHER Market'
|
||
# MAGIC WHEN a.iqvia_pack_code IN ('CV_AZ_OTHERS','CV_OTHERS') THEN 'CV_OTHER Market'
|
||
# MAGIC WHEN A.iqvia_pack_code IN ('OTHERS_AZ_TA','OTHERS_TA') THEN 'OTHERS Market'
|
||
# MAGIC ELSE a.market
|
||
# MAGIC END market
|
||
# MAGIC ,t5.KEY_COMPETITOR
|
||
# MAGIC ,IF(a.corp_des_c in('阿斯利康制药集团') or A.iqvia_pack_code LIKE '%AZ%' ,'Y','N') is_az
|
||
# MAGIC ,'' AZ_MAIN
|
||
# MAGIC ,'' AZ_Related
|
||
# MAGIC ,c.atc1_des
|
||
# MAGIC ,c.atc1_des_c
|
||
# MAGIC ,c.atc2_des
|
||
# MAGIC ,c.atc2_des_c
|
||
# MAGIC ,c.atc3_des
|
||
# MAGIC ,c.atc3_des_c
|
||
# MAGIC ,c.atc4_des
|
||
# MAGIC ,c.atc4_des_c
|
||
# MAGIC ,c.app1_des
|
||
# MAGIC ,c.app1_des_c
|
||
# MAGIC ,c.app2_des
|
||
# MAGIC ,c.app2_des_c
|
||
# MAGIC ,c.app3_des
|
||
# MAGIC ,c.app3_des_c
|
||
# MAGIC ,nvl(t3.class,'Others') class
|
||
# MAGIC ,case when a.market ='Antacid anti GI swelling agent+PPI Oral' then 'GI'
|
||
# MAGIC when a.MARKET ='RD Market' then 'RD'
|
||
# MAGIC ELSE
|
||
# MAGIC CASE when a.iqvia_pack_code IN ('CVRM_AZ_OTHERS','CVRM_OTHERS') THEN 'CVRM'
|
||
# MAGIC WHEN a.iqvia_pack_code IN ('CV_AZ_OTHERS','CV_OTHERS') THEN 'CV'
|
||
# MAGIC ELSE t2.ta END
|
||
# MAGIC END TA
|
||
# MAGIC from tmp.tmp_dm_zk_retail_pack_property a
|
||
# MAGIC left join dwd.dwd_gnd_ext_retail_pack_property c on a.product_id = c.product_id
|
||
# MAGIC LEFT JOIN dwd.dwd_ims_td_pack_additional_attribute MOLE
|
||
# MAGIC --------------------------------------------------------------------
|
||
# MAGIC -- format pack_code from dwd_ims_td_pack_additional_attribute
|
||
# MAGIC ON a.iqvia_pack_code =
|
||
# MAGIC case when length(trim(MOLE.Pack_Code)) < 12 and trim(MOLE.Pack_Code) REGEXP '^[0-9]'
|
||
# MAGIC then right(concat('000000000000',trim(MOLE.Pack_Code)),12)
|
||
# MAGIC else trim(MOLE.Pack_Code)
|
||
# MAGIC end
|
||
# MAGIC --------------------------------------------------------------------
|
||
# MAGIC left join dws.dws_ext_retail_td_ta t2 on a.market = t2.market
|
||
# MAGIC left join dwd.dwd_gnd_tblclass t3 on a.MARKET = case when t3.market is null then a.market else t3.market end
|
||
# MAGIC -----------------------------------------------------------------------------
|
||
# MAGIC -- format pack_code from dwd_gnd_tblclass
|
||
# MAGIC and nvl(a.iqvia_pack_code,'') =
|
||
# MAGIC case when t3.pack_code is null
|
||
# MAGIC then nvl(a.iqvia_pack_code,'')
|
||
# MAGIC else
|
||
# MAGIC case when length(trim(t3.pack_code)) < 12 and trim(t3.pack_code) REGEXP '^[0-9]'
|
||
# MAGIC then right(concat('000000000000',trim(t3.pack_code)),12)
|
||
# MAGIC else trim(t3.pack_code)
|
||
# MAGIC end
|
||
# MAGIC end
|
||
# MAGIC -----------------------------------------------------------------------------
|
||
# MAGIC -- format product_code from dwd_gnd_tblclass
|
||
# MAGIC and nvl(a.PROD_COD,'') =
|
||
# MAGIC case when t3.product_code is null
|
||
# MAGIC then nvl(a.PROD_COD,'')
|
||
# MAGIC else case when length(t3.product_code) < 9 then right(concat('000000000',t3.product_code),9) else t3.product_code end
|
||
# MAGIC end
|
||
# MAGIC -----------------------------------------------------------------------------
|
||
# MAGIC and nvl(a.cmps_cod,'') = case when t3.molecule_code is null then nvl(a.cmps_cod ,'') else right(concat('000000', t3.molecule_code ),6 ) end
|
||
# MAGIC and nvl(a.corp_cod,'') = case when t3.Corporation_code is null then nvl(a.corp_cod ,'') else t3.Corporation_code end
|
||
# MAGIC and nvl(a.manu_cod,'')=case when t3.Manufacturer_Code is null then nvl(a.manu_cod,'') else t3.Manufacturer_Code end
|
||
# MAGIC and nvl(c.atc1_cod,'') = case when t3.ATC1_Code is null then nvl(c.atc1_cod ,'') else t3.ATC1_Code end
|
||
# MAGIC and nvl(c.ATC2_COD,'') = case when t3.ATC2_Code is null then nvl(c.ATC2_COD ,'') else t3.ATC2_Code end
|
||
# MAGIC and nvl(c.ATC3_COD,'') = case when t3.ATC3_Code is null then nvl(c.ATC3_COD ,'') else t3.ATC3_Code end
|
||
# MAGIC and nvl(c.ATC4_COD,'') = case when t3.ATC4_Code is null then nvl(c.ATC4_COD ,'') else t3.ATC4_Code end
|
||
# MAGIC and nvl(c.app1_cod,'') = case when t3.NFC1_Code is null then nvl(c.app1_cod ,'') else t3.NFC1_Code end
|
||
# MAGIC and nvl(c.APP2_COD,'') = case when t3.NFC2_Code is null then nvl(c.APP2_COD ,'') else t3.NFC2_Code end
|
||
# MAGIC and nvl(c.APP3_COD,'') = case when t3.NFC3_Code is null then nvl(c.APP3_COD ,'') else t3.NFC3_Code end
|
||
# MAGIC and nvl(c.stgh_des,'') = case when t3.Strength is null then nvl(c.stgh_des ,'') else t3.Strength end
|
||
# MAGIC left join (select distinct MARKET,PACK_CODE as pack_cod,KEY_COMPETITOR from DM.DM_TD_EXT_CHPA_MARKET_PACK_MAPPING) t5
|
||
# MAGIC on a.market = t5.MARKET
|
||
# MAGIC and a.iqvia_pack_code = t5.PACK_COD
|
||
# MAGIC )
|
||
# MAGIC group by MARKET_PACK_KEY ,iqvia_pack_code
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %md
|
||
# MAGIC ## STEP-5: map to dm.dm_zk_retail_market_property
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %sql
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC -- STEP-5: map to dm.dm_zk_retail_market_property
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC insert overwrite table dm.dm_zk_retail_market_property
|
||
# MAGIC select
|
||
# MAGIC distinct
|
||
# MAGIC iqvia_pack_code,
|
||
# MAGIC market,
|
||
# MAGIC ta
|
||
# MAGIC from dm.dm_zk_retail_pack_property
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %md
|
||
# MAGIC ## STEP-6: map to dm.dm_zk_retail_dtp_pack_property
|
||
|
||
# COMMAND ----------
|
||
|
||
# DBTITLE 1,overwrite dws.dws_zk_retail_dtp_market
|
||
# MAGIC %sql
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC -- STEP-6: map to dm.dm_zk_retail_dtp_pack_property
|
||
# MAGIC -- 6.1 dtp 部分生成dws
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC insert overwrite table dws.dws_zk_retail_dtp_market
|
||
# MAGIC (
|
||
# MAGIC region_type,
|
||
# MAGIC higher_level_region,
|
||
# MAGIC market,
|
||
# MAGIC iqvia_pack_code,
|
||
# MAGIC iqvia_prod_code,
|
||
# MAGIC iqvia_notes,
|
||
# MAGIC new_pack_flag,
|
||
# MAGIC is_exists_chpa,
|
||
# MAGIC prescription_nature,
|
||
# MAGIC common_name,
|
||
# MAGIC dosage_form,
|
||
# MAGIC category_name,
|
||
# MAGIC product_name,
|
||
# MAGIC brand_name,
|
||
# MAGIC zk_corp_des,
|
||
# MAGIC zk_pack_des,
|
||
# MAGIC counting_unit_a,
|
||
# MAGIC app1_cod,
|
||
# MAGIC app1_des,
|
||
# MAGIC app1_des_c,
|
||
# MAGIC app2_cod,
|
||
# MAGIC app2_des,
|
||
# MAGIC app2_des_c,
|
||
# MAGIC app3_cod,
|
||
# MAGIC app3_des,
|
||
# MAGIC app3_des_c,
|
||
# MAGIC atc1_cod,
|
||
# MAGIC atc1_des,
|
||
# MAGIC atc1_des_c,
|
||
# MAGIC atc2_cod,
|
||
# MAGIC atc2_des,
|
||
# MAGIC atc2_des_c,
|
||
# MAGIC atc3_cod,
|
||
# MAGIC atc3_des,
|
||
# MAGIC atc3_des_c,
|
||
# MAGIC atc4_cod,
|
||
# MAGIC atc4_des,
|
||
# MAGIC atc4_des_c,
|
||
# MAGIC bio_desc,
|
||
# MAGIC cmps_cod,
|
||
# MAGIC cmps_des,
|
||
# MAGIC cmps_des_c,
|
||
# MAGIC corp_cod,
|
||
# MAGIC corp_des,
|
||
# MAGIC corp_des_c,
|
||
# MAGIC edl_desc,
|
||
# MAGIC eth_otc_desc,
|
||
# MAGIC gene_orig_desc,
|
||
# MAGIC gqce_desc,
|
||
# MAGIC manu_cod,
|
||
# MAGIC manu_des,
|
||
# MAGIC manu_des_c,
|
||
# MAGIC mnfl_cod,
|
||
# MAGIC mnfl_des,
|
||
# MAGIC nrdl_desc,
|
||
# MAGIC pack_des,
|
||
# MAGIC stgh_des,
|
||
# MAGIC pack_lch,
|
||
# MAGIC paed_desc,
|
||
# MAGIC prod_des,
|
||
# MAGIC prod_des_c,
|
||
# MAGIC tcm_desc,
|
||
# MAGIC vbp_desc,
|
||
# MAGIC unit,
|
||
# MAGIC counting_unit,
|
||
# MAGIC dosage_unit,
|
||
# MAGIC NRDL_ENTRY_DATE,
|
||
# MAGIC bu,
|
||
# MAGIC Market_Ratio
|
||
# MAGIC )
|
||
# MAGIC select
|
||
# MAGIC distinct
|
||
# MAGIC NULL AS region_type,
|
||
# MAGIC NULL AS higher_level_region,
|
||
# MAGIC market,
|
||
# MAGIC iqvia_pack_code,
|
||
# MAGIC iqvia_prod_code,
|
||
# MAGIC iqvia_notes,
|
||
# MAGIC new_pack_flag,
|
||
# MAGIC is_exists_chpa,
|
||
# MAGIC NULL AS prescription_nature,
|
||
# MAGIC NULL AS common_name,
|
||
# MAGIC NULL AS dosage_form,
|
||
# MAGIC NULL AS category_name,
|
||
# MAGIC NULL AS product_name,
|
||
# MAGIC NULL AS brand_name,
|
||
# MAGIC NULL AS zk_corp_des,
|
||
# MAGIC NULL AS zk_pack_des,
|
||
# MAGIC NULL AS counting_unit_a,
|
||
# MAGIC app1_cod,
|
||
# MAGIC app1_des,
|
||
# MAGIC app1_des_c,
|
||
# MAGIC app2_cod,
|
||
# MAGIC app2_des,
|
||
# MAGIC app2_des_c,
|
||
# MAGIC app3_cod,
|
||
# MAGIC app3_des,
|
||
# MAGIC app3_des_c,
|
||
# MAGIC atc1_cod,
|
||
# MAGIC atc1_des,
|
||
# MAGIC atc1_des_c,
|
||
# MAGIC atc2_cod,
|
||
# MAGIC atc2_des,
|
||
# MAGIC atc2_des_c,
|
||
# MAGIC atc3_cod,
|
||
# MAGIC atc3_des,
|
||
# MAGIC atc3_des_c,
|
||
# MAGIC atc4_cod,
|
||
# MAGIC atc4_des,
|
||
# MAGIC atc4_des_c,
|
||
# MAGIC bio_desc,
|
||
# MAGIC cmps_cod,
|
||
# MAGIC cmps_des,
|
||
# MAGIC cmps_des_c,
|
||
# MAGIC corp_cod,
|
||
# MAGIC corp_des,
|
||
# MAGIC corp_des_c,
|
||
# MAGIC edl_desc,
|
||
# MAGIC eth_otc_desc,
|
||
# MAGIC gene_orig_desc,
|
||
# MAGIC gqce_desc,
|
||
# MAGIC manu_cod,
|
||
# MAGIC manu_des,
|
||
# MAGIC manu_des_c,
|
||
# MAGIC mnfl_cod,
|
||
# MAGIC mnfl_des,
|
||
# MAGIC nrdl_desc,
|
||
# MAGIC pack_des,
|
||
# MAGIC stgh_des,
|
||
# MAGIC pack_lch,
|
||
# MAGIC paed_desc,
|
||
# MAGIC prod_des,
|
||
# MAGIC prod_des_c,
|
||
# MAGIC tcm_desc,
|
||
# MAGIC vbp_desc,
|
||
# MAGIC unit,
|
||
# MAGIC counting_unit,
|
||
# MAGIC dosage_unit,
|
||
# MAGIC NRDL_ENTRY_DATE,
|
||
# MAGIC bu,
|
||
# MAGIC Market_Ratio
|
||
# MAGIC from tmp.tmp_zk_retail_dtp_market_corp t1
|
||
# MAGIC union
|
||
# MAGIC select
|
||
# MAGIC distinct
|
||
# MAGIC '' region_type
|
||
# MAGIC ,'' higher_level_region
|
||
# MAGIC ,'DTP_OTHER Market' market
|
||
# MAGIC ,iqvia_pack_code
|
||
# MAGIC ,'' iqvia_prod_code
|
||
# MAGIC ,'' iqvia_notes
|
||
# MAGIC ,'' new_pack_flag
|
||
# MAGIC ,'' is_exists_chpa
|
||
# MAGIC ,'' prescription_nature
|
||
# MAGIC ,'' common_name
|
||
# MAGIC ,'' dosage_form
|
||
# MAGIC ,'' category_name
|
||
# MAGIC ,'' product_name
|
||
# MAGIC ,'' brand_name
|
||
# MAGIC ,'' zk_corp_des
|
||
# MAGIC ,'' zk_pack_des
|
||
# MAGIC ,'' counting_unit_a
|
||
# MAGIC ,'' app1_cod
|
||
# MAGIC ,'' app1_des
|
||
# MAGIC ,'' app1_des_c
|
||
# MAGIC ,'' app2_cod
|
||
# MAGIC ,'' app2_des
|
||
# MAGIC ,'' app2_des_c
|
||
# MAGIC ,'' app3_cod
|
||
# MAGIC ,'' app3_des
|
||
# MAGIC ,'' app3_des_c
|
||
# MAGIC ,'' atc1_cod
|
||
# MAGIC ,'' atc1_des
|
||
# MAGIC ,'' atc1_des_c
|
||
# MAGIC ,'' atc2_cod
|
||
# MAGIC ,'' atc2_des
|
||
# MAGIC ,'' atc2_des_c
|
||
# MAGIC ,'' atc3_cod
|
||
# MAGIC ,'' atc3_des
|
||
# MAGIC ,'' atc3_des_c
|
||
# MAGIC ,'' atc4_cod
|
||
# MAGIC ,'' atc4_des
|
||
# MAGIC ,'' atc4_des_c
|
||
# MAGIC ,'' bio_desc
|
||
# MAGIC ,'' cmps_cod
|
||
# MAGIC ,'' cmps_des
|
||
# MAGIC ,'' cmps_des_c
|
||
# MAGIC ,CASE WHEN t1.iqvia_pack_code LIKE '%AZ%' THEN 'A5Z' ELSE '' END corp_cod
|
||
# MAGIC ,CASE WHEN t1.iqvia_pack_code LIKE '%AZ%' THEN 'ASTRAZENECA' ELSE '' END corp_des
|
||
# MAGIC ,CASE WHEN t1.iqvia_pack_code LIKE '%AZ%' THEN '阿斯利康制药集团' ELSE '' END corp_des_c
|
||
# MAGIC ,'' edl_desc
|
||
# MAGIC ,'' eth_otc_desc
|
||
# MAGIC ,'' gene_orig_desc
|
||
# MAGIC ,'' gqce_desc
|
||
# MAGIC ,'' manu_cod
|
||
# MAGIC ,'' manu_des
|
||
# MAGIC ,'' manu_des_c
|
||
# MAGIC ,'' mnfl_cod
|
||
# MAGIC ,'' mnfl_des
|
||
# MAGIC ,'' nrdl_desc
|
||
# MAGIC ,'' pack_des
|
||
# MAGIC ,'' stgh_des
|
||
# MAGIC ,'' pack_lch
|
||
# MAGIC ,'' paed_desc
|
||
# MAGIC ,'' prod_des
|
||
# MAGIC ,'' prod_des_c
|
||
# MAGIC ,'' tcm_desc
|
||
# MAGIC ,'' vbp_desc
|
||
# MAGIC ,'' unit
|
||
# MAGIC ,'' counting_unit
|
||
# MAGIC ,'' dosage_unit
|
||
# MAGIC ,null NRDL_ENTRY_DATE
|
||
# MAGIC ,null
|
||
# MAGIC ,'1' Market_Ratio
|
||
# MAGIC from tmp.tmp_retail_dtp_final_sales t1
|
||
# MAGIC where iqvia_pack_code LIKE '%OTHERS'
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %sql
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC -- STEP-6: map to dm.dm_zk_retail_dtp_pack_property
|
||
# MAGIC -- 6.2 dtp 部分生成 dm
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC with tmp_tblclass as (
|
||
# MAGIC select
|
||
# MAGIC -------------------------------------------------------------------
|
||
# MAGIC -- format pack_code & product_code
|
||
# MAGIC case when length(trim(pack_code)) < 12 and trim(pack_code) REGEXP '^[0-9]'
|
||
# MAGIC then right(concat('000000000000',trim(pack_code)),12)
|
||
# MAGIC else trim(pack_code)
|
||
# MAGIC end as new_pack_code,
|
||
# MAGIC case when length(product_code) < 9 then right(concat('000000000',product_code),9) else product_code end as new_product_code,
|
||
# MAGIC -------------------------------------------------------------------
|
||
# MAGIC *
|
||
# MAGIC from dwd.dwd_gnd_tblclass
|
||
# MAGIC )
|
||
# MAGIC
|
||
# MAGIC ------------获取对应class 及其他维度-------
|
||
# MAGIC insert overwrite table dm.dm_zk_retail_dtp_pack_property
|
||
# MAGIC select distinct
|
||
# MAGIC A.market ||'_'|| A.iqvia_pack_code MARKET_PACK_KEY
|
||
# MAGIC ,A.iqvia_pack_code
|
||
# MAGIC ,A.pack_des
|
||
# MAGIC ,A.stgh_des
|
||
# MAGIC ,A.pack_lch
|
||
# MAGIC ,'' Family_cod
|
||
# MAGIC ,'' Family_Name
|
||
# MAGIC ,A.iqvia_prod_code PROD_COD
|
||
# MAGIC ,A.prod_des
|
||
# MAGIC ,A.prod_des_c
|
||
# MAGIC ,A.cmps_cod
|
||
# MAGIC ,A.cmps_des
|
||
# MAGIC ,A.cmps_des_c
|
||
# MAGIC ,A.atc1_cod
|
||
# MAGIC ,A.atc2_cod
|
||
# MAGIC ,A.atc3_cod
|
||
# MAGIC ,A.atc4_cod
|
||
# MAGIC ,A.app1_cod
|
||
# MAGIC ,A.app2_cod
|
||
# MAGIC ,A.app3_cod
|
||
# MAGIC ,A.BIO_DESC
|
||
# MAGIC ,A.gene_orig_desc
|
||
# MAGIC ,A.eth_otc_desc
|
||
# MAGIC ,A.nrdl_desc
|
||
# MAGIC ,A.NRDL_ENTRY_DATE
|
||
# MAGIC ,A.edl_desc
|
||
# MAGIC ,A.TCM_DESC
|
||
# MAGIC ,A.PAED_DESC
|
||
# MAGIC ,A.GQCE_DESC
|
||
# MAGIC ,A.VBP_DESC
|
||
# MAGIC ,A.MANU_COD
|
||
# MAGIC ,A.MANU_DES
|
||
# MAGIC ,A.MANU_DES_C
|
||
# MAGIC ,A.MNFL_COD
|
||
# MAGIC ,A.MNFL_DES
|
||
# MAGIC ,A.CORP_COD
|
||
# MAGIC ,CASE WHEN A.corp_des LIKE '% GROUP%' THEN replace(A.corp_des,' GROUP','' ) ELSE A.corp_des END corp_des
|
||
# MAGIC ,CORP_DES_C
|
||
# MAGIC ,'' BrandType
|
||
# MAGIC ,A.MARKET
|
||
# MAGIC ,t5.KEY_COMPETITOR
|
||
# MAGIC ,CASE WHEN CORP_COD ='A5Z' THEN 'Y' ELSE 'N' END IS_AZ
|
||
# MAGIC ,'' AZ_MAIN
|
||
# MAGIC ,case when dmt.TA is null then 'Others MKT' else 'AZ Related MKT' end as AZ_Related
|
||
# MAGIC ,atc1_des
|
||
# MAGIC ,atc1_des_c
|
||
# MAGIC ,atc2_des
|
||
# MAGIC ,atc2_des_c
|
||
# MAGIC ,atc3_des
|
||
# MAGIC ,atc3_des_c
|
||
# MAGIC ,atc4_des
|
||
# MAGIC ,atc4_des_c
|
||
# MAGIC ,app1_des
|
||
# MAGIC ,app1_des_c
|
||
# MAGIC ,app2_des
|
||
# MAGIC ,app2_des_c
|
||
# MAGIC ,app3_des
|
||
# MAGIC ,app3_des_c
|
||
# MAGIC ,ifnull(t3.class,'Others') as Class
|
||
# MAGIC ,from_utc_timestamp(current_timestamp(),'UTC+8') etl_insert_dt
|
||
# MAGIC ,from_utc_timestamp(current_timestamp(),'UTC+8') etl_update_dt
|
||
# MAGIC from dws.dws_zk_retail_dtp_market A
|
||
# MAGIC left join dwd.dwd_gnd_ims_tblmarket_ta_map dmt on dmt.Market = A.Market
|
||
# MAGIC left join tmp_tblclass t3
|
||
# MAGIC on A.market = ifnull(t3.market , A.market )
|
||
# MAGIC --------------------------------------------------------------
|
||
# MAGIC -- format
|
||
# MAGIC and A.iqvia_pack_code = ifnull(t3.new_pack_code, A.iqvia_pack_code)
|
||
# MAGIC and A.iqvia_prod_code = ifnull(t3.new_product_code, A.iqvia_prod_code)
|
||
# MAGIC --------------------------------------------------------------
|
||
# MAGIC and A.cmps_cod = ifnull(right(concat('000000',t3.molecule_code ), 6) , A.cmps_cod)
|
||
# MAGIC and A.corp_cod = ifnull(t3.Corporation_code , A.corp_cod)
|
||
# MAGIC and A.manu_cod = ifnull(t3.Manufacturer_Code , A.manu_cod)
|
||
# MAGIC and A.ATC1_COD = ifnull(t3.ATC1_Code , A.ATC1_COD)
|
||
# MAGIC and A.ATC2_COD = ifnull(t3.ATC2_Code , A.ATC2_COD)
|
||
# MAGIC and A.ATC3_COD = ifnull(t3.ATC3_Code , A.ATC3_COD)
|
||
# MAGIC and A.ATC4_COD = ifnull(t3.ATC4_Code , A.ATC4_COD)
|
||
# MAGIC and A.APP1_COD = ifnull(t3.NFC1_Code , A.APP1_COD)
|
||
# MAGIC and A.APP2_COD = ifnull(t3.NFC2_Code , A.APP2_COD)
|
||
# MAGIC and A.APP3_COD = ifnull(t3.NFC3_Code , A.APP3_COD)
|
||
# MAGIC and ifnull(A.STGH_DES, '') = ifnull(t3.Strength, ifnull(A.STGH_DES, ''))
|
||
# MAGIC left join (select distinct MARKET,PACK_CODE as PACK_COD,KEY_COMPETITOR from DM.DM_TD_EXT_CHPA_MARKET_PACK_MAPPING) t5
|
||
# MAGIC on A.market = t5.MARKET
|
||
# MAGIC and A.iqvia_pack_code = t5.PACK_COD
|
||
# MAGIC
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %md
|
||
# MAGIC ## STEP-7: map to dm.dm_zk_retail_dtp_sales
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %sql
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC -- STEP-7: map to dm.dm_zk_retail_dtp_sales
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC insert overwrite table dm.dm_zk_retail_dtp_sales
|
||
# MAGIC select
|
||
# MAGIC a.year,
|
||
# MAGIC a.yq,
|
||
# MAGIC a.yyyymm,
|
||
# MAGIC a.iqvia_pack_code,
|
||
# MAGIC nvl(b.geo_key, a.geo_key) as AUDIT_COD,
|
||
# MAGIC a.sales_value,
|
||
# MAGIC a.sales_unit,
|
||
# MAGIC a.counting_unit,
|
||
# MAGIC a.sales_value_ly,
|
||
# MAGIC a.sales_unit_ly,
|
||
# MAGIC a.counting_unit_ly,
|
||
# MAGIC -------------------------------------------------------------
|
||
# MAGIC -- dtp相关的数据的pack_flag 除计算的OTHERS外(0),其余(1,2) 均为1
|
||
# MAGIC case when a.pack_flag = 0 then 0 else 1 end as pack_flag,
|
||
# MAGIC -------------------------------------------------------------
|
||
# MAGIC a.brand_flag
|
||
# MAGIC from tmp.tmp_retail_dtp_final_sales a
|
||
# MAGIC left join dm.dm_zk_retail_geo b
|
||
# MAGIC on a.geo_key = b.province_city
|
||
# MAGIC
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %md
|
||
# MAGIC ## STEP-8: map to dm.dm_zk_retail_sales_kpi
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %md
|
||
# MAGIC ### PART-1:品牌数据报告(13个)
|
||
# MAGIC - share
|
||
# MAGIC - key_brand_ytd
|
||
# MAGIC - key_brand_rank_ytd
|
||
# MAGIC - top_brand_ytd
|
||
# MAGIC - top_brand_ms_ytd
|
||
# MAGIC - top_brand_gr_ytd
|
||
# MAGIC - top_brand_inc_ms_ytd
|
||
# MAGIC - key_brand_qtd
|
||
# MAGIC - key_brand_rank_qtd
|
||
# MAGIC - top_brand_qtd
|
||
# MAGIC - top_brand_ms_qtd
|
||
# MAGIC - top_brand_inc_ms_qtd
|
||
# MAGIC - top_brand_gr_qtd
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %sql
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi
|
||
# MAGIC -- 8.1 kpi: share
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC with exploded_data as (
|
||
# MAGIC select
|
||
# MAGIC ta,
|
||
# MAGIC market,
|
||
# MAGIC brand,
|
||
# MAGIC ifnull(common_name,'' ) as common_name,
|
||
# MAGIC level,
|
||
# MAGIC split(level_ta,',') array_ta,
|
||
# MAGIC split(level_market,',') array_market,
|
||
# MAGIC split(level_molecule,',') array_molecule,
|
||
# MAGIC split(level_brand,',') array_brand
|
||
# MAGIC from dwd.dwd_gnd_retail_split_automatic
|
||
# MAGIC where level like '%MULTI_BRAND%'
|
||
# MAGIC ), tmp_config as (
|
||
# MAGIC select
|
||
# MAGIC ta,
|
||
# MAGIC market,
|
||
# MAGIC brand,
|
||
# MAGIC common_name,
|
||
# MAGIC level,
|
||
# MAGIC array_ta[idx] as level_ta,
|
||
# MAGIC array_market[idx] as level_market,
|
||
# MAGIC array_molecule[idx] as level_molecule,
|
||
# MAGIC array_brand[idx] as level_brand
|
||
# MAGIC from exploded_data
|
||
# MAGIC lateral view posexplode(array_ta) AS idx, split_ta
|
||
# MAGIC
|
||
# MAGIC union all
|
||
# MAGIC
|
||
# MAGIC select
|
||
# MAGIC ta,
|
||
# MAGIC market,
|
||
# MAGIC brand,
|
||
# MAGIC common_name,
|
||
# MAGIC level,
|
||
# MAGIC level_ta,
|
||
# MAGIC level_market,
|
||
# MAGIC level_molecule,
|
||
# MAGIC level_brand
|
||
# MAGIC from dwd.dwd_gnd_retail_split_automatic
|
||
# MAGIC where level = 'BRAND'
|
||
# MAGIC ),max_pack_mapping as (
|
||
# MAGIC select
|
||
# MAGIC level_ta,
|
||
# MAGIC level_market,
|
||
# MAGIC level_molecule,
|
||
# MAGIC level_brand,
|
||
# MAGIC molecule_desc,
|
||
# MAGIC product_desc,
|
||
# MAGIC corp_cod,
|
||
# MAGIC max(pack_code) as pack_code
|
||
# MAGIC from tmp.tmp_retail_pack_mapping
|
||
# MAGIC group by level_ta,level_market,level_molecule,level_brand,molecule_desc,product_desc,corp_cod
|
||
# MAGIC ), tmp_brand_kpi as (
|
||
# MAGIC select
|
||
# MAGIC distinct
|
||
# MAGIC c.pack_code,
|
||
# MAGIC c.corp_cod,
|
||
# MAGIC a.YYYYMM,
|
||
# MAGIC null as ytd,
|
||
# MAGIC d.geo_key,
|
||
# MAGIC a.val_share as kpi_val,
|
||
# MAGIC a.vol_share as kpi_vol,
|
||
# MAGIC a.ta,
|
||
# MAGIC a.key_brand_ytd,
|
||
# MAGIC a.key_brand_rank_ytd,
|
||
# MAGIC a.top_brand_ytd,
|
||
# MAGIC a.top_brand_ms_ytd,
|
||
# MAGIC a.top_brand_inc_ms_ytd,
|
||
# MAGIC a.top_brand_gr_ytd,
|
||
# MAGIC a.key_brand_qtd,
|
||
# MAGIC a.key_brand_rank_qtd,
|
||
# MAGIC a.top_brand_qtd,
|
||
# MAGIC a.top_brand_ms_qtd,
|
||
# MAGIC a.top_brand_inc_ms_qtd,
|
||
# MAGIC a.top_brand_gr_qtd
|
||
# MAGIC from dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all a
|
||
# MAGIC inner join tmp_config b
|
||
# MAGIC on a.ta = b.ta
|
||
# MAGIC and a.market = b.market
|
||
# MAGIC and a.zk_brand_category = b.brand
|
||
# MAGIC and a.zk_common_name = b.common_name
|
||
# MAGIC inner join max_pack_mapping c
|
||
# MAGIC on c.level_ta = b.level_ta
|
||
# MAGIC and c.level_market = b.level_market
|
||
# MAGIC and c.level_molecule = b.level_molecule
|
||
# MAGIC and c.level_brand = b.level_brand
|
||
# MAGIC left join dm.dm_zk_retail_geo d
|
||
# MAGIC on a.province_city = d.province_city
|
||
# MAGIC ), tmp_brand_kpi_ly as (
|
||
# MAGIC select
|
||
# MAGIC pack_code,
|
||
# MAGIC corp_cod,
|
||
# MAGIC cast(YYYYMM + 100 as int ) as YYYYMM,
|
||
# MAGIC ytd,
|
||
# MAGIC geo_key,
|
||
# MAGIC kpi_val as kpi_val_ly,
|
||
# MAGIC kpi_vol as kpi_vol_ly,
|
||
# MAGIC ta
|
||
# MAGIC from tmp_brand_kpi
|
||
# MAGIC )
|
||
# MAGIC
|
||
# MAGIC insert overwrite table dws.dws_zk_retail_sales_kpi
|
||
# MAGIC
|
||
# MAGIC select
|
||
# MAGIC a.pack_code,
|
||
# MAGIC a.corp_cod,
|
||
# MAGIC a.yyyymm,
|
||
# MAGIC a.ytd,
|
||
# MAGIC a.geo_key,
|
||
# MAGIC 'share' as KPI_name,
|
||
# MAGIC a.kpi_val,
|
||
# MAGIC b.kpi_val_ly,
|
||
# MAGIC null as str_kpi_val,
|
||
# MAGIC null as str_kpi_val_ly,
|
||
# MAGIC a.kpi_vol,
|
||
# MAGIC b.kpi_vol_ly,
|
||
# MAGIC null as str_kpi_vol,
|
||
# MAGIC null as str_kpi_vol_ly,
|
||
# MAGIC 'N' as TOTAL_FLAG,
|
||
# MAGIC a.ta
|
||
# MAGIC from tmp_brand_kpi a
|
||
# MAGIC left join tmp_brand_kpi_ly b
|
||
# MAGIC on a.pack_code = b.pack_code
|
||
# MAGIC and a.YYYYMM = b.YYYYMM
|
||
# MAGIC and a.geo_key = b.geo_key
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %sql
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi
|
||
# MAGIC -- 8.2 kpi: key_brand_ytd
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC with tmp_brand_ytd_value as (
|
||
# MAGIC select
|
||
# MAGIC distinct
|
||
# MAGIC a.ta,
|
||
# MAGIC a.market,
|
||
# MAGIC a.ytd,
|
||
# MAGIC d.geo_key,
|
||
# MAGIC a.key_brand_ytd
|
||
# MAGIC from dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all a
|
||
# MAGIC left join dm.dm_zk_retail_geo d
|
||
# MAGIC on a.province_city = d.province_city
|
||
# MAGIC where a.ranked_by = 'value'
|
||
# MAGIC and a.ytd is not null
|
||
# MAGIC ), tmp_brand_ytd_volume as (
|
||
# MAGIC select
|
||
# MAGIC distinct
|
||
# MAGIC a.ta,
|
||
# MAGIC a.market,
|
||
# MAGIC a.ytd,
|
||
# MAGIC d.geo_key,
|
||
# MAGIC a.key_brand_ytd
|
||
# MAGIC from dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all a
|
||
# MAGIC left join dm.dm_zk_retail_geo d
|
||
# MAGIC on a.province_city = d.province_city
|
||
# MAGIC where a.ranked_by = 'volume'
|
||
# MAGIC and a.ytd is not null
|
||
# MAGIC ), tmp_brand_ytd_value_ly as (
|
||
# MAGIC select
|
||
# MAGIC ta,
|
||
# MAGIC market,
|
||
# MAGIC left(ytd,3) || cast(substr(ytd,4,2)+1 as int) || right( ytd,2 ) as ytd,
|
||
# MAGIC geo_key,
|
||
# MAGIC key_brand_ytd
|
||
# MAGIC from tmp_brand_ytd_value
|
||
# MAGIC ), tmp_brand_ytd_volume_ly as (
|
||
# MAGIC select
|
||
# MAGIC ta,
|
||
# MAGIC market,
|
||
# MAGIC left(ytd,3) || cast(substr(ytd,4,2)+1 as int) || right( ytd,2 ) as ytd,
|
||
# MAGIC geo_key,
|
||
# MAGIC key_brand_ytd
|
||
# MAGIC from tmp_brand_ytd_volume
|
||
# MAGIC ), tmp_brand_ytd_value_all as (
|
||
# MAGIC select
|
||
# MAGIC a.ta,
|
||
# MAGIC a.market,
|
||
# MAGIC a.ytd,
|
||
# MAGIC a.geo_key,
|
||
# MAGIC a.key_brand_ytd,
|
||
# MAGIC b.key_brand_ytd as key_brand_ytd_ly
|
||
# MAGIC from tmp_brand_ytd_value a
|
||
# MAGIC inner join tmp_brand_ytd_value_ly b
|
||
# MAGIC on a.ta = b.ta
|
||
# MAGIC and a.market = b.market
|
||
# MAGIC and a.ytd = b.ytd
|
||
# MAGIC and a.geo_key = b.geo_key
|
||
# MAGIC ), tmp_brand_ytd_volume_all as (
|
||
# MAGIC select
|
||
# MAGIC a.ta,
|
||
# MAGIC a.market,
|
||
# MAGIC a.ytd,
|
||
# MAGIC a.geo_key,
|
||
# MAGIC a.key_brand_ytd,
|
||
# MAGIC b.key_brand_ytd as key_brand_ytd_ly
|
||
# MAGIC from tmp_brand_ytd_volume a
|
||
# MAGIC inner join tmp_brand_ytd_volume_ly b
|
||
# MAGIC on a.ta = b.ta
|
||
# MAGIC and a.market = b.market
|
||
# MAGIC and a.ytd = b.ytd
|
||
# MAGIC and a.geo_key = b.geo_key
|
||
# MAGIC )
|
||
# MAGIC
|
||
# MAGIC insert into table dws.dws_zk_retail_sales_kpi
|
||
# MAGIC
|
||
# MAGIC select
|
||
# MAGIC distinct
|
||
# MAGIC '' as pack_code,
|
||
# MAGIC '' as corp_cod,
|
||
# MAGIC null as yyyymm,
|
||
# MAGIC a.ytd,
|
||
# MAGIC a.geo_key,
|
||
# MAGIC 'key_brand_ytd' as KPI_name,
|
||
# MAGIC null as kpi_val,
|
||
# MAGIC null as kpi_val_ly,
|
||
# MAGIC a.key_brand_ytd as str_kpi_val,
|
||
# MAGIC a.key_brand_ytd_ly as str_kpi_val_ly,
|
||
# MAGIC null as kpi_vol,
|
||
# MAGIC null as kpi_vol_ly,
|
||
# MAGIC b.key_brand_ytd as str_kpi_vol,
|
||
# MAGIC b.key_brand_ytd_ly as str_kpi_vol_ly,
|
||
# MAGIC 'N' as TOTAL_FLAG,
|
||
# MAGIC a.ta
|
||
# MAGIC from tmp_brand_ytd_value_all a
|
||
# MAGIC inner join tmp_brand_ytd_volume_all b
|
||
# MAGIC on a.ta = b.ta
|
||
# MAGIC and a.market = b.market
|
||
# MAGIC and a.ytd = b.ytd
|
||
# MAGIC and a.geo_key = b.geo_key
|
||
# MAGIC
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %sql
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi
|
||
# MAGIC -- 8.3 kpi: key_brand_rank_ytd
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC with tmp_kpi_ytd_value as (
|
||
# MAGIC select
|
||
# MAGIC distinct
|
||
# MAGIC a.ta,
|
||
# MAGIC a.market,
|
||
# MAGIC a.ytd,
|
||
# MAGIC d.geo_key,
|
||
# MAGIC a.key_brand_rank_ytd
|
||
# MAGIC from dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all a
|
||
# MAGIC left join dm.dm_zk_retail_geo d
|
||
# MAGIC on a.province_city = d.province_city
|
||
# MAGIC where a.ranked_by = 'value'
|
||
# MAGIC and a.ytd is not null
|
||
# MAGIC ), tmp_kpi_ytd_volume as (
|
||
# MAGIC select
|
||
# MAGIC distinct
|
||
# MAGIC a.ta,
|
||
# MAGIC a.market,
|
||
# MAGIC a.ytd,
|
||
# MAGIC d.geo_key,
|
||
# MAGIC a.key_brand_rank_ytd
|
||
# MAGIC from dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all a
|
||
# MAGIC left join dm.dm_zk_retail_geo d
|
||
# MAGIC on a.province_city = d.province_city
|
||
# MAGIC where a.ranked_by = 'volume'
|
||
# MAGIC and a.ytd is not null
|
||
# MAGIC ), tmp_kpi_ytd_value_ly as (
|
||
# MAGIC select
|
||
# MAGIC ta,
|
||
# MAGIC market,
|
||
# MAGIC left(ytd,3) || cast(substr(ytd,4,2)+1 as int) || right( ytd,2 ) as ytd,
|
||
# MAGIC geo_key,
|
||
# MAGIC key_brand_rank_ytd
|
||
# MAGIC from tmp_kpi_ytd_value
|
||
# MAGIC ), tmp_kpi_ytd_volume_ly as (
|
||
# MAGIC select
|
||
# MAGIC ta,
|
||
# MAGIC market,
|
||
# MAGIC left(ytd,3) || cast(substr(ytd,4,2)+1 as int) || right( ytd,2 ) as ytd,
|
||
# MAGIC geo_key,
|
||
# MAGIC key_brand_rank_ytd
|
||
# MAGIC from tmp_kpi_ytd_volume
|
||
# MAGIC ), tmp_kpi_ytd_value_all as (
|
||
# MAGIC select
|
||
# MAGIC a.ta,
|
||
# MAGIC a.market,
|
||
# MAGIC a.ytd,
|
||
# MAGIC a.geo_key,
|
||
# MAGIC a.key_brand_rank_ytd,
|
||
# MAGIC b.key_brand_rank_ytd as key_brand_rank_ytd_ly
|
||
# MAGIC from tmp_kpi_ytd_value a
|
||
# MAGIC inner join tmp_kpi_ytd_value_ly b
|
||
# MAGIC on a.ta = b.ta
|
||
# MAGIC and a.market = b.market
|
||
# MAGIC and a.ytd = b.ytd
|
||
# MAGIC and a.geo_key = b.geo_key
|
||
# MAGIC ), tmp_kpi_ytd_volume_all as (
|
||
# MAGIC select
|
||
# MAGIC a.ta,
|
||
# MAGIC a.market,
|
||
# MAGIC a.ytd,
|
||
# MAGIC a.geo_key,
|
||
# MAGIC a.key_brand_rank_ytd,
|
||
# MAGIC b.key_brand_rank_ytd as key_brand_rank_ytd_ly
|
||
# MAGIC from tmp_kpi_ytd_volume a
|
||
# MAGIC inner join tmp_kpi_ytd_volume_ly b
|
||
# MAGIC on a.ta = b.ta
|
||
# MAGIC and a.market = b.market
|
||
# MAGIC and a.ytd = b.ytd
|
||
# MAGIC and a.geo_key = b.geo_key
|
||
# MAGIC )
|
||
# MAGIC
|
||
# MAGIC insert into table dws.dws_zk_retail_sales_kpi
|
||
# MAGIC
|
||
# MAGIC select
|
||
# MAGIC distinct
|
||
# MAGIC '' as pack_code,
|
||
# MAGIC '' as corp_cod,
|
||
# MAGIC null as yyyymm,
|
||
# MAGIC a.ytd,
|
||
# MAGIC a.geo_key,
|
||
# MAGIC 'key_brand_rank_ytd' as KPI_name,
|
||
# MAGIC a.key_brand_rank_ytd as kpi_val,
|
||
# MAGIC a.key_brand_rank_ytd_ly as kpi_val_ly,
|
||
# MAGIC null as str_kpi_val,
|
||
# MAGIC null as str_kpi_val_ly,
|
||
# MAGIC b.key_brand_rank_ytd as kpi_vol,
|
||
# MAGIC b.key_brand_rank_ytd_ly as kpi_vol_ly,
|
||
# MAGIC null as str_kpi_vol,
|
||
# MAGIC null as str_kpi_vol_ly,
|
||
# MAGIC 'N' as TOTAL_FLAG,
|
||
# MAGIC a.ta
|
||
# MAGIC from tmp_kpi_ytd_value_all a
|
||
# MAGIC inner join tmp_kpi_ytd_volume_all b
|
||
# MAGIC on a.ta = b.ta
|
||
# MAGIC and a.market = b.market
|
||
# MAGIC and a.ytd = b.ytd
|
||
# MAGIC and a.geo_key = b.geo_key
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %sql
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi
|
||
# MAGIC -- 8.4 kpi: top_brand_ytd
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC with tmp_kpi_ytd_value as (
|
||
# MAGIC select
|
||
# MAGIC distinct
|
||
# MAGIC a.ta,
|
||
# MAGIC a.market,
|
||
# MAGIC a.ytd,
|
||
# MAGIC d.geo_key,
|
||
# MAGIC a.top_brand_ytd
|
||
# MAGIC from dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all a
|
||
# MAGIC left join dm.dm_zk_retail_geo d
|
||
# MAGIC on a.province_city = d.province_city
|
||
# MAGIC where a.ranked_by = 'value'
|
||
# MAGIC and a.ytd is not null
|
||
# MAGIC ), tmp_kpi_ytd_volume as (
|
||
# MAGIC select
|
||
# MAGIC distinct
|
||
# MAGIC a.ta,
|
||
# MAGIC a.market,
|
||
# MAGIC a.ytd,
|
||
# MAGIC d.geo_key,
|
||
# MAGIC a.top_brand_ytd
|
||
# MAGIC from dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all a
|
||
# MAGIC left join dm.dm_zk_retail_geo d
|
||
# MAGIC on a.province_city = d.province_city
|
||
# MAGIC where a.ranked_by = 'volume'
|
||
# MAGIC and a.ytd is not null
|
||
# MAGIC ), tmp_kpi_ytd_value_ly as (
|
||
# MAGIC select
|
||
# MAGIC ta,
|
||
# MAGIC market,
|
||
# MAGIC left(ytd,3) || cast(substr(ytd,4,2)+1 as int) || right( ytd,2 ) as ytd,
|
||
# MAGIC geo_key,
|
||
# MAGIC top_brand_ytd
|
||
# MAGIC from tmp_kpi_ytd_value
|
||
# MAGIC ), tmp_kpi_ytd_volume_ly as (
|
||
# MAGIC select
|
||
# MAGIC ta,
|
||
# MAGIC market,
|
||
# MAGIC left(ytd,3) || cast(substr(ytd,4,2)+1 as int) || right( ytd,2 ) as ytd,
|
||
# MAGIC geo_key,
|
||
# MAGIC top_brand_ytd
|
||
# MAGIC from tmp_kpi_ytd_volume
|
||
# MAGIC ), tmp_kpi_ytd_value_all as (
|
||
# MAGIC select
|
||
# MAGIC a.ta,
|
||
# MAGIC a.market,
|
||
# MAGIC a.ytd,
|
||
# MAGIC a.geo_key,
|
||
# MAGIC a.top_brand_ytd,
|
||
# MAGIC b.top_brand_ytd as top_brand_ytd_ly
|
||
# MAGIC from tmp_kpi_ytd_value a
|
||
# MAGIC inner join tmp_kpi_ytd_value_ly b
|
||
# MAGIC on a.ta = b.ta
|
||
# MAGIC and a.market = b.market
|
||
# MAGIC and a.ytd = b.ytd
|
||
# MAGIC and a.geo_key = b.geo_key
|
||
# MAGIC ), tmp_kpi_ytd_volume_all as (
|
||
# MAGIC select
|
||
# MAGIC a.ta,
|
||
# MAGIC a.market,
|
||
# MAGIC a.ytd,
|
||
# MAGIC a.geo_key,
|
||
# MAGIC a.top_brand_ytd,
|
||
# MAGIC b.top_brand_ytd as top_brand_ytd_ly
|
||
# MAGIC from tmp_kpi_ytd_volume a
|
||
# MAGIC inner join tmp_kpi_ytd_volume_ly b
|
||
# MAGIC on a.ta = b.ta
|
||
# MAGIC and a.market = b.market
|
||
# MAGIC and a.ytd = b.ytd
|
||
# MAGIC and a.geo_key = b.geo_key
|
||
# MAGIC )
|
||
# MAGIC
|
||
# MAGIC insert into table dws.dws_zk_retail_sales_kpi
|
||
# MAGIC
|
||
# MAGIC select
|
||
# MAGIC distinct
|
||
# MAGIC '' as pack_code,
|
||
# MAGIC '' as corp_cod,
|
||
# MAGIC null as yyyymm,
|
||
# MAGIC a.ytd,
|
||
# MAGIC a.geo_key,
|
||
# MAGIC 'top_brand_ytd' as KPI_name,
|
||
# MAGIC null as kpi_val,
|
||
# MAGIC null as kpi_val_ly,
|
||
# MAGIC a.top_brand_ytd as str_kpi_val,
|
||
# MAGIC a.top_brand_ytd_ly as str_kpi_val_ly,
|
||
# MAGIC null as kpi_vol,
|
||
# MAGIC null as kpi_vol_ly,
|
||
# MAGIC b.top_brand_ytd as str_kpi_vol,
|
||
# MAGIC b.top_brand_ytd_ly as str_kpi_vol_ly,
|
||
# MAGIC 'N' as TOTAL_FLAG,
|
||
# MAGIC a.ta
|
||
# MAGIC from tmp_kpi_ytd_value_all a
|
||
# MAGIC inner join tmp_kpi_ytd_volume_all b
|
||
# MAGIC on a.ta = b.ta
|
||
# MAGIC and a.market = b.market
|
||
# MAGIC and a.ytd = b.ytd
|
||
# MAGIC and a.geo_key = b.geo_key
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %sql
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi
|
||
# MAGIC -- 8.5 kpi: top_brand_ms_ytd
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC with tmp_kpi_ytd_value as (
|
||
# MAGIC select
|
||
# MAGIC distinct
|
||
# MAGIC a.ta,
|
||
# MAGIC a.market,
|
||
# MAGIC a.ytd,
|
||
# MAGIC d.geo_key,
|
||
# MAGIC a.top_brand_ms_ytd
|
||
# MAGIC from dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all a
|
||
# MAGIC left join dm.dm_zk_retail_geo d
|
||
# MAGIC on a.province_city = d.province_city
|
||
# MAGIC where a.ranked_by = 'value'
|
||
# MAGIC and a.ytd is not null
|
||
# MAGIC ), tmp_kpi_ytd_volume as (
|
||
# MAGIC select
|
||
# MAGIC distinct
|
||
# MAGIC a.ta,
|
||
# MAGIC a.market,
|
||
# MAGIC a.ytd,
|
||
# MAGIC d.geo_key,
|
||
# MAGIC a.top_brand_ms_ytd
|
||
# MAGIC from dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all a
|
||
# MAGIC left join dm.dm_zk_retail_geo d
|
||
# MAGIC on a.province_city = d.province_city
|
||
# MAGIC where a.ranked_by = 'volume'
|
||
# MAGIC and a.ytd is not null
|
||
# MAGIC ), tmp_kpi_ytd_value_ly as (
|
||
# MAGIC select
|
||
# MAGIC ta,
|
||
# MAGIC market,
|
||
# MAGIC left(ytd,3) || cast(substr(ytd,4,2)+1 as int) || right( ytd,2 ) as ytd,
|
||
# MAGIC geo_key,
|
||
# MAGIC top_brand_ms_ytd
|
||
# MAGIC from tmp_kpi_ytd_value
|
||
# MAGIC ), tmp_kpi_ytd_volume_ly as (
|
||
# MAGIC select
|
||
# MAGIC ta,
|
||
# MAGIC market,
|
||
# MAGIC left(ytd,3) || cast(substr(ytd,4,2)+1 as int) || right( ytd,2 ) as ytd,
|
||
# MAGIC geo_key,
|
||
# MAGIC top_brand_ms_ytd
|
||
# MAGIC from tmp_kpi_ytd_volume
|
||
# MAGIC ), tmp_kpi_ytd_value_all as (
|
||
# MAGIC select
|
||
# MAGIC a.ta,
|
||
# MAGIC a.market,
|
||
# MAGIC a.ytd,
|
||
# MAGIC a.geo_key,
|
||
# MAGIC a.top_brand_ms_ytd,
|
||
# MAGIC b.top_brand_ms_ytd as top_brand_ms_ytd_ly
|
||
# MAGIC from tmp_kpi_ytd_value a
|
||
# MAGIC inner join tmp_kpi_ytd_value_ly b
|
||
# MAGIC on a.ta = b.ta
|
||
# MAGIC and a.market = b.market
|
||
# MAGIC and a.ytd = b.ytd
|
||
# MAGIC and a.geo_key = b.geo_key
|
||
# MAGIC ), tmp_kpi_ytd_volume_all as (
|
||
# MAGIC select
|
||
# MAGIC a.ta,
|
||
# MAGIC a.market,
|
||
# MAGIC a.ytd,
|
||
# MAGIC a.geo_key,
|
||
# MAGIC a.top_brand_ms_ytd,
|
||
# MAGIC b.top_brand_ms_ytd as top_brand_ms_ytd_ly
|
||
# MAGIC from tmp_kpi_ytd_volume a
|
||
# MAGIC inner join tmp_kpi_ytd_volume_ly b
|
||
# MAGIC on a.ta = b.ta
|
||
# MAGIC and a.market = b.market
|
||
# MAGIC and a.ytd = b.ytd
|
||
# MAGIC and a.geo_key = b.geo_key
|
||
# MAGIC )
|
||
# MAGIC
|
||
# MAGIC insert into table dws.dws_zk_retail_sales_kpi
|
||
# MAGIC
|
||
# MAGIC select
|
||
# MAGIC distinct
|
||
# MAGIC '' as pack_code,
|
||
# MAGIC '' as corp_cod,
|
||
# MAGIC null as yyyymm,
|
||
# MAGIC a.ytd,
|
||
# MAGIC a.geo_key,
|
||
# MAGIC 'top_brand_ms_ytd' as KPI_name,
|
||
# MAGIC a.top_brand_ms_ytd as kpi_val,
|
||
# MAGIC a.top_brand_ms_ytd_ly as kpi_val_ly,
|
||
# MAGIC null as str_kpi_val,
|
||
# MAGIC null as str_kpi_val_ly,
|
||
# MAGIC b.top_brand_ms_ytd as kpi_vol,
|
||
# MAGIC b.top_brand_ms_ytd_ly as kpi_vol_ly,
|
||
# MAGIC null as str_kpi_vol,
|
||
# MAGIC null as str_kpi_vol_ly,
|
||
# MAGIC 'N' as TOTAL_FLAG,
|
||
# MAGIC a.ta
|
||
# MAGIC from tmp_kpi_ytd_value_all a
|
||
# MAGIC inner join tmp_kpi_ytd_volume_all b
|
||
# MAGIC on a.ta = b.ta
|
||
# MAGIC and a.market = b.market
|
||
# MAGIC and a.ytd = b.ytd
|
||
# MAGIC and a.geo_key = b.geo_key
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %sql
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi
|
||
# MAGIC -- 8.6 kpi: top_brand_gr_ytd
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC with tmp_kpi_ytd_value as (
|
||
# MAGIC select
|
||
# MAGIC distinct
|
||
# MAGIC a.ta,
|
||
# MAGIC a.market,
|
||
# MAGIC a.ytd,
|
||
# MAGIC d.geo_key,
|
||
# MAGIC a.top_brand_gr_ytd
|
||
# MAGIC from dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all a
|
||
# MAGIC left join dm.dm_zk_retail_geo d
|
||
# MAGIC on a.province_city = d.province_city
|
||
# MAGIC where a.ranked_by = 'value'
|
||
# MAGIC and a.ytd is not null
|
||
# MAGIC ), tmp_kpi_ytd_volume as (
|
||
# MAGIC select
|
||
# MAGIC distinct
|
||
# MAGIC a.ta,
|
||
# MAGIC a.market,
|
||
# MAGIC a.ytd,
|
||
# MAGIC d.geo_key,
|
||
# MAGIC a.top_brand_gr_ytd
|
||
# MAGIC from dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all a
|
||
# MAGIC left join dm.dm_zk_retail_geo d
|
||
# MAGIC on a.province_city = d.province_city
|
||
# MAGIC where a.ranked_by = 'volume'
|
||
# MAGIC and a.ytd is not null
|
||
# MAGIC ), tmp_kpi_ytd_value_ly as (
|
||
# MAGIC select
|
||
# MAGIC ta,
|
||
# MAGIC market,
|
||
# MAGIC left(ytd,3) || cast(substr(ytd,4,2)+1 as int) || right( ytd,2 ) as ytd,
|
||
# MAGIC geo_key,
|
||
# MAGIC top_brand_gr_ytd
|
||
# MAGIC from tmp_kpi_ytd_value
|
||
# MAGIC ), tmp_kpi_ytd_volume_ly as (
|
||
# MAGIC select
|
||
# MAGIC ta,
|
||
# MAGIC market,
|
||
# MAGIC left(ytd,3) || cast(substr(ytd,4,2)+1 as int) || right( ytd,2 ) as ytd,
|
||
# MAGIC geo_key,
|
||
# MAGIC top_brand_gr_ytd
|
||
# MAGIC from tmp_kpi_ytd_volume
|
||
# MAGIC ), tmp_kpi_ytd_value_all as (
|
||
# MAGIC select
|
||
# MAGIC a.ta,
|
||
# MAGIC a.market,
|
||
# MAGIC a.ytd,
|
||
# MAGIC a.geo_key,
|
||
# MAGIC a.top_brand_gr_ytd,
|
||
# MAGIC b.top_brand_gr_ytd as top_brand_gr_ytd_ly
|
||
# MAGIC from tmp_kpi_ytd_value a
|
||
# MAGIC inner join tmp_kpi_ytd_value_ly b
|
||
# MAGIC on a.ta = b.ta
|
||
# MAGIC and a.market = b.market
|
||
# MAGIC and a.ytd = b.ytd
|
||
# MAGIC and a.geo_key = b.geo_key
|
||
# MAGIC ), tmp_kpi_ytd_volume_all as (
|
||
# MAGIC select
|
||
# MAGIC a.ta,
|
||
# MAGIC a.market,
|
||
# MAGIC a.ytd,
|
||
# MAGIC a.geo_key,
|
||
# MAGIC a.top_brand_gr_ytd,
|
||
# MAGIC b.top_brand_gr_ytd as top_brand_gr_ytd_ly
|
||
# MAGIC from tmp_kpi_ytd_volume a
|
||
# MAGIC inner join tmp_kpi_ytd_volume_ly b
|
||
# MAGIC on a.ta = b.ta
|
||
# MAGIC and a.market = b.market
|
||
# MAGIC and a.ytd = b.ytd
|
||
# MAGIC and a.geo_key = b.geo_key
|
||
# MAGIC )
|
||
# MAGIC
|
||
# MAGIC insert into table dws.dws_zk_retail_sales_kpi
|
||
# MAGIC
|
||
# MAGIC select
|
||
# MAGIC distinct
|
||
# MAGIC '' as pack_code,
|
||
# MAGIC '' as corp_cod,
|
||
# MAGIC null as yyyymm,
|
||
# MAGIC a.ytd,
|
||
# MAGIC a.geo_key,
|
||
# MAGIC 'top_brand_gr_ytd' as KPI_name,
|
||
# MAGIC a.top_brand_gr_ytd as kpi_val,
|
||
# MAGIC a.top_brand_gr_ytd_ly as kpi_val_ly,
|
||
# MAGIC null as str_kpi_val,
|
||
# MAGIC null as str_kpi_val_ly,
|
||
# MAGIC b.top_brand_gr_ytd as kpi_vol,
|
||
# MAGIC b.top_brand_gr_ytd_ly as kpi_vol_ly,
|
||
# MAGIC null as str_kpi_vol,
|
||
# MAGIC null as str_kpi_vol_ly,
|
||
# MAGIC 'N' as TOTAL_FLAG,
|
||
# MAGIC a.ta
|
||
# MAGIC from tmp_kpi_ytd_value_all a
|
||
# MAGIC inner join tmp_kpi_ytd_volume_all b
|
||
# MAGIC on a.ta = b.ta
|
||
# MAGIC and a.market = b.market
|
||
# MAGIC and a.ytd = b.ytd
|
||
# MAGIC and a.geo_key = b.geo_key
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %sql
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi
|
||
# MAGIC -- 8.7 kpi: top_brand_inc_ms_ytd
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC with tmp_kpi_ytd_value as (
|
||
# MAGIC select
|
||
# MAGIC distinct
|
||
# MAGIC a.ta,
|
||
# MAGIC a.market,
|
||
# MAGIC a.ytd,
|
||
# MAGIC d.geo_key,
|
||
# MAGIC a.top_brand_inc_ms_ytd
|
||
# MAGIC from dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all a
|
||
# MAGIC left join dm.dm_zk_retail_geo d
|
||
# MAGIC on a.province_city = d.province_city
|
||
# MAGIC where a.ranked_by = 'value'
|
||
# MAGIC and a.ytd is not null
|
||
# MAGIC ), tmp_kpi_ytd_volume as (
|
||
# MAGIC select
|
||
# MAGIC distinct
|
||
# MAGIC a.ta,
|
||
# MAGIC a.market,
|
||
# MAGIC a.ytd,
|
||
# MAGIC d.geo_key,
|
||
# MAGIC a.top_brand_inc_ms_ytd
|
||
# MAGIC from dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all a
|
||
# MAGIC left join dm.dm_zk_retail_geo d
|
||
# MAGIC on a.province_city = d.province_city
|
||
# MAGIC where a.ranked_by = 'volume'
|
||
# MAGIC and a.ytd is not null
|
||
# MAGIC ), tmp_kpi_ytd_value_ly as (
|
||
# MAGIC select
|
||
# MAGIC ta,
|
||
# MAGIC market,
|
||
# MAGIC left(ytd,3) || cast(substr(ytd,4,2)+1 as int) || right( ytd,2 ) as ytd,
|
||
# MAGIC geo_key,
|
||
# MAGIC top_brand_inc_ms_ytd
|
||
# MAGIC from tmp_kpi_ytd_value
|
||
# MAGIC ), tmp_kpi_ytd_volume_ly as (
|
||
# MAGIC select
|
||
# MAGIC ta,
|
||
# MAGIC market,
|
||
# MAGIC left(ytd,3) || cast(substr(ytd,4,2)+1 as int) || right( ytd,2 ) as ytd,
|
||
# MAGIC geo_key,
|
||
# MAGIC top_brand_inc_ms_ytd
|
||
# MAGIC from tmp_kpi_ytd_volume
|
||
# MAGIC ), tmp_kpi_ytd_value_all as (
|
||
# MAGIC select
|
||
# MAGIC a.ta,
|
||
# MAGIC a.market,
|
||
# MAGIC a.ytd,
|
||
# MAGIC a.geo_key,
|
||
# MAGIC a.top_brand_inc_ms_ytd,
|
||
# MAGIC b.top_brand_inc_ms_ytd as top_brand_inc_ms_ytd_ly
|
||
# MAGIC from tmp_kpi_ytd_value a
|
||
# MAGIC inner join tmp_kpi_ytd_value_ly b
|
||
# MAGIC on a.ta = b.ta
|
||
# MAGIC and a.market = b.market
|
||
# MAGIC and a.ytd = b.ytd
|
||
# MAGIC and a.geo_key = b.geo_key
|
||
# MAGIC ), tmp_kpi_ytd_volume_all as (
|
||
# MAGIC select
|
||
# MAGIC a.ta,
|
||
# MAGIC a.market,
|
||
# MAGIC a.ytd,
|
||
# MAGIC a.geo_key,
|
||
# MAGIC a.top_brand_inc_ms_ytd,
|
||
# MAGIC b.top_brand_inc_ms_ytd as top_brand_inc_ms_ytd_ly
|
||
# MAGIC from tmp_kpi_ytd_volume a
|
||
# MAGIC inner join tmp_kpi_ytd_volume_ly b
|
||
# MAGIC on a.ta = b.ta
|
||
# MAGIC and a.market = b.market
|
||
# MAGIC and a.ytd = b.ytd
|
||
# MAGIC and a.geo_key = b.geo_key
|
||
# MAGIC )
|
||
# MAGIC
|
||
# MAGIC insert into table dws.dws_zk_retail_sales_kpi
|
||
# MAGIC
|
||
# MAGIC select
|
||
# MAGIC distinct
|
||
# MAGIC '' as pack_code,
|
||
# MAGIC '' as corp_cod,
|
||
# MAGIC null as yyyymm,
|
||
# MAGIC a.ytd,
|
||
# MAGIC a.geo_key,
|
||
# MAGIC 'top_brand_inc_ms_ytd' as KPI_name,
|
||
# MAGIC a.top_brand_inc_ms_ytd as kpi_val,
|
||
# MAGIC a.top_brand_inc_ms_ytd_ly as kpi_val_ly,
|
||
# MAGIC null as str_kpi_val,
|
||
# MAGIC null as str_kpi_val_ly,
|
||
# MAGIC b.top_brand_inc_ms_ytd as kpi_vol,
|
||
# MAGIC b.top_brand_inc_ms_ytd_ly as kpi_vol_ly,
|
||
# MAGIC null as str_kpi_vol,
|
||
# MAGIC null as str_kpi_vol_ly,
|
||
# MAGIC 'N' as TOTAL_FLAG,
|
||
# MAGIC a.ta
|
||
# MAGIC from tmp_kpi_ytd_value_all a
|
||
# MAGIC inner join tmp_kpi_ytd_volume_all b
|
||
# MAGIC on a.ta = b.ta
|
||
# MAGIC and a.market = b.market
|
||
# MAGIC and a.ytd = b.ytd
|
||
# MAGIC and a.geo_key = b.geo_key
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %sql
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi
|
||
# MAGIC -- 8.8 kpi: key_brand_qtd
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC with tmp_kpi_ytd_value as (
|
||
# MAGIC select
|
||
# MAGIC distinct
|
||
# MAGIC a.ta,
|
||
# MAGIC a.market,
|
||
# MAGIC a.yyyymm,
|
||
# MAGIC d.geo_key,
|
||
# MAGIC a.key_brand_qtd
|
||
# MAGIC from dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all a
|
||
# MAGIC left join dm.dm_zk_retail_geo d
|
||
# MAGIC on a.province_city = d.province_city
|
||
# MAGIC where a.ranked_by = 'value'
|
||
# MAGIC and a.ytd is not null
|
||
# MAGIC ), tmp_kpi_ytd_volume as (
|
||
# MAGIC select
|
||
# MAGIC distinct
|
||
# MAGIC a.ta,
|
||
# MAGIC a.market,
|
||
# MAGIC a.yyyymm,
|
||
# MAGIC d.geo_key,
|
||
# MAGIC a.key_brand_qtd
|
||
# MAGIC from dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all a
|
||
# MAGIC left join dm.dm_zk_retail_geo d
|
||
# MAGIC on a.province_city = d.province_city
|
||
# MAGIC where a.ranked_by = 'volume'
|
||
# MAGIC and a.ytd is not null
|
||
# MAGIC ), tmp_kpi_ytd_value_ly as (
|
||
# MAGIC select
|
||
# MAGIC ta,
|
||
# MAGIC market,
|
||
# MAGIC cast(yyyymm + 100 as int ) as yyyymm,
|
||
# MAGIC geo_key,
|
||
# MAGIC key_brand_qtd
|
||
# MAGIC from tmp_kpi_ytd_value
|
||
# MAGIC ), tmp_kpi_ytd_volume_ly as (
|
||
# MAGIC select
|
||
# MAGIC ta,
|
||
# MAGIC market,
|
||
# MAGIC cast(yyyymm + 100 as int ) as yyyymm,
|
||
# MAGIC geo_key,
|
||
# MAGIC key_brand_qtd
|
||
# MAGIC from tmp_kpi_ytd_volume
|
||
# MAGIC ), tmp_kpi_ytd_value_all as (
|
||
# MAGIC select
|
||
# MAGIC a.ta,
|
||
# MAGIC a.market,
|
||
# MAGIC a.yyyymm,
|
||
# MAGIC a.geo_key,
|
||
# MAGIC a.key_brand_qtd,
|
||
# MAGIC b.key_brand_qtd as key_brand_qtd_ly
|
||
# MAGIC from tmp_kpi_ytd_value a
|
||
# MAGIC inner join tmp_kpi_ytd_value_ly b
|
||
# MAGIC on a.ta = b.ta
|
||
# MAGIC and a.market = b.market
|
||
# MAGIC and a.yyyymm = b.yyyymm
|
||
# MAGIC and a.geo_key = b.geo_key
|
||
# MAGIC ), tmp_kpi_ytd_volume_all as (
|
||
# MAGIC select
|
||
# MAGIC a.ta,
|
||
# MAGIC a.market,
|
||
# MAGIC a.yyyymm,
|
||
# MAGIC a.geo_key,
|
||
# MAGIC a.key_brand_qtd,
|
||
# MAGIC b.key_brand_qtd as key_brand_qtd_ly
|
||
# MAGIC from tmp_kpi_ytd_volume a
|
||
# MAGIC inner join tmp_kpi_ytd_volume_ly b
|
||
# MAGIC on a.ta = b.ta
|
||
# MAGIC and a.market = b.market
|
||
# MAGIC and a.yyyymm = b.yyyymm
|
||
# MAGIC and a.geo_key = b.geo_key
|
||
# MAGIC )
|
||
# MAGIC
|
||
# MAGIC insert into table dws.dws_zk_retail_sales_kpi
|
||
# MAGIC
|
||
# MAGIC select
|
||
# MAGIC distinct
|
||
# MAGIC '' as pack_code,
|
||
# MAGIC '' as corp_cod,
|
||
# MAGIC a.yyyymm,
|
||
# MAGIC null as ytd,
|
||
# MAGIC a.geo_key,
|
||
# MAGIC 'key_brand_qtd' as KPI_name,
|
||
# MAGIC null as kpi_val,
|
||
# MAGIC null as kpi_val_ly,
|
||
# MAGIC a.key_brand_qtd as str_kpi_val,
|
||
# MAGIC a.key_brand_qtd_ly as str_kpi_val_ly,
|
||
# MAGIC null as kpi_vol,
|
||
# MAGIC null as kpi_vol_ly,
|
||
# MAGIC b.key_brand_qtd as str_kpi_vol,
|
||
# MAGIC b.key_brand_qtd_ly as str_kpi_vol_ly,
|
||
# MAGIC 'N' as TOTAL_FLAG,
|
||
# MAGIC a.ta
|
||
# MAGIC from tmp_kpi_ytd_value_all a
|
||
# MAGIC inner join tmp_kpi_ytd_volume_all b
|
||
# MAGIC on a.ta = b.ta
|
||
# MAGIC and a.market = b.market
|
||
# MAGIC and a.yyyymm = b.yyyymm
|
||
# MAGIC and a.geo_key = b.geo_key
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %sql
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi
|
||
# MAGIC -- 8.9 kpi: key_brand_rank_qtd
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC with tmp_kpi_ytd_value as (
|
||
# MAGIC select
|
||
# MAGIC distinct
|
||
# MAGIC a.ta,
|
||
# MAGIC a.market,
|
||
# MAGIC a.yyyymm,
|
||
# MAGIC d.geo_key,
|
||
# MAGIC a.key_brand_rank_qtd
|
||
# MAGIC from dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all a
|
||
# MAGIC left join dm.dm_zk_retail_geo d
|
||
# MAGIC on a.province_city = d.province_city
|
||
# MAGIC where a.ranked_by = 'value'
|
||
# MAGIC and a.ytd is not null
|
||
# MAGIC ), tmp_kpi_ytd_volume as (
|
||
# MAGIC select
|
||
# MAGIC distinct
|
||
# MAGIC a.ta,
|
||
# MAGIC a.market,
|
||
# MAGIC a.yyyymm,
|
||
# MAGIC d.geo_key,
|
||
# MAGIC a.key_brand_rank_qtd
|
||
# MAGIC from dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all a
|
||
# MAGIC left join dm.dm_zk_retail_geo d
|
||
# MAGIC on a.province_city = d.province_city
|
||
# MAGIC where a.ranked_by = 'volume'
|
||
# MAGIC and a.ytd is not null
|
||
# MAGIC ), tmp_kpi_ytd_value_ly as (
|
||
# MAGIC select
|
||
# MAGIC ta,
|
||
# MAGIC market,
|
||
# MAGIC cast(yyyymm + 100 as int ) as yyyymm,
|
||
# MAGIC geo_key,
|
||
# MAGIC key_brand_rank_qtd
|
||
# MAGIC from tmp_kpi_ytd_value
|
||
# MAGIC ), tmp_kpi_ytd_volume_ly as (
|
||
# MAGIC select
|
||
# MAGIC ta,
|
||
# MAGIC market,
|
||
# MAGIC cast(yyyymm + 100 as int ) as yyyymm,
|
||
# MAGIC geo_key,
|
||
# MAGIC key_brand_rank_qtd
|
||
# MAGIC from tmp_kpi_ytd_volume
|
||
# MAGIC ), tmp_kpi_ytd_value_all as (
|
||
# MAGIC select
|
||
# MAGIC a.ta,
|
||
# MAGIC a.market,
|
||
# MAGIC a.yyyymm,
|
||
# MAGIC a.geo_key,
|
||
# MAGIC a.key_brand_rank_qtd,
|
||
# MAGIC b.key_brand_rank_qtd as key_brand_rank_qtd_ly
|
||
# MAGIC from tmp_kpi_ytd_value a
|
||
# MAGIC inner join tmp_kpi_ytd_value_ly b
|
||
# MAGIC on a.ta = b.ta
|
||
# MAGIC and a.market = b.market
|
||
# MAGIC and a.yyyymm = b.yyyymm
|
||
# MAGIC and a.geo_key = b.geo_key
|
||
# MAGIC ), tmp_kpi_ytd_volume_all as (
|
||
# MAGIC select
|
||
# MAGIC a.ta,
|
||
# MAGIC a.market,
|
||
# MAGIC a.yyyymm,
|
||
# MAGIC a.geo_key,
|
||
# MAGIC a.key_brand_rank_qtd,
|
||
# MAGIC b.key_brand_rank_qtd as key_brand_rank_qtd_ly
|
||
# MAGIC from tmp_kpi_ytd_volume a
|
||
# MAGIC inner join tmp_kpi_ytd_volume_ly b
|
||
# MAGIC on a.ta = b.ta
|
||
# MAGIC and a.market = b.market
|
||
# MAGIC and a.yyyymm = b.yyyymm
|
||
# MAGIC and a.geo_key = b.geo_key
|
||
# MAGIC )
|
||
# MAGIC
|
||
# MAGIC insert into table dws.dws_zk_retail_sales_kpi
|
||
# MAGIC
|
||
# MAGIC select
|
||
# MAGIC distinct
|
||
# MAGIC '' as pack_code,
|
||
# MAGIC '' as corp_cod,
|
||
# MAGIC a.yyyymm,
|
||
# MAGIC null as ytd,
|
||
# MAGIC a.geo_key,
|
||
# MAGIC 'key_brand_rank_qtd' as KPI_name,
|
||
# MAGIC a.key_brand_rank_qtd as kpi_val,
|
||
# MAGIC a.key_brand_rank_qtd_ly as kpi_val_ly,
|
||
# MAGIC null as str_kpi_val,
|
||
# MAGIC null as str_kpi_val_ly,
|
||
# MAGIC b.key_brand_rank_qtd as kpi_vol,
|
||
# MAGIC b.key_brand_rank_qtd_ly as kpi_vol_ly,
|
||
# MAGIC null as str_kpi_vol,
|
||
# MAGIC null as str_kpi_vol_ly,
|
||
# MAGIC 'N' as TOTAL_FLAG,
|
||
# MAGIC a.ta
|
||
# MAGIC from tmp_kpi_ytd_value_all a
|
||
# MAGIC inner join tmp_kpi_ytd_volume_all b
|
||
# MAGIC on a.ta = b.ta
|
||
# MAGIC and a.market = b.market
|
||
# MAGIC and a.yyyymm = b.yyyymm
|
||
# MAGIC and a.geo_key = b.geo_key
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %sql
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi
|
||
# MAGIC -- 8.10 kpi: top_brand_qtd
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC with tmp_kpi_ytd_value as (
|
||
# MAGIC select
|
||
# MAGIC distinct
|
||
# MAGIC a.ta,
|
||
# MAGIC a.market,
|
||
# MAGIC a.yyyymm,
|
||
# MAGIC d.geo_key,
|
||
# MAGIC a.top_brand_qtd
|
||
# MAGIC from dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all a
|
||
# MAGIC left join dm.dm_zk_retail_geo d
|
||
# MAGIC on a.province_city = d.province_city
|
||
# MAGIC where a.ranked_by = 'value'
|
||
# MAGIC and a.ytd is not null
|
||
# MAGIC ), tmp_kpi_ytd_volume as (
|
||
# MAGIC select
|
||
# MAGIC distinct
|
||
# MAGIC a.ta,
|
||
# MAGIC a.market,
|
||
# MAGIC a.yyyymm,
|
||
# MAGIC d.geo_key,
|
||
# MAGIC a.top_brand_qtd
|
||
# MAGIC from dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all a
|
||
# MAGIC left join dm.dm_zk_retail_geo d
|
||
# MAGIC on a.province_city = d.province_city
|
||
# MAGIC where a.ranked_by = 'volume'
|
||
# MAGIC and a.ytd is not null
|
||
# MAGIC ), tmp_kpi_ytd_value_ly as (
|
||
# MAGIC select
|
||
# MAGIC ta,
|
||
# MAGIC market,
|
||
# MAGIC cast(yyyymm + 100 as int ) as yyyymm,
|
||
# MAGIC geo_key,
|
||
# MAGIC top_brand_qtd
|
||
# MAGIC from tmp_kpi_ytd_value
|
||
# MAGIC ), tmp_kpi_ytd_volume_ly as (
|
||
# MAGIC select
|
||
# MAGIC ta,
|
||
# MAGIC market,
|
||
# MAGIC cast(yyyymm + 100 as int ) as yyyymm,
|
||
# MAGIC geo_key,
|
||
# MAGIC top_brand_qtd
|
||
# MAGIC from tmp_kpi_ytd_volume
|
||
# MAGIC ), tmp_kpi_ytd_value_all as (
|
||
# MAGIC select
|
||
# MAGIC a.ta,
|
||
# MAGIC a.market,
|
||
# MAGIC a.yyyymm,
|
||
# MAGIC a.geo_key,
|
||
# MAGIC a.top_brand_qtd,
|
||
# MAGIC b.top_brand_qtd as top_brand_qtd_ly
|
||
# MAGIC from tmp_kpi_ytd_value a
|
||
# MAGIC inner join tmp_kpi_ytd_value_ly b
|
||
# MAGIC on a.ta = b.ta
|
||
# MAGIC and a.market = b.market
|
||
# MAGIC and a.yyyymm = b.yyyymm
|
||
# MAGIC and a.geo_key = b.geo_key
|
||
# MAGIC ), tmp_kpi_ytd_volume_all as (
|
||
# MAGIC select
|
||
# MAGIC a.ta,
|
||
# MAGIC a.market,
|
||
# MAGIC a.yyyymm,
|
||
# MAGIC a.geo_key,
|
||
# MAGIC a.top_brand_qtd,
|
||
# MAGIC b.top_brand_qtd as top_brand_qtd_ly
|
||
# MAGIC from tmp_kpi_ytd_volume a
|
||
# MAGIC inner join tmp_kpi_ytd_volume_ly b
|
||
# MAGIC on a.ta = b.ta
|
||
# MAGIC and a.market = b.market
|
||
# MAGIC and a.yyyymm = b.yyyymm
|
||
# MAGIC and a.geo_key = b.geo_key
|
||
# MAGIC )
|
||
# MAGIC
|
||
# MAGIC insert into table dws.dws_zk_retail_sales_kpi
|
||
# MAGIC
|
||
# MAGIC select
|
||
# MAGIC distinct
|
||
# MAGIC '' as pack_code,
|
||
# MAGIC '' as corp_cod,
|
||
# MAGIC a.yyyymm,
|
||
# MAGIC null as ytd,
|
||
# MAGIC a.geo_key,
|
||
# MAGIC 'top_brand_qtd' as KPI_name,
|
||
# MAGIC null as kpi_val,
|
||
# MAGIC null as kpi_val_ly,
|
||
# MAGIC a.top_brand_qtd as str_kpi_val,
|
||
# MAGIC a.top_brand_qtd_ly as str_kpi_val_ly,
|
||
# MAGIC null as kpi_vol,
|
||
# MAGIC null as kpi_vol_ly,
|
||
# MAGIC b.top_brand_qtd as str_kpi_vol,
|
||
# MAGIC b.top_brand_qtd_ly as str_kpi_vol_ly,
|
||
# MAGIC 'N' as TOTAL_FLAG,
|
||
# MAGIC a.ta
|
||
# MAGIC from tmp_kpi_ytd_value_all a
|
||
# MAGIC inner join tmp_kpi_ytd_volume_all b
|
||
# MAGIC on a.ta = b.ta
|
||
# MAGIC and a.market = b.market
|
||
# MAGIC and a.yyyymm = b.yyyymm
|
||
# MAGIC and a.geo_key = b.geo_key
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %sql
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi
|
||
# MAGIC -- 8.11 kpi: top_brand_ms_qtd
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC with tmp_kpi_ytd_value as (
|
||
# MAGIC select
|
||
# MAGIC distinct
|
||
# MAGIC a.ta,
|
||
# MAGIC a.market,
|
||
# MAGIC a.yyyymm,
|
||
# MAGIC d.geo_key,
|
||
# MAGIC a.top_brand_ms_qtd
|
||
# MAGIC from dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all a
|
||
# MAGIC left join dm.dm_zk_retail_geo d
|
||
# MAGIC on a.province_city = d.province_city
|
||
# MAGIC where a.ranked_by = 'value'
|
||
# MAGIC and a.ytd is not null
|
||
# MAGIC ), tmp_kpi_ytd_volume as (
|
||
# MAGIC select
|
||
# MAGIC distinct
|
||
# MAGIC a.ta,
|
||
# MAGIC a.market,
|
||
# MAGIC a.yyyymm,
|
||
# MAGIC d.geo_key,
|
||
# MAGIC a.top_brand_ms_qtd
|
||
# MAGIC from dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all a
|
||
# MAGIC left join dm.dm_zk_retail_geo d
|
||
# MAGIC on a.province_city = d.province_city
|
||
# MAGIC where a.ranked_by = 'volume'
|
||
# MAGIC and a.ytd is not null
|
||
# MAGIC ), tmp_kpi_ytd_value_ly as (
|
||
# MAGIC select
|
||
# MAGIC ta,
|
||
# MAGIC market,
|
||
# MAGIC cast(yyyymm + 100 as int ) as yyyymm,
|
||
# MAGIC geo_key,
|
||
# MAGIC top_brand_ms_qtd
|
||
# MAGIC from tmp_kpi_ytd_value
|
||
# MAGIC ), tmp_kpi_ytd_volume_ly as (
|
||
# MAGIC select
|
||
# MAGIC ta,
|
||
# MAGIC market,
|
||
# MAGIC cast(yyyymm + 100 as int ) as yyyymm,
|
||
# MAGIC geo_key,
|
||
# MAGIC top_brand_ms_qtd
|
||
# MAGIC from tmp_kpi_ytd_volume
|
||
# MAGIC ), tmp_kpi_ytd_value_all as (
|
||
# MAGIC select
|
||
# MAGIC a.ta,
|
||
# MAGIC a.market,
|
||
# MAGIC a.yyyymm,
|
||
# MAGIC a.geo_key,
|
||
# MAGIC a.top_brand_ms_qtd,
|
||
# MAGIC b.top_brand_ms_qtd as top_brand_ms_qtd_ly
|
||
# MAGIC from tmp_kpi_ytd_value a
|
||
# MAGIC inner join tmp_kpi_ytd_value_ly b
|
||
# MAGIC on a.ta = b.ta
|
||
# MAGIC and a.market = b.market
|
||
# MAGIC and a.yyyymm = b.yyyymm
|
||
# MAGIC and a.geo_key = b.geo_key
|
||
# MAGIC ), tmp_kpi_ytd_volume_all as (
|
||
# MAGIC select
|
||
# MAGIC a.ta,
|
||
# MAGIC a.market,
|
||
# MAGIC a.yyyymm,
|
||
# MAGIC a.geo_key,
|
||
# MAGIC a.top_brand_ms_qtd,
|
||
# MAGIC b.top_brand_ms_qtd as top_brand_ms_qtd_ly
|
||
# MAGIC from tmp_kpi_ytd_volume a
|
||
# MAGIC inner join tmp_kpi_ytd_volume_ly b
|
||
# MAGIC on a.ta = b.ta
|
||
# MAGIC and a.market = b.market
|
||
# MAGIC and a.yyyymm = b.yyyymm
|
||
# MAGIC and a.geo_key = b.geo_key
|
||
# MAGIC )
|
||
# MAGIC
|
||
# MAGIC insert into table dws.dws_zk_retail_sales_kpi
|
||
# MAGIC
|
||
# MAGIC select
|
||
# MAGIC distinct
|
||
# MAGIC '' as pack_code,
|
||
# MAGIC '' as corp_cod,
|
||
# MAGIC a.yyyymm,
|
||
# MAGIC null as ytd,
|
||
# MAGIC a.geo_key,
|
||
# MAGIC 'top_brand_ms_qtd' as KPI_name,
|
||
# MAGIC a.top_brand_ms_qtd as kpi_val,
|
||
# MAGIC a.top_brand_ms_qtd_ly as kpi_val_ly,
|
||
# MAGIC null as str_kpi_val,
|
||
# MAGIC null as str_kpi_val_ly,
|
||
# MAGIC b.top_brand_ms_qtd as kpi_vol,
|
||
# MAGIC b.top_brand_ms_qtd_ly as kpi_vol_ly,
|
||
# MAGIC null as str_kpi_vol,
|
||
# MAGIC null as str_kpi_vol_ly,
|
||
# MAGIC 'N' as TOTAL_FLAG,
|
||
# MAGIC a.ta
|
||
# MAGIC from tmp_kpi_ytd_value_all a
|
||
# MAGIC inner join tmp_kpi_ytd_volume_all b
|
||
# MAGIC on a.ta = b.ta
|
||
# MAGIC and a.market = b.market
|
||
# MAGIC and a.yyyymm = b.yyyymm
|
||
# MAGIC and a.geo_key = b.geo_key
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %sql
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi
|
||
# MAGIC -- 8.12 kpi: top_brand_inc_ms_qtd
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC with tmp_kpi_ytd_value as (
|
||
# MAGIC select
|
||
# MAGIC distinct
|
||
# MAGIC a.ta,
|
||
# MAGIC a.market,
|
||
# MAGIC a.yyyymm,
|
||
# MAGIC d.geo_key,
|
||
# MAGIC a.top_brand_inc_ms_qtd
|
||
# MAGIC from dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all a
|
||
# MAGIC left join dm.dm_zk_retail_geo d
|
||
# MAGIC on a.province_city = d.province_city
|
||
# MAGIC where a.ranked_by = 'value'
|
||
# MAGIC and a.ytd is not null
|
||
# MAGIC ), tmp_kpi_ytd_volume as (
|
||
# MAGIC select
|
||
# MAGIC distinct
|
||
# MAGIC a.ta,
|
||
# MAGIC a.market,
|
||
# MAGIC a.yyyymm,
|
||
# MAGIC d.geo_key,
|
||
# MAGIC a.top_brand_inc_ms_qtd
|
||
# MAGIC from dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all a
|
||
# MAGIC left join dm.dm_zk_retail_geo d
|
||
# MAGIC on a.province_city = d.province_city
|
||
# MAGIC where a.ranked_by = 'volume'
|
||
# MAGIC and a.ytd is not null
|
||
# MAGIC ), tmp_kpi_ytd_value_ly as (
|
||
# MAGIC select
|
||
# MAGIC ta,
|
||
# MAGIC market,
|
||
# MAGIC cast(yyyymm + 100 as int ) as yyyymm,
|
||
# MAGIC geo_key,
|
||
# MAGIC top_brand_inc_ms_qtd
|
||
# MAGIC from tmp_kpi_ytd_value
|
||
# MAGIC ), tmp_kpi_ytd_volume_ly as (
|
||
# MAGIC select
|
||
# MAGIC ta,
|
||
# MAGIC market,
|
||
# MAGIC cast(yyyymm + 100 as int ) as yyyymm,
|
||
# MAGIC geo_key,
|
||
# MAGIC top_brand_inc_ms_qtd
|
||
# MAGIC from tmp_kpi_ytd_volume
|
||
# MAGIC ), tmp_kpi_ytd_value_all as (
|
||
# MAGIC select
|
||
# MAGIC a.ta,
|
||
# MAGIC a.market,
|
||
# MAGIC a.yyyymm,
|
||
# MAGIC a.geo_key,
|
||
# MAGIC a.top_brand_inc_ms_qtd,
|
||
# MAGIC b.top_brand_inc_ms_qtd as top_brand_inc_ms_qtd_ly
|
||
# MAGIC from tmp_kpi_ytd_value a
|
||
# MAGIC inner join tmp_kpi_ytd_value_ly b
|
||
# MAGIC on a.ta = b.ta
|
||
# MAGIC and a.market = b.market
|
||
# MAGIC and a.yyyymm = b.yyyymm
|
||
# MAGIC and a.geo_key = b.geo_key
|
||
# MAGIC ), tmp_kpi_ytd_volume_all as (
|
||
# MAGIC select
|
||
# MAGIC a.ta,
|
||
# MAGIC a.market,
|
||
# MAGIC a.yyyymm,
|
||
# MAGIC a.geo_key,
|
||
# MAGIC a.top_brand_inc_ms_qtd,
|
||
# MAGIC b.top_brand_inc_ms_qtd as top_brand_inc_ms_qtd_ly
|
||
# MAGIC from tmp_kpi_ytd_volume a
|
||
# MAGIC inner join tmp_kpi_ytd_volume_ly b
|
||
# MAGIC on a.ta = b.ta
|
||
# MAGIC and a.market = b.market
|
||
# MAGIC and a.yyyymm = b.yyyymm
|
||
# MAGIC and a.geo_key = b.geo_key
|
||
# MAGIC )
|
||
# MAGIC
|
||
# MAGIC insert into table dws.dws_zk_retail_sales_kpi
|
||
# MAGIC
|
||
# MAGIC select
|
||
# MAGIC distinct
|
||
# MAGIC '' as pack_code,
|
||
# MAGIC '' as corp_cod,
|
||
# MAGIC a.yyyymm,
|
||
# MAGIC null as ytd,
|
||
# MAGIC a.geo_key,
|
||
# MAGIC 'top_brand_inc_ms_qtd' as KPI_name,
|
||
# MAGIC a.top_brand_inc_ms_qtd as kpi_val,
|
||
# MAGIC a.top_brand_inc_ms_qtd_ly as kpi_val_ly,
|
||
# MAGIC null as str_kpi_val,
|
||
# MAGIC null as str_kpi_val_ly,
|
||
# MAGIC b.top_brand_inc_ms_qtd as kpi_vol,
|
||
# MAGIC b.top_brand_inc_ms_qtd_ly as kpi_vol_ly,
|
||
# MAGIC null as str_kpi_vol,
|
||
# MAGIC null as str_kpi_vol_ly,
|
||
# MAGIC 'N' as TOTAL_FLAG,
|
||
# MAGIC a.ta
|
||
# MAGIC from tmp_kpi_ytd_value_all a
|
||
# MAGIC inner join tmp_kpi_ytd_volume_all b
|
||
# MAGIC on a.ta = b.ta
|
||
# MAGIC and a.market = b.market
|
||
# MAGIC and a.yyyymm = b.yyyymm
|
||
# MAGIC and a.geo_key = b.geo_key
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %sql
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi
|
||
# MAGIC -- 8.13 kpi: top_brand_gr_qtd
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC with tmp_kpi_ytd_value as (
|
||
# MAGIC select
|
||
# MAGIC distinct
|
||
# MAGIC a.ta,
|
||
# MAGIC a.market,
|
||
# MAGIC a.yyyymm,
|
||
# MAGIC d.geo_key,
|
||
# MAGIC a.top_brand_gr_qtd
|
||
# MAGIC from dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all a
|
||
# MAGIC left join dm.dm_zk_retail_geo d
|
||
# MAGIC on a.province_city = d.province_city
|
||
# MAGIC where a.ranked_by = 'value'
|
||
# MAGIC and a.ytd is not null
|
||
# MAGIC ), tmp_kpi_ytd_volume as (
|
||
# MAGIC select
|
||
# MAGIC distinct
|
||
# MAGIC a.ta,
|
||
# MAGIC a.market,
|
||
# MAGIC a.yyyymm,
|
||
# MAGIC d.geo_key,
|
||
# MAGIC a.top_brand_gr_qtd
|
||
# MAGIC from dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all a
|
||
# MAGIC left join dm.dm_zk_retail_geo d
|
||
# MAGIC on a.province_city = d.province_city
|
||
# MAGIC where a.ranked_by = 'volume'
|
||
# MAGIC and a.ytd is not null
|
||
# MAGIC ), tmp_kpi_ytd_value_ly as (
|
||
# MAGIC select
|
||
# MAGIC ta,
|
||
# MAGIC market,
|
||
# MAGIC cast(yyyymm + 100 as int ) as yyyymm,
|
||
# MAGIC geo_key,
|
||
# MAGIC top_brand_gr_qtd
|
||
# MAGIC from tmp_kpi_ytd_value
|
||
# MAGIC ), tmp_kpi_ytd_volume_ly as (
|
||
# MAGIC select
|
||
# MAGIC ta,
|
||
# MAGIC market,
|
||
# MAGIC cast(yyyymm + 100 as int ) as yyyymm,
|
||
# MAGIC geo_key,
|
||
# MAGIC top_brand_gr_qtd
|
||
# MAGIC from tmp_kpi_ytd_volume
|
||
# MAGIC ), tmp_kpi_ytd_value_all as (
|
||
# MAGIC select
|
||
# MAGIC a.ta,
|
||
# MAGIC a.market,
|
||
# MAGIC a.yyyymm,
|
||
# MAGIC a.geo_key,
|
||
# MAGIC a.top_brand_gr_qtd,
|
||
# MAGIC b.top_brand_gr_qtd as top_brand_gr_qtd_ly
|
||
# MAGIC from tmp_kpi_ytd_value a
|
||
# MAGIC inner join tmp_kpi_ytd_value_ly b
|
||
# MAGIC on a.ta = b.ta
|
||
# MAGIC and a.market = b.market
|
||
# MAGIC and a.yyyymm = b.yyyymm
|
||
# MAGIC and a.geo_key = b.geo_key
|
||
# MAGIC ), tmp_kpi_ytd_volume_all as (
|
||
# MAGIC select
|
||
# MAGIC a.ta,
|
||
# MAGIC a.market,
|
||
# MAGIC a.yyyymm,
|
||
# MAGIC a.geo_key,
|
||
# MAGIC a.top_brand_gr_qtd,
|
||
# MAGIC b.top_brand_gr_qtd as top_brand_gr_qtd_ly
|
||
# MAGIC from tmp_kpi_ytd_volume a
|
||
# MAGIC inner join tmp_kpi_ytd_volume_ly b
|
||
# MAGIC on a.ta = b.ta
|
||
# MAGIC and a.market = b.market
|
||
# MAGIC and a.yyyymm = b.yyyymm
|
||
# MAGIC and a.geo_key = b.geo_key
|
||
# MAGIC )
|
||
# MAGIC
|
||
# MAGIC insert into table dws.dws_zk_retail_sales_kpi
|
||
# MAGIC
|
||
# MAGIC select
|
||
# MAGIC distinct
|
||
# MAGIC '' as pack_code,
|
||
# MAGIC '' as corp_cod,
|
||
# MAGIC a.yyyymm,
|
||
# MAGIC null as ytd,
|
||
# MAGIC a.geo_key,
|
||
# MAGIC 'top_brand_gr_qtd' as KPI_name,
|
||
# MAGIC a.top_brand_gr_qtd as kpi_val,
|
||
# MAGIC a.top_brand_gr_qtd_ly as kpi_val_ly,
|
||
# MAGIC null as str_kpi_val,
|
||
# MAGIC null as str_kpi_val_ly,
|
||
# MAGIC b.top_brand_gr_qtd as kpi_vol,
|
||
# MAGIC b.top_brand_gr_qtd_ly as kpi_vol_ly,
|
||
# MAGIC null as str_kpi_vol,
|
||
# MAGIC null as str_kpi_vol_ly,
|
||
# MAGIC 'N' as TOTAL_FLAG,
|
||
# MAGIC a.ta
|
||
# MAGIC from tmp_kpi_ytd_value_all a
|
||
# MAGIC inner join tmp_kpi_ytd_volume_all b
|
||
# MAGIC on a.ta = b.ta
|
||
# MAGIC and a.market = b.market
|
||
# MAGIC and a.yyyymm = b.yyyymm
|
||
# MAGIC and a.geo_key = b.geo_key
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %md
|
||
# MAGIC ### PART-2:TOP数据(8个)
|
||
# MAGIC - top1_brand_val
|
||
# MAGIC - top1_brand_gr
|
||
# MAGIC - top2_brand_val
|
||
# MAGIC - top2_brand_gr
|
||
# MAGIC - top1_incremental_brand
|
||
# MAGIC - top1_incremental_gr
|
||
# MAGIC - top2_incremental_brand
|
||
# MAGIC - top2_incremental_gr
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %sql
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi
|
||
# MAGIC -- 将RX市场数据合并并处理数据格式获取code
|
||
# MAGIC -- -------关联 corp code
|
||
# MAGIC -- -------是否total 数据打标
|
||
# MAGIC -- -------格式处理
|
||
# MAGIC -- -------dm 使用 niad 数据
|
||
# MAGIC -- -------全国数据 地理编码 为 roc
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC insert overwrite table tmp.tmp_zk_retail_rx_ta_and_top_corp
|
||
# MAGIC select
|
||
# MAGIC distinct
|
||
# MAGIC case WHEN right(corporation,3) ='TTL' THEN 'ta_total' else 'ta_corp' end data_type
|
||
# MAGIC ,case when replace(a.rx_type,' TTL','') ='NIAD' THEN 'DM'
|
||
# MAGIC when replace(a.rx_type,' TTL','') ='GI-Rx+OTC' then 'GI'
|
||
# MAGIC ELSE replace(a.rx_type,' TTL','') END ta
|
||
# MAGIC ,nvl(b.CORP_COD ,CORP_COD) CORP_COD
|
||
# MAGIC ,CASE WHEN right(corporation,3) ='TTL' THEN 'Y' else 'N' end TOTAL_FLAG
|
||
# MAGIC ,a.quarter_flag YTD
|
||
# MAGIC ,'ROC' GEO_KEY
|
||
# MAGIC ,replace(a.top1_brand_val,'-','') top1_brand_val
|
||
# MAGIC ,coalesce(cast(a.top1_brand_gr as double ),0 ) top1_brand_gr
|
||
# MAGIC ,replace(a.top2_brand_val,'-','') top2_brand_val
|
||
# MAGIC ,coalesce(cast(a.top2_brand_gr as double ),0 ) top2_brand_gr
|
||
# MAGIC ,replace(a.top1_incremental_brand,'-','') top1_incremental_brand
|
||
# MAGIC ,coalesce(cast(a.top1_incremental_gr as double ),0 ) top1_incremental_gr
|
||
# MAGIC ,replace(a.top2_incremental_brand,'-','') top2_incremental_brand
|
||
# MAGIC ,coalesce(cast(a.top2_incremental_gr as double ),0 ) top2_incremental_gr
|
||
# MAGIC from dwd.dwd_gnd_ext_retail_rx_ta_top_corp a
|
||
# MAGIC left join (select ZK_Corp_C,max(case when CORP_COD ='F+N' then 'A5Z' ELSE CORP_COD END ) CORP_COD from dwd.dwd_inc_gnd_retail_b2c_label_total group by ZK_Corp_C ) b
|
||
# MAGIC on a.corporation = b.ZK_Corp_C
|
||
# MAGIC WHERE rx_type <>'DM'
|
||
# MAGIC UNION ALL
|
||
# MAGIC select
|
||
# MAGIC distinct
|
||
# MAGIC case WHEN right(corporation,3) ='TTL' THEN 'ta_total' else 'ta_corp' end data_type
|
||
# MAGIC ,replace(a.rx_type,' TTL','') ta
|
||
# MAGIC ,nvl(b.CORP_COD ,CORP_COD) CORP_COD
|
||
# MAGIC ,CASE WHEN right(corporation,3) ='TTL' THEN 'Y' else 'N' end TOTAL_FLAG
|
||
# MAGIC ,a.quarter_flag YTD
|
||
# MAGIC ,'ROC' GEO_KEY
|
||
# MAGIC ,replace(a.top1_brand_val,'-','') top1_brand_val
|
||
# MAGIC ,coalesce(cast(a.top1_brand_gr as double ) ,0 ) top1_brand_gr
|
||
# MAGIC ,replace(a.top2_brand_val,'-','') top2_brand_val
|
||
# MAGIC ,coalesce(cast(a.top2_brand_gr as double ) ,0 ) top2_brand_gr
|
||
# MAGIC ,replace(a.top1_incremental_brand,'-','') top1_incremental_brand
|
||
# MAGIC ,coalesce(cast(a.top1_incremental_gr as double ),0 ) top1_incremental_gr
|
||
# MAGIC ,replace(a.top2_incremental_brand,'-','') top2_incremental_brand
|
||
# MAGIC ,coalesce(cast(a.top2_incremental_gr as double ) ,0 ) top2_incremental_gr
|
||
# MAGIC from dwd.dwd_gnd_ext_retail_rx_ta_top_corp a
|
||
# MAGIC left join (select ZK_Corp_C,max(case when CORP_COD ='F+N' then 'A5Z' ELSE CORP_COD END ) CORP_COD from dwd.dwd_inc_gnd_retail_b2c_label_total group by ZK_Corp_C ) b
|
||
# MAGIC on a.corporation = b.ZK_Corp_C
|
||
# MAGIC WHERE rx_type ='NIAD'
|
||
# MAGIC union all
|
||
# MAGIC select distinct
|
||
# MAGIC 'top_corp' data_type
|
||
# MAGIC ,NULL ta
|
||
# MAGIC ,nvl(b.CORP_COD,a.corporation) CORP_COD
|
||
# MAGIC ,'Y' TOTAL_FLAG
|
||
# MAGIC ,a.quarter_flag
|
||
# MAGIC ,'ROC' GEO_KEY
|
||
# MAGIC ,replace(a.top1_brand_val,'-','') top1_brand_val
|
||
# MAGIC ,coalesce(cast(a.top1_brand_gr as double ),0 ) top1_brand_gr
|
||
# MAGIC ,replace(a.top2_brand_val,'-','') top2_brand_val
|
||
# MAGIC ,coalesce(cast(a.top2_brand_gr as double ),0 ) top2_brand_gr
|
||
# MAGIC ,replace(a.top1_incremental_brand,'-','') top1_incremental_brand
|
||
# MAGIC ,coalesce(cast(a.top1_incremental_gr as double ) ,0 ) top1_incremental_gr
|
||
# MAGIC ,replace(a.top2_incremental_brand,'-','') top2_incremental_brand
|
||
# MAGIC ,coalesce(cast(a.top2_incremental_gr as double ) ,0 ) top2_incremental_gr
|
||
# MAGIC from dwd.dwd_gnd_ext_retail_rx_top_corp a
|
||
# MAGIC left join (select ZK_Corp,max(case when CORP_COD ='F+N' then 'A5Z' ELSE CORP_COD END ) CORP_COD from dwd.dwd_inc_gnd_retail_b2c_label_total group by ZK_Corp ) b
|
||
# MAGIC on a.corporation = b.ZK_Corp
|
||
# MAGIC
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %sql
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi
|
||
# MAGIC -- 8.14 top1_brand_val
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC
|
||
# MAGIC insert into table dws.dws_zk_retail_sales_kpi
|
||
# MAGIC
|
||
# MAGIC SELECT distinct
|
||
# MAGIC '' pack_code
|
||
# MAGIC ,corp_cod
|
||
# MAGIC ,NULL YYYYMM
|
||
# MAGIC ,ytd
|
||
# MAGIC ,geo_key
|
||
# MAGIC ,'top1_brand_val' kpi_name
|
||
# MAGIC ,null kpi_val
|
||
# MAGIC ,NULL kpi_val_ly
|
||
# MAGIC ,top1_brand_val str_kpi_val
|
||
# MAGIC ,NULL str_kpi_val_ly
|
||
# MAGIC ,null kpi_vol
|
||
# MAGIC ,null kpi_vol_ly
|
||
# MAGIC ,null str_kpi_vol
|
||
# MAGIC ,null str_kpi_vol_ly
|
||
# MAGIC ,TOTAL_FLAG
|
||
# MAGIC ,ta
|
||
# MAGIC from tmp.tmp_zk_retail_rx_ta_and_top_corp
|
||
# MAGIC
|
||
# MAGIC
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %sql
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi
|
||
# MAGIC -- 8.15 top1_brand_gr
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC
|
||
# MAGIC insert into table dws.dws_zk_retail_sales_kpi
|
||
# MAGIC
|
||
# MAGIC SELECT distinct
|
||
# MAGIC '' pack_code
|
||
# MAGIC ,corp_cod
|
||
# MAGIC ,NULL YYYYMM
|
||
# MAGIC ,ytd
|
||
# MAGIC ,geo_key
|
||
# MAGIC ,'top1_brand_gr' kpi_name
|
||
# MAGIC ,top1_brand_gr kpi_val
|
||
# MAGIC ,NULL kpi_val_ly
|
||
# MAGIC ,NULL str_kpi_val
|
||
# MAGIC ,NULL str_kpi_val_ly
|
||
# MAGIC ,null kpi_vol
|
||
# MAGIC ,null kpi_vol_ly
|
||
# MAGIC ,null str_kpi_vol
|
||
# MAGIC ,null str_kpi_vol_ly
|
||
# MAGIC ,TOTAL_FLAG
|
||
# MAGIC ,ta
|
||
# MAGIC from tmp.tmp_zk_retail_rx_ta_and_top_corp
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %sql
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi
|
||
# MAGIC -- 8.16 top2_brand_val
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC
|
||
# MAGIC insert into table dws.dws_zk_retail_sales_kpi
|
||
# MAGIC
|
||
# MAGIC SELECT distinct
|
||
# MAGIC '' pack_code
|
||
# MAGIC ,corp_cod
|
||
# MAGIC ,NULL YYYYMM
|
||
# MAGIC ,ytd
|
||
# MAGIC ,geo_key
|
||
# MAGIC ,'top2_brand_val' kpi_name
|
||
# MAGIC ,null kpi_val
|
||
# MAGIC ,NULL kpi_val_ly
|
||
# MAGIC ,top2_brand_val str_kpi_val
|
||
# MAGIC ,NULL str_kpi_val_ly
|
||
# MAGIC ,null kpi_vol
|
||
# MAGIC ,null kpi_vol_ly
|
||
# MAGIC ,null str_kpi_vol
|
||
# MAGIC ,null str_kpi_vol_ly
|
||
# MAGIC ,TOTAL_FLAG
|
||
# MAGIC ,ta
|
||
# MAGIC from tmp.tmp_zk_retail_rx_ta_and_top_corp
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %sql
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi
|
||
# MAGIC -- 8.17 top2_brand_gr
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC
|
||
# MAGIC insert into table dws.dws_zk_retail_sales_kpi
|
||
# MAGIC
|
||
# MAGIC SELECT distinct
|
||
# MAGIC '' pack_code
|
||
# MAGIC ,corp_cod
|
||
# MAGIC ,NULL YYYYMM
|
||
# MAGIC ,ytd
|
||
# MAGIC ,geo_key
|
||
# MAGIC ,'top2_brand_gr' kpi_name
|
||
# MAGIC ,top2_brand_gr kpi_val
|
||
# MAGIC ,NULL kpi_val_ly
|
||
# MAGIC ,NULL str_kpi_val
|
||
# MAGIC ,NULL str_kpi_val_ly
|
||
# MAGIC ,null kpi_vol
|
||
# MAGIC ,null kpi_vol_ly
|
||
# MAGIC ,null str_kpi_vol
|
||
# MAGIC ,null str_kpi_vol_ly
|
||
# MAGIC ,TOTAL_FLAG
|
||
# MAGIC ,ta
|
||
# MAGIC from tmp.tmp_zk_retail_rx_ta_and_top_corp
|
||
# MAGIC
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %sql
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi
|
||
# MAGIC -- 8.18 top1_incremental_brand
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC
|
||
# MAGIC insert into table dws.dws_zk_retail_sales_kpi
|
||
# MAGIC
|
||
# MAGIC SELECT distinct
|
||
# MAGIC '' pack_code
|
||
# MAGIC ,corp_cod
|
||
# MAGIC ,NULL YYYYMM
|
||
# MAGIC ,ytd
|
||
# MAGIC ,geo_key
|
||
# MAGIC ,'top1_incremental_brand' kpi_name
|
||
# MAGIC ,null kpi_val
|
||
# MAGIC ,NULL kpi_val_ly
|
||
# MAGIC ,top1_incremental_brand str_kpi_val
|
||
# MAGIC ,NULL str_kpi_val_ly
|
||
# MAGIC ,null kpi_vol
|
||
# MAGIC ,null kpi_vol_ly
|
||
# MAGIC ,null str_kpi_vol
|
||
# MAGIC ,null str_kpi_vol_ly
|
||
# MAGIC ,TOTAL_FLAG
|
||
# MAGIC ,ta
|
||
# MAGIC from tmp.tmp_zk_retail_rx_ta_and_top_corp
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %sql
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi
|
||
# MAGIC -- 8.19 top1_incremental_gr
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC
|
||
# MAGIC insert into table dws.dws_zk_retail_sales_kpi
|
||
# MAGIC
|
||
# MAGIC SELECT distinct
|
||
# MAGIC '' pack_code
|
||
# MAGIC ,corp_cod
|
||
# MAGIC ,NULL YYYYMM
|
||
# MAGIC ,ytd
|
||
# MAGIC ,geo_key
|
||
# MAGIC ,'top1_incremental_gr' kpi_name
|
||
# MAGIC ,top1_incremental_gr kpi_val
|
||
# MAGIC ,NULL kpi_val_ly
|
||
# MAGIC ,NULL str_kpi_val
|
||
# MAGIC ,NULL str_kpi_val_ly
|
||
# MAGIC ,null kpi_vol
|
||
# MAGIC ,null kpi_vol_ly
|
||
# MAGIC ,null str_kpi_vol
|
||
# MAGIC ,null str_kpi_vol_ly
|
||
# MAGIC ,TOTAL_FLAG
|
||
# MAGIC ,ta
|
||
# MAGIC from tmp.tmp_zk_retail_rx_ta_and_top_corp
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %sql
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi
|
||
# MAGIC -- 8.20 top2_incremental_brand
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC
|
||
# MAGIC insert into table dws.dws_zk_retail_sales_kpi
|
||
# MAGIC
|
||
# MAGIC SELECT distinct
|
||
# MAGIC '' pack_code
|
||
# MAGIC ,corp_cod
|
||
# MAGIC ,NULL YYYYMM
|
||
# MAGIC ,ytd
|
||
# MAGIC ,geo_key
|
||
# MAGIC ,'top2_incremental_brand' kpi_name
|
||
# MAGIC ,null kpi_val
|
||
# MAGIC ,NULL kpi_val_ly
|
||
# MAGIC ,top2_incremental_brand str_kpi_val
|
||
# MAGIC ,NULL str_kpi_val_ly
|
||
# MAGIC ,null kpi_vol
|
||
# MAGIC ,null kpi_vol_ly
|
||
# MAGIC ,null str_kpi_vol
|
||
# MAGIC ,null str_kpi_vol_ly
|
||
# MAGIC ,TOTAL_FLAG
|
||
# MAGIC ,ta
|
||
# MAGIC from tmp.tmp_zk_retail_rx_ta_and_top_corp
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %sql
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi
|
||
# MAGIC -- 8.21 top2_incremental_gr
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC
|
||
# MAGIC insert into table dws.dws_zk_retail_sales_kpi
|
||
# MAGIC
|
||
# MAGIC SELECT distinct
|
||
# MAGIC '' pack_code
|
||
# MAGIC ,corp_cod
|
||
# MAGIC ,NULL YYYYMM
|
||
# MAGIC ,ytd
|
||
# MAGIC ,geo_key
|
||
# MAGIC ,'top2_incremental_gr' kpi_name
|
||
# MAGIC ,top2_incremental_gr kpi_val
|
||
# MAGIC ,NULL kpi_val_ly
|
||
# MAGIC ,NULL str_kpi_val
|
||
# MAGIC ,NULL str_kpi_val_ly
|
||
# MAGIC ,null kpi_vol
|
||
# MAGIC ,null kpi_vol_ly
|
||
# MAGIC ,null str_kpi_vol
|
||
# MAGIC ,null str_kpi_vol_ly
|
||
# MAGIC ,TOTAL_FLAG
|
||
# MAGIC ,ta
|
||
# MAGIC from tmp.tmp_zk_retail_rx_ta_and_top_corp
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %md
|
||
# MAGIC ### PART-3:增量数据(1个)
|
||
# MAGIC - corp_type_sales_amount
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %sql
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi
|
||
# MAGIC -- 8.22 处理增量数据 corp_type_sales_amount
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC
|
||
# MAGIC insert into table dws.dws_zk_retail_sales_kpi
|
||
# MAGIC
|
||
# MAGIC select distinct
|
||
# MAGIC '' pack_code
|
||
# MAGIC ,bq.type_name corp_cod
|
||
# MAGIC ,cast(bq.sales_quarter as int) yyyymm
|
||
# MAGIC ,null ytd
|
||
# MAGIC ,'ROC' geo_key
|
||
# MAGIC ,'corp_type_sales_amount' kpi_name
|
||
# MAGIC ,bq.sales_amount * 1000000 kpi_val
|
||
# MAGIC ,tq.sales_amount * 1000000 kpi_val_ly
|
||
# MAGIC ,NULL str_kpi_val
|
||
# MAGIC ,NULL str_kpi_val_ly
|
||
# MAGIC ,null kpi_vol
|
||
# MAGIC ,null kpi_vol_ly
|
||
# MAGIC ,null str_kpi_vol
|
||
# MAGIC ,null tr_kpi_vol_ly
|
||
# MAGIC ,'Y' TOTAL_FLAG
|
||
# MAGIC ,null ta
|
||
# MAGIC from dwd.dwd_gnd_ext_retail_rx_market bq
|
||
# MAGIC left join dwd.dwd_gnd_ext_retail_rx_market tq
|
||
# MAGIC on bq.type_name=tq.type_name
|
||
# MAGIC and cast(bq.sales_quarter as int) = cast(tq.sales_quarter + 100 as int)
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %md
|
||
# MAGIC ### PART-4:top corp及rank(2个)
|
||
# MAGIC - top_corp_sales_amount
|
||
# MAGIC - top_corp_rank
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %sql
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi
|
||
# MAGIC -- 8.23&24 top_corp_sales_amount & top_corp_rank
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC
|
||
# MAGIC with top_corp_total as (
|
||
# MAGIC ----------------------处理top_corp 大数--------------------
|
||
# MAGIC ---------关联 corp code 特殊:dwd_inc_gnd_retail_b2c_label_total 这个表 az 公司有两个code ,需要取A5Z 那个
|
||
# MAGIC ---------是否total 数据打标
|
||
# MAGIC ---------格式处理
|
||
# MAGIC ---------dm 使用 niad 数据
|
||
# MAGIC ---------全国数据 地理编码 为 roc
|
||
# MAGIC select
|
||
# MAGIC a.corp_desc,
|
||
# MAGIC 'top_corp' data_type
|
||
# MAGIC ,b.CORP_COD
|
||
# MAGIC ,'Y' TOTAL_FLAG
|
||
# MAGIC ,a.sales_quarter
|
||
# MAGIC ,cast(a.sales_quarter as int) yyyymm
|
||
# MAGIC ,'ROC' geo_key
|
||
# MAGIC ,a.sales_amount*1000000 sales_amount
|
||
# MAGIC ,c.sales_amount*1000000 sales_amount_ly
|
||
# MAGIC ,a.rank1
|
||
# MAGIC ,null ta
|
||
# MAGIC FROM dwd.dwd_gnd_ext_retail_nataional_top_corp a
|
||
# MAGIC left join (
|
||
# MAGIC select ZK_Corp_C,max(case when CORP_COD ='F+N' then 'A5Z' ELSE CORP_COD END ) CORP_COD
|
||
# MAGIC from dwd.dwd_inc_gnd_retail_b2c_label_total group by ZK_Corp_C
|
||
# MAGIC ) b on a.corp_desc= b.ZK_Corp_C
|
||
# MAGIC left join dwd.dwd_gnd_ext_retail_nataional_top_corp c
|
||
# MAGIC on a.corp_desc= c.corp_desc
|
||
# MAGIC and nvl(a.corp_type,'' ) = nvl(c.corp_type,'' )
|
||
# MAGIC and cast(a.sales_quarter as int) =cast(c.sales_quarter as int)+100
|
||
# MAGIC where a.rank1 is not null
|
||
# MAGIC
|
||
# MAGIC unioN all
|
||
# MAGIC
|
||
# MAGIC select
|
||
# MAGIC a.corp_desc,
|
||
# MAGIC 'top_ta_corp' data_type
|
||
# MAGIC ,B.CORP_COD --A.corp_name as CORP_COD, --自有的corp_name 是 corp_code
|
||
# MAGIC ,case when A.corp_name is null then 'Y' ELSE 'N' END TOTAL_FLAG
|
||
# MAGIC ,a.sales_quarter
|
||
# MAGIC ,cast(a.sales_quarter as int) yyyymm
|
||
# MAGIC ,'ROC' geo_key
|
||
# MAGIC ,a.sales_amount*1000000 sales_amount
|
||
# MAGIC ,c.sales_amount*1000000 sales_amount_ly
|
||
# MAGIC ,a.rank1
|
||
# MAGIC ,CASE WHEN trim(a.source_name) ='GI-Rx+OTC' THEN 'GI' ELSE trim(a.source_name) END ta
|
||
# MAGIC FROM dwd.dwd_gnd_ext_retail_nataional_ta_top_corp a
|
||
# MAGIC left join (
|
||
# MAGIC select ZK_Corp_C,max(case when CORP_COD ='F+N' then 'A5Z' ELSE CORP_COD END ) CORP_COD
|
||
# MAGIC from dwd.dwd_inc_gnd_retail_b2c_label_total group by ZK_Corp_C
|
||
# MAGIC ) b on a.corp_desc= b.ZK_Corp_C
|
||
# MAGIC left join dwd.dwd_gnd_ext_retail_nataional_ta_top_corp c
|
||
# MAGIC on a.corp_desc= c.corp_desc
|
||
# MAGIC and nvl(a.corp_type,'' ) = nvl(c.corp_type,'' )
|
||
# MAGIC and cast(a.sales_quarter as int) =cast(c.sales_quarter as int)+100
|
||
# MAGIC and a.source_name =c.source_name
|
||
# MAGIC WHERE trim(a.source_name) <>'DM'
|
||
# MAGIC
|
||
# MAGIC UNION ALL
|
||
# MAGIC
|
||
# MAGIC select
|
||
# MAGIC CASE WHEN a.corp_desc='NIAD' THEN 'DM' ELSE a.corp_desc END corp_desc,
|
||
# MAGIC 'top_ta_corp' data_type
|
||
# MAGIC ,B.CORP_COD --A.corp_name as CORP_COD, --自有的corp_name 是 corp_code
|
||
# MAGIC ,case when A.corp_name is null then 'Y' ELSE 'N' END TOTAL_FLAG
|
||
# MAGIC ,a.sales_quarter
|
||
# MAGIC ,cast(a.sales_quarter as int) yyyymm
|
||
# MAGIC ,'ROC' geo_key
|
||
# MAGIC ,a.sales_amount*1000000 sales_amount
|
||
# MAGIC ,c.sales_amount*1000000 sales_amount_ly
|
||
# MAGIC ,a.rank1
|
||
# MAGIC ,'DM' ta
|
||
# MAGIC FROM dwd.dwd_gnd_ext_retail_nataional_ta_top_corp a
|
||
# MAGIC left join (
|
||
# MAGIC select ZK_Corp_C,max(case when CORP_COD ='F+N' then 'A5Z' ELSE CORP_COD END ) CORP_COD
|
||
# MAGIC from dwd.dwd_inc_gnd_retail_b2c_label_total group by ZK_Corp_C
|
||
# MAGIC ) b on a.corp_desc= b.ZK_Corp_C
|
||
# MAGIC left join dwd.dwd_gnd_ext_retail_nataional_ta_top_corp c
|
||
# MAGIC on a.corp_desc= c.corp_desc
|
||
# MAGIC and nvl(a.corp_type,'' ) = nvl(c.corp_type,'' )
|
||
# MAGIC and cast(a.sales_quarter as int) =cast(c.sales_quarter as int)+100
|
||
# MAGIC and a.source_name =c.source_name
|
||
# MAGIC WHERE trim(a.source_name) ='NIAD'
|
||
# MAGIC )
|
||
# MAGIC
|
||
# MAGIC -- 处理top corp 及 rank 数据
|
||
# MAGIC insert into table dws.dws_zk_retail_sales_kpi
|
||
# MAGIC
|
||
# MAGIC select DISTINCT
|
||
# MAGIC '' pack_code
|
||
# MAGIC ,corp_cod
|
||
# MAGIC ,yyyymm
|
||
# MAGIC ,null ytd
|
||
# MAGIC ,geo_key
|
||
# MAGIC ,'top_corp_sales_amount' kpi_name
|
||
# MAGIC ,sales_amount kpi_val
|
||
# MAGIC ,sales_amount_ly kpi_val_ly
|
||
# MAGIC ,NULL str_kpi_val
|
||
# MAGIC ,NULL str_kpi_val_ly
|
||
# MAGIC ,null kpi_vol
|
||
# MAGIC ,null kpi_vol_ly
|
||
# MAGIC ,null str_kpi_vol
|
||
# MAGIC ,null str_kpi_vol_ly
|
||
# MAGIC ,TOTAL_FLAG
|
||
# MAGIC ,ta
|
||
# MAGIC from top_corp_total
|
||
# MAGIC union all
|
||
# MAGIC select distinct
|
||
# MAGIC '' pack_code
|
||
# MAGIC ,corp_cod
|
||
# MAGIC ,yyyymm
|
||
# MAGIC ,null ytd
|
||
# MAGIC ,geo_key
|
||
# MAGIC ,'top_corp_rank' kpi_name
|
||
# MAGIC ,rank1 kpi_val
|
||
# MAGIC ,null kpi_val_ly
|
||
# MAGIC ,NULL str_kpi_val
|
||
# MAGIC ,NULL str_kpi_val_ly
|
||
# MAGIC ,null kpi_vol
|
||
# MAGIC ,null kpi_vol_ly
|
||
# MAGIC ,null str_kpi_vol
|
||
# MAGIC ,null str_kpi_vol_ly
|
||
# MAGIC ,TOTAL_FLAG
|
||
# MAGIC ,ta
|
||
# MAGIC from top_corp_total
|
||
# MAGIC where lower(rank1) <> 'Total'
|
||
# MAGIC
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %md
|
||
# MAGIC ### PART-5:DTP指标(2个)
|
||
# MAGIC - top_corp_rank
|
||
# MAGIC - top_corp_sales_amount
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %sql
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi
|
||
# MAGIC -- 8.25&26 top_corp_rank & top_corp_sales_amount
|
||
# MAGIC -- 将dtp 数据转换成 kpi 格式---
|
||
# MAGIC -- 品牌数据 初始
|
||
# MAGIC -- 关联公司code
|
||
# MAGIC -- 处理pack code
|
||
# MAGIC -- 处理格式
|
||
# MAGIC -- total flag 打标
|
||
# MAGIC -- dtp 所有数据的ta 均为 ONCO
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC
|
||
# MAGIC with tmp as (
|
||
# MAGIC -------------获取dtp top brand的本同期数据--------------------------
|
||
# MAGIC select
|
||
# MAGIC cast(top_corp.sales_quarter as int ) yyyymm
|
||
# MAGIC ,top_corp.sales_quarter
|
||
# MAGIC ,replace(top_corp.rank1,'-','') rank1
|
||
# MAGIC ,replace(top_corp.corp_name,'-','') crp_name
|
||
# MAGIC ,top_corp.brand_name
|
||
# MAGIC ,case when top_corp.brand_name ='Others' then 'Others' else zk.IQVIA_PROD_CODE end iqvia_prod_code
|
||
# MAGIC ,case when top_corp.brand_name ='Others' then 'Others' else brand.iqvia_pack_code end iqvia_pack_code
|
||
# MAGIC ,zk.CORP_COD
|
||
# MAGIC -- ,top_corp.source_name
|
||
# MAGIC ,top_corp.sales_amount*1000000 sales_amount
|
||
# MAGIC ,tq.sales_amount*1000000 sales_amount_ly
|
||
# MAGIC ,'Y' TOTAL_FLAG
|
||
# MAGIC from dwd.dwd_gnd_ext_retail_dtp_top_brand top_corp
|
||
# MAGIC left join dwd.dwd_gnd_ext_retail_dtp_top_brand tq
|
||
# MAGIC on cast(top_corp.sales_quarter as int ) = cast(tq.sales_quarter+100 as int )
|
||
# MAGIC and nvl(top_corp.corp_name,'') = nvl(tq.corp_name,'' )
|
||
# MAGIC and tq.rank1 =top_corp.rank1 and nvl(top_corp.brand_name,'' ) =nvl(tq.brand_name,'' )
|
||
# MAGIC left join (
|
||
# MAGIC select
|
||
# MAGIC distinct
|
||
# MAGIC ZK_Prod_C,
|
||
# MAGIC -----------------------------------------------------
|
||
# MAGIC -- format IQVIA_PROD_CODE
|
||
# MAGIC case when length(IQVIA_PROD_CODE) < 9 then right(concat('000000000',IQVIA_PROD_CODE),9) else IQVIA_PROD_CODE end as IQVIA_PROD_CODE,
|
||
# MAGIC -----------------------------------------------------
|
||
# MAGIC ZK_Corp_C,
|
||
# MAGIC CORP_COD
|
||
# MAGIC from dwd.dwd_inc_gnd_retail_b2c_label_total
|
||
# MAGIC )zk on top_corp.brand_name = zk.ZK_Prod_C AND replace(top_corp.corp_name,'-','')=zk.ZK_Corp_C
|
||
# MAGIC left join (
|
||
# MAGIC select PROD_COD IQVIA_PROD_CODE,max(PACK_COD) iqvia_pack_code,CORP_COD
|
||
# MAGIC from dm.dm_ims_td_pack_property group by PROD_COD,CORP_COD
|
||
# MAGIC ) brand on zk.IQVIA_PROD_CODE = brand.iqvia_prod_code AND replace(zk.CORP_COD,'-','')=brand.corp_cod
|
||
# MAGIC
|
||
# MAGIC UNION all
|
||
# MAGIC
|
||
# MAGIC -------获取 dtp top corp的本同期数据------------
|
||
# MAGIC select
|
||
# MAGIC cast(top_corp.sales_quarter as int ) yyyymm
|
||
# MAGIC ,top_corp.sales_quarter
|
||
# MAGIC ,replace(top_corp.rank1,'-','') rank1
|
||
# MAGIC ,replace(top_corp.corp_name,'-','') corp_name
|
||
# MAGIC ,'' brand_name
|
||
# MAGIC ,''iqvia_prod_code
|
||
# MAGIC ,'' iqvia_pack_code
|
||
# MAGIC ,case when replace(top_corp.corp_name,'-','') ='Others' then '' else pack.corp_cod end corp_cod
|
||
# MAGIC -- ,top_corp.source_name
|
||
# MAGIC ,top_corp.sales_amount*1000000 sales_amount
|
||
# MAGIC ,tq.sales_amount*1000000 sales_amount_ly
|
||
# MAGIC --,case when replace(top_corp.rank1,'-','') ='' then 'Y' ELSE 'N' END TOTAL_FLAG
|
||
# MAGIC ,'Y' TOTAL_FLAG
|
||
# MAGIC from dwd.dwd_gnd_ext_retail_dtp_top_copd top_corp
|
||
# MAGIC left join dwd.dwd_gnd_ext_retail_dtp_top_copd tq
|
||
# MAGIC on cast(top_corp.sales_quarter as int ) = cast(tq.sales_quarter+100 as int )
|
||
# MAGIC and nvl(top_corp.corp_name,'') = nvl(tq.corp_name,'' )
|
||
# MAGIC and tq.rank1 =top_corp.rank1
|
||
# MAGIC -- left join (select zk_corp_des,max(corp_cod) corp_cod from dwd.dwd_inc_gnd_retail_b2c_label_total group by zk_corp_des) pack
|
||
# MAGIC left join (
|
||
# MAGIC select distinct ZK_Corp_C,CORP_COD from dwd.dwd_inc_gnd_retail_b2c_label_total
|
||
# MAGIC ) pack on replace(top_corp.corp_name,'-','') = pack.ZK_Corp_C
|
||
# MAGIC )
|
||
# MAGIC
|
||
# MAGIC insert overwrite table dws.dws_zk_retail_dtp_sales_kpi
|
||
# MAGIC
|
||
# MAGIC select distinct
|
||
# MAGIC iqvia_prod_code pack_code
|
||
# MAGIC ,corp_cod
|
||
# MAGIC ,'ONCO' ta
|
||
# MAGIC ,yyyymm
|
||
# MAGIC ,null ytd
|
||
# MAGIC ,'ROC' geo_key
|
||
# MAGIC ,'top_corp_rank' kpi_name
|
||
# MAGIC ,cast(rank1 as double) kpi_val
|
||
# MAGIC ,null kpi_val_ly
|
||
# MAGIC ,null str_kpi_val
|
||
# MAGIC ,null str_kpi_val_ly
|
||
# MAGIC ,null kpi_vol
|
||
# MAGIC ,null kpi_vol_ly
|
||
# MAGIC ,null str_kpi_vol
|
||
# MAGIC ,null str_kpi_vol_ly
|
||
# MAGIC ,TOTAL_FLAG
|
||
# MAGIC -- ,null ta
|
||
# MAGIC from tmp where rank1 !=''
|
||
# MAGIC
|
||
# MAGIC union all
|
||
# MAGIC
|
||
# MAGIC select distinct
|
||
# MAGIC iqvia_prod_code pack_code
|
||
# MAGIC ,corp_cod
|
||
# MAGIC ,'ONCO' ta
|
||
# MAGIC ,yyyymm
|
||
# MAGIC ,null ytd
|
||
# MAGIC ,'ROC' geo_key
|
||
# MAGIC ,'top_corp_sales_amount' kpi_name
|
||
# MAGIC ,sales_amount kpi_val
|
||
# MAGIC ,sales_amount_ly kpi_val_ly
|
||
# MAGIC ,null str_kpi_val
|
||
# MAGIC ,null str_kpi_val_ly
|
||
# MAGIC ,null kpi_vol
|
||
# MAGIC ,null kpi_vol_ly
|
||
# MAGIC ,null str_kpi_vol
|
||
# MAGIC ,null str_kpi_vol_ly
|
||
# MAGIC ,TOTAL_FLAG
|
||
# MAGIC -- ,null ta
|
||
# MAGIC from tmp
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %md
|
||
# MAGIC ### PART-6:自有部分数据(9个)
|
||
# MAGIC retail 自有部分数据处理成kpi 形式
|
||
# MAGIC - pack_price_fz
|
||
# MAGIC - pack_price_fm
|
||
# MAGIC - pack_price_by_counting_unit_fm
|
||
# MAGIC - weighted_spread_rate
|
||
# MAGIC - digital_spread_rate
|
||
# MAGIC - pack_price
|
||
# MAGIC - pack_price_by_counting_unit
|
||
# MAGIC - num_dist_rate
|
||
# MAGIC - weig_dist_rate
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %sql
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi
|
||
# MAGIC -- 8.27 pack_price_fz
|
||
# MAGIC -- 在 retail 拆分好的结果表里获取pack 粒度的 price 分子
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC
|
||
# MAGIC insert overwrite table dws.dws_zk_retail_sales_own_kpi
|
||
# MAGIC
|
||
# MAGIC select
|
||
# MAGIC a.iqvia_pack_code pack_code
|
||
# MAGIC ,a.corp_cod
|
||
# MAGIC ,YYYYMM
|
||
# MAGIC ,null td
|
||
# MAGIC ,a.AUDIT_COD geo_key
|
||
# MAGIC ,'pack_price_fz' KPI_name
|
||
# MAGIC ,sum(sales_value) kpi_val
|
||
# MAGIC ,sum(sales_value_ly) kpi_val_ly
|
||
# MAGIC ,null str_kpi_val
|
||
# MAGIC ,null str_kpi_val_ly
|
||
# MAGIC ,null kpi_vol
|
||
# MAGIC ,null kpi_vol_ly
|
||
# MAGIC ,null str_kpi_vol
|
||
# MAGIC ,null str_kpi_vol_ly
|
||
# MAGIC ,'N' TOTAL_FLAG
|
||
# MAGIC ,case when a.source[0] = '慢性阻塞性肺疾病' then 'RE'
|
||
# MAGIC WHEN A.source[0]= '慢性胃炎、胃溃疡' THEN 'GI'
|
||
# MAGIC WHEN A.source[0] = 'NIAD' THEN 'DM'
|
||
# MAGIC WHEN A.source[0] IN ('Brilinta Market','他汀类+血脂康','高血压用药','酒石酸美托洛尔') THEN 'CV'
|
||
# MAGIC WHEN A.source[0] ='RD Market' THEN 'RD'
|
||
# MAGIC END ta
|
||
# MAGIC ,a.brand_flag
|
||
# MAGIC ,a.pack_flag
|
||
# MAGIC from dm.dm_zk_retail_sales a
|
||
# MAGIC GROUP BY
|
||
# MAGIC a.iqvia_pack_code,
|
||
# MAGIC a.corp_cod,
|
||
# MAGIC YYYYMM ,
|
||
# MAGIC a.AUDIT_COD,
|
||
# MAGIC case when a.source[0] = '慢性阻塞性肺疾病' then 'RE'
|
||
# MAGIC WHEN A.source[0]= '慢性胃炎、胃溃疡' THEN 'GI'
|
||
# MAGIC WHEN A.source[0] = 'NIAD' THEN 'DM'
|
||
# MAGIC WHEN A.source[0] IN ('Brilinta Market','他汀类+血脂康','高血压用药','酒石酸美托洛尔') THEN 'CV'
|
||
# MAGIC WHEN A.source[0] ='RD Market' THEN 'RD'
|
||
# MAGIC END,
|
||
# MAGIC a.brand_flag,
|
||
# MAGIC a.pack_flag
|
||
# MAGIC having ta is not null and sum(sales_value) > 0
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %sql
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi
|
||
# MAGIC -- 8.28 pack_price_fm
|
||
# MAGIC -- 在 retail 拆分好的结果表里获取pack 粒度的 price 分母
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC
|
||
# MAGIC insert into table dws.dws_zk_retail_sales_own_kpi
|
||
# MAGIC
|
||
# MAGIC select
|
||
# MAGIC a.iqvia_pack_code pack_code
|
||
# MAGIC ,a.corp_cod
|
||
# MAGIC ,YYYYMM
|
||
# MAGIC ,null ytd
|
||
# MAGIC ,a.AUDIT_COD geo_key
|
||
# MAGIC ,'pack_price_fm' KPI_name
|
||
# MAGIC ,sum(a.sales_unit) kpi_val
|
||
# MAGIC ,sum(a.sales_unit_ly) kpi_val_ly
|
||
# MAGIC ,null str_kpi_val
|
||
# MAGIC ,null str_kpi_val_ly
|
||
# MAGIC ,null kpi_vol
|
||
# MAGIC ,null kpi_vol_ly
|
||
# MAGIC ,null str_kpi_vol
|
||
# MAGIC ,null str_kpi_vol_ly
|
||
# MAGIC ,'N' TOTAL_FLAG
|
||
# MAGIC ,case when a.source[0] = '慢性阻塞性肺疾病' then 'RE'
|
||
# MAGIC WHEN A.source[0]= '慢性胃炎、胃溃疡' THEN 'GI'
|
||
# MAGIC WHEN A.source[0] = 'NIAD' THEN 'DM'
|
||
# MAGIC WHEN A.source[0] IN ('Brilinta Market','他汀类+血脂康','高血压用药','酒石酸美托洛尔') THEN 'CV'
|
||
# MAGIC WHEN A.source[0] ='RD Market' THEN 'RD'
|
||
# MAGIC END ta
|
||
# MAGIC ,a.brand_flag
|
||
# MAGIC ,a.pack_flag
|
||
# MAGIC from dm.dm_zk_retail_sales a
|
||
# MAGIC GROUP BY a.iqvia_pack_code ,a.corp_cod,YYYYMM ,a.AUDIT_COD
|
||
# MAGIC ,case when a.source[0] = '慢性阻塞性肺疾病' then 'RE'
|
||
# MAGIC WHEN A.source[0]= '慢性胃炎、胃溃疡' THEN 'GI'
|
||
# MAGIC WHEN A.source[0] = 'NIAD' THEN 'DM'
|
||
# MAGIC WHEN A.source[0] IN ('Brilinta Market','他汀类+血脂康','高血压用药','酒石酸美托洛尔') THEN 'CV'
|
||
# MAGIC WHEN A.source[0] ='RD Market' THEN 'RD'
|
||
# MAGIC END
|
||
# MAGIC ,a.brand_flag
|
||
# MAGIC ,a.pack_flag
|
||
# MAGIC having ta is not null and sum(sales_unit)>0
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %sql
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi
|
||
# MAGIC -- 8.29 pack_price_by_counting_unit_fm
|
||
# MAGIC -- 在 retail 拆分好的结果表里获取pack 粒度的 by counting unit 的 price 分母
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC
|
||
# MAGIC insert into table dws.dws_zk_retail_sales_own_kpi
|
||
# MAGIC
|
||
# MAGIC select
|
||
# MAGIC a.iqvia_pack_code pack_code
|
||
# MAGIC ,a.corp_cod
|
||
# MAGIC ,YYYYMM
|
||
# MAGIC ,null ytd
|
||
# MAGIC ,a.AUDIT_COD geo_key
|
||
# MAGIC ,'pack_price_by_counting_unit_fm' KPI_name
|
||
# MAGIC ,sum(a.counting_unit) kpi_val
|
||
# MAGIC ,sum(a.counting_unit_ly) kpi_val_ly
|
||
# MAGIC ,null str_kpi_val
|
||
# MAGIC ,null str_kpi_val_ly
|
||
# MAGIC ,null kpi_vol
|
||
# MAGIC ,null kpi_vol_ly
|
||
# MAGIC ,null str_kpi_vol
|
||
# MAGIC ,null str_kpi_vol_ly
|
||
# MAGIC ,'N' TOTAL_FLAG
|
||
# MAGIC ,case when a.source[0] = '慢性阻塞性肺疾病' then 'RE'
|
||
# MAGIC WHEN A.source[0]= '慢性胃炎、胃溃疡' THEN 'GI'
|
||
# MAGIC WHEN A.source[0] = 'NIAD' THEN 'DM'
|
||
# MAGIC WHEN A.source[0] IN ('Brilinta Market','他汀类+血脂康','高血压用药','酒石酸美托洛尔') THEN 'CV'
|
||
# MAGIC WHEN A.source[0] ='RD Market' THEN 'RD'
|
||
# MAGIC END ta
|
||
# MAGIC ,a.brand_flag
|
||
# MAGIC ,a.pack_flag
|
||
# MAGIC from dm.dm_zk_retail_sales a
|
||
# MAGIC GROUP BY a.iqvia_pack_code ,a.corp_cod,YYYYMM ,a.AUDIT_COD
|
||
# MAGIC ,case when a.source[0] = '慢性阻塞性肺疾病' then 'RE'
|
||
# MAGIC WHEN A.source[0]= '慢性胃炎、胃溃疡' THEN 'GI'
|
||
# MAGIC WHEN A.source[0] = 'NIAD' THEN 'DM'
|
||
# MAGIC WHEN A.source[0] IN ('Brilinta Market','他汀类+血脂康','高血压用药','酒石酸美托洛尔') THEN 'CV'
|
||
# MAGIC WHEN A.source[0] ='RD Market' THEN 'RD'
|
||
# MAGIC END
|
||
# MAGIC ,a.brand_flag
|
||
# MAGIC ,a.pack_flag
|
||
# MAGIC having ta is not null and sum(counting_unit)>0
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %sql
|
||
# MAGIC
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi
|
||
# MAGIC -- 将pack表的 price 数据进行处理
|
||
# MAGIC -- 在 retail 拆分好的结果表里获取pack 粒度的 price 分子
|
||
# MAGIC -- 关联 corp code
|
||
# MAGIC -- 获取geo_key 后续的audit key
|
||
# MAGIC -- 获取ta 值
|
||
# MAGIC -- 获取pack 文件中计算price 的所有指标 及加权铺货率、数字铺货率
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC
|
||
# MAGIC with pack_rawdata as (
|
||
# MAGIC select * from tmp.tmp_retail_pack_rawdata where data_flag = 0
|
||
# MAGIC ), tmp_pack_property as (
|
||
# MAGIC ----------------------------------------------------------------
|
||
# MAGIC -- format iqvia_pack_code
|
||
# MAGIC select
|
||
# MAGIC distinct
|
||
# MAGIC case when length(trim(iqvia_pack_code)) < 12 and trim(iqvia_pack_code) REGEXP '^[0-9]'
|
||
# MAGIC then right(concat('000000000000',trim(iqvia_pack_code)),12)
|
||
# MAGIC else trim(iqvia_pack_code)
|
||
# MAGIC end as iqvia_pack_code,
|
||
# MAGIC ----------------------------------------------------------------
|
||
# MAGIC product_id
|
||
# MAGIC from dwd.dwd_gnd_ext_retail_pack_property
|
||
# MAGIC ),a as (
|
||
# MAGIC select
|
||
# MAGIC df.brand_flag,df.zk_product_id,YYYYMM,pack.iqvia_pack_code,corp.corp_cod,zk_region
|
||
# MAGIC ,sum(sales_value) sales_value
|
||
# MAGIC ,sum(sales_unit) sales_unit
|
||
# MAGIC ,sum(weighted_spread_rate) weighted_spread_rate
|
||
# MAGIC ,sum(digital_spread_rate) digital_spread_rate
|
||
# MAGIC ,sum(sales_value_ly) sales_value_ly
|
||
# MAGIC ,sum(sales_unit_ly) sales_unit_ly
|
||
# MAGIC ,sum(weighted_spread_rate_ly) weighted_spread_rate_ly
|
||
# MAGIC ,sum(digital_spread_rate_ly) digital_spread_rate_ly
|
||
# MAGIC from (
|
||
# MAGIC select
|
||
# MAGIC month as YYYYMM,
|
||
# MAGIC product_id as zk_product_id,
|
||
# MAGIC zk_regin as zk_region
|
||
# MAGIC ,sales_value,sales_unit,weighted_spread_rate,digital_spread_rate
|
||
# MAGIC ,0 sales_value_ly
|
||
# MAGIC ,0 sales_unit_ly
|
||
# MAGIC ,0 weighted_spread_rate_ly
|
||
# MAGIC ,0 digital_spread_rate_ly
|
||
# MAGIC ,brand_flag
|
||
# MAGIC from pack_rawdata
|
||
# MAGIC
|
||
# MAGIC union all
|
||
# MAGIC
|
||
# MAGIC select
|
||
# MAGIC cast( month + 100 as int ) as yyyymm,
|
||
# MAGIC product_id as zk_product_id,
|
||
# MAGIC zk_regin as zk_region
|
||
# MAGIC ,0 sales_value
|
||
# MAGIC ,0 sales_unit
|
||
# MAGIC ,0 weighted_spread_rate
|
||
# MAGIC ,0 digital_spread_rate
|
||
# MAGIC ,sales_value sales_value_ly
|
||
# MAGIC ,sales_unit sales_unit_ly
|
||
# MAGIC ,weighted_spread_rate weighted_spread_rate_ly
|
||
# MAGIC ,digital_spread_rate digital_spread_rate_ly
|
||
# MAGIC ,brand_flag
|
||
# MAGIC from pack_rawdata
|
||
# MAGIC where month + 100 <= (select max(month) FROM pack_rawdata)
|
||
# MAGIC ) df
|
||
# MAGIC left join tmp_pack_property pack on pack.product_id = df.zk_product_id
|
||
# MAGIC left join tmp.tmp_zk_retail_pack_property_corp corp
|
||
# MAGIC on pack.iqvia_pack_code = corp.iqvia_pack_code
|
||
# MAGIC group by YYYYMM,pack.iqvia_pack_code,corp.corp_cod,zk_region,df.brand_flag,df.zk_product_id
|
||
# MAGIC )
|
||
# MAGIC
|
||
# MAGIC insert overwrite table tmp.tmp_zk_retail_price
|
||
# MAGIC select
|
||
# MAGIC distinct
|
||
# MAGIC YYYYMM,
|
||
# MAGIC zk_product_id,
|
||
# MAGIC d.ta,
|
||
# MAGIC c.geo_key,
|
||
# MAGIC a.iqvia_pack_code,
|
||
# MAGIC b.iqvia_prod_code,
|
||
# MAGIC b.prod_des_c,
|
||
# MAGIC corp_cod,
|
||
# MAGIC zk_region,
|
||
# MAGIC sales_value,
|
||
# MAGIC sales_value_ly,
|
||
# MAGIC sales_unit,
|
||
# MAGIC sales_unit_ly,
|
||
# MAGIC weighted_spread_rate,
|
||
# MAGIC weighted_spread_rate_ly,
|
||
# MAGIC digital_spread_rate,
|
||
# MAGIC digital_spread_rate_ly
|
||
# MAGIC from a
|
||
# MAGIC left join (
|
||
# MAGIC select distinct iqvia_pack_code ,prod_des_c,prod_des,iqvia_prod_code
|
||
# MAGIC from dm.dm_zk_retail_pack_property
|
||
# MAGIC ) b on a.iqvia_pack_code=b.iqvia_pack_code
|
||
# MAGIC left join (
|
||
# MAGIC select distinct geo_key,province_city from dm.dm_zk_retail_geo
|
||
# MAGIC ) c on a.zk_region = c.province_city
|
||
# MAGIC left join (
|
||
# MAGIC select distinct iqvia_pack_code,ta from dm.dm_zk_retail_market_property
|
||
# MAGIC ) d on a.iqvia_pack_code=d.iqvia_pack_code
|
||
# MAGIC where a.iqvia_pack_code in (select distinct iqvia_pack_code from dm.dm_zk_retail_sales)
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %sql
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi
|
||
# MAGIC -- 8.30 weighted_spread_rate
|
||
# MAGIC -- 在 retail pack 粒度的文件中获取加权铺货率
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC
|
||
# MAGIC insert into table dws.dws_zk_retail_sales_own_kpi
|
||
# MAGIC
|
||
# MAGIC select distinct
|
||
# MAGIC iqvia_pack_code pack_code
|
||
# MAGIC ,corp_cod
|
||
# MAGIC ,YYYYMM
|
||
# MAGIC ,null ytd
|
||
# MAGIC ,geo_key
|
||
# MAGIC ,'weighted_spread_rate' KPI_name
|
||
# MAGIC ,weighted_spread_rate kpi_val
|
||
# MAGIC ,weighted_spread_rate_ly kpi_val_ly
|
||
# MAGIC ,null str_kpi_val
|
||
# MAGIC ,null str_kpi_val_ly
|
||
# MAGIC ,null kpi_vol
|
||
# MAGIC ,null kpi_vol_ly
|
||
# MAGIC ,null str_kpi_vol
|
||
# MAGIC ,null str_kpi_vol_ly
|
||
# MAGIC ,'N' TOTAL_FLAG
|
||
# MAGIC ,ta ta
|
||
# MAGIC ,case when prod.prod_des_c is null THEN 2 else 1 END brand_flag
|
||
# MAGIC ,case when geo_key ='CHT' THEN 2 else 1 END pack_flag
|
||
# MAGIC from tmp.tmp_zk_retail_price a
|
||
# MAGIC left join (
|
||
# MAGIC SELECT DISTINCT b.prod_des_c
|
||
# MAGIC FROM tmp.tmp_retail_pack_rawdata A
|
||
# MAGIC LEFT JOIN (
|
||
# MAGIC SELECT DISTINCT iqvia_pack_code,prod_des_c
|
||
# MAGIC FROM dm.dm_zk_retail_pack_property
|
||
# MAGIC ) b on a.pack_code = b.iqvia_pack_code
|
||
# MAGIC where a.brand_flag = 1
|
||
# MAGIC ) prod on a.prod_des_c = prod.prod_des_c
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %sql
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi
|
||
# MAGIC -- 8.31 digital_spread_rate
|
||
# MAGIC -- 在 retail pack 粒度的文件中获取数字铺货率
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC
|
||
# MAGIC insert into table dws.dws_zk_retail_sales_own_kpi
|
||
# MAGIC
|
||
# MAGIC select distinct
|
||
# MAGIC iqvia_pack_code
|
||
# MAGIC ,corp_cod
|
||
# MAGIC ,YYYYMM
|
||
# MAGIC ,null ytd
|
||
# MAGIC ,geo_key
|
||
# MAGIC ,'digital_spread_rate' KPI_name
|
||
# MAGIC ,digital_spread_rate kpi_val
|
||
# MAGIC ,digital_spread_rate_ly kpi_val_ly
|
||
# MAGIC ,null str_kpi_val
|
||
# MAGIC ,null str_kpi_val_ly
|
||
# MAGIC ,null kpi_vol
|
||
# MAGIC ,null kpi_vol_ly
|
||
# MAGIC ,null str_kpi_vol
|
||
# MAGIC ,null str_kpi_vol_ly
|
||
# MAGIC ,'N' TOTAL_FLAG
|
||
# MAGIC ,ta ta
|
||
# MAGIC ,case when prod.prod_des_c is null THEN 2 else 1 END brand_flag
|
||
# MAGIC ,case when geo_key ='CHT' THEN 2 else 1 END pack_flag
|
||
# MAGIC from tmp.tmp_zk_retail_price a
|
||
# MAGIC left join (
|
||
# MAGIC SELECT DISTINCT b.prod_des_c
|
||
# MAGIC FROM tmp.tmp_retail_pack_rawdata A
|
||
# MAGIC LEFT JOIN (
|
||
# MAGIC SELECT DISTINCT iqvia_pack_code,prod_des_c
|
||
# MAGIC FROM dm.dm_zk_retail_pack_property
|
||
# MAGIC ) b on a.pack_code = b.iqvia_pack_code
|
||
# MAGIC where a.brand_flag = 1
|
||
# MAGIC ) prod on a.prod_des_c=prod.prod_des_c
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %sql
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi
|
||
# MAGIC -- 8.32 pack_price
|
||
# MAGIC -- 在 retail pack 粒度的文件中获取计算pack 粒度的price
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC
|
||
# MAGIC insert into table dws.dws_zk_retail_sales_own_kpi
|
||
# MAGIC
|
||
# MAGIC select distinct
|
||
# MAGIC iqvia_pack_code
|
||
# MAGIC ,corp_cod
|
||
# MAGIC ,YYYYMM
|
||
# MAGIC ,null ytd
|
||
# MAGIC ,geo_key
|
||
# MAGIC ,'pack_price' KPI_name
|
||
# MAGIC ,round(sum(sales_value)/sum(sales_unit),3) kpi_val
|
||
# MAGIC ,round(sum(sales_value_ly)/sum(sales_unit_ly),3) kpi_val_ly
|
||
# MAGIC ,null str_kpi_val
|
||
# MAGIC ,null str_kpi_val_ly
|
||
# MAGIC ,null kpi_vol
|
||
# MAGIC ,null kpi_vol_ly
|
||
# MAGIC ,null str_kpi_vol
|
||
# MAGIC ,null str_kpi_vol_ly
|
||
# MAGIC ,'N' TOTAL_FLAG
|
||
# MAGIC ,ta ta
|
||
# MAGIC ,case when prod.prod_des_c is null THEN 2 else 1 END brand_flag
|
||
# MAGIC ,case when geo_key ='CHT' THEN 2 else 1 END pack_flag
|
||
# MAGIC from tmp.tmp_zk_retail_price a
|
||
# MAGIC left join (
|
||
# MAGIC SELECT DISTINCT b.prod_des_c
|
||
# MAGIC FROM tmp.tmp_retail_pack_rawdata A
|
||
# MAGIC LEFT JOIN (
|
||
# MAGIC SELECT DISTINCT iqvia_pack_code,prod_des_c
|
||
# MAGIC FROM dm.dm_zk_retail_pack_property
|
||
# MAGIC ) b on a.pack_code = b.iqvia_pack_code
|
||
# MAGIC where a.brand_flag = 1
|
||
# MAGIC ) prod on a.prod_des_c=prod.prod_des_c
|
||
# MAGIC group by
|
||
# MAGIC corp_cod,
|
||
# MAGIC YYYYMM,
|
||
# MAGIC geo_key,
|
||
# MAGIC ta,
|
||
# MAGIC iqvia_pack_code,
|
||
# MAGIC case when prod.prod_des_c is null THEN 2 else 1 END,
|
||
# MAGIC case when geo_key ='CHT' THEN 2 else 1 END
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %sql
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi
|
||
# MAGIC -- 8.33 pack_price_by_counting_unit
|
||
# MAGIC -- 在 retail pack 粒度的文件中获取计算pack 粒度的price by counting unit
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC with tmp_pack_property as (
|
||
# MAGIC ----------------------------------------------------------------
|
||
# MAGIC -- format iqvia_pack_code
|
||
# MAGIC select
|
||
# MAGIC case when length(trim(iqvia_pack_code)) < 12 and trim(iqvia_pack_code) REGEXP '^[0-9]'
|
||
# MAGIC then right(concat('000000000000',trim(iqvia_pack_code)),12)
|
||
# MAGIC else trim(iqvia_pack_code)
|
||
# MAGIC end as iqvia_pack_code,
|
||
# MAGIC ----------------------------------------------------------------
|
||
# MAGIC product_id,
|
||
# MAGIC counting_unit,
|
||
# MAGIC unit
|
||
# MAGIC from dwd.dwd_gnd_ext_retail_pack_property
|
||
# MAGIC )
|
||
# MAGIC
|
||
# MAGIC insert into table dws.dws_zk_retail_sales_own_kpi
|
||
# MAGIC
|
||
# MAGIC select distinct
|
||
# MAGIC a.iqvia_pack_code
|
||
# MAGIC ,a.corp_cod
|
||
# MAGIC ,YYYYMM
|
||
# MAGIC ,null ytd
|
||
# MAGIC ,geo_key
|
||
# MAGIC ,'pack_price_by_counting_unit' KPI_name
|
||
# MAGIC ,round(sum(sales_value)/sum(sales_unit*(b.counting_unit/coalesce(b.unit,1 ))),3) kpi_val
|
||
# MAGIC ,round(sum(sales_value_ly)/sum(sales_unit_ly*(b.counting_unit/coalesce(b.unit,1 ))),3) kpi_val_ly
|
||
# MAGIC ,null str_kpi_val
|
||
# MAGIC ,null str_kpi_val_ly
|
||
# MAGIC ,null kpi_vol
|
||
# MAGIC ,null kpi_vol_ly
|
||
# MAGIC ,null str_kpi_vol
|
||
# MAGIC ,null str_kpi_vol_ly
|
||
# MAGIC ,'N' TOTAL_FLAG
|
||
# MAGIC ,ta ta
|
||
# MAGIC ,case when prod.prod_des_c is null THEN 2 else 1 END brand_flag
|
||
# MAGIC ,case when geo_key ='CHT' THEN 2 else 1 END pack_flag
|
||
# MAGIC from tmp.tmp_zk_retail_price a
|
||
# MAGIC left join tmp_pack_property b on a.zk_product_id =b.product_id
|
||
# MAGIC left join (
|
||
# MAGIC SELECT DISTINCT b.prod_des_c
|
||
# MAGIC FROM tmp.tmp_retail_pack_rawdata A
|
||
# MAGIC LEFT JOIN (
|
||
# MAGIC SELECT DISTINCT iqvia_pack_code,prod_des_c
|
||
# MAGIC FROM dm.dm_zk_retail_pack_property
|
||
# MAGIC ) b on a.pack_code = b.iqvia_pack_code
|
||
# MAGIC where a.brand_flag = 1
|
||
# MAGIC ) prod on a.prod_des_c=prod.prod_des_c
|
||
# MAGIC group by
|
||
# MAGIC a.corp_cod,
|
||
# MAGIC YYYYMM,geo_key,
|
||
# MAGIC ta,
|
||
# MAGIC a.iqvia_pack_code,
|
||
# MAGIC case when prod.prod_des_c is null THEN 2 else 1 END,
|
||
# MAGIC case when geo_key ='CHT' THEN 2 else 1 END
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %sql
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi
|
||
# MAGIC -- 8.34&35 num_dist_rate & weig_dist_rate
|
||
# MAGIC -- 在 retail brand 品牌文件中获取数字铺货率 并对re 特殊处理,re相关品牌优先取inhaled market 对应 pack
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC
|
||
# MAGIC insert into table dws.dws_zk_retail_sales_own_kpi
|
||
# MAGIC
|
||
# MAGIC with exploded_data as (
|
||
# MAGIC select
|
||
# MAGIC ta,
|
||
# MAGIC market,
|
||
# MAGIC brand,
|
||
# MAGIC ifnull(common_name,'' ) as common_name,
|
||
# MAGIC level,
|
||
# MAGIC split(level_ta,',') array_ta,
|
||
# MAGIC split(level_market,',') array_market,
|
||
# MAGIC split(level_molecule,',') array_molecule,
|
||
# MAGIC split(level_brand,',') array_brand
|
||
# MAGIC from dwd.dwd_gnd_retail_split_automatic
|
||
# MAGIC where level like '%MULTI_BRAND%'
|
||
# MAGIC ), tmp_config as (
|
||
# MAGIC select
|
||
# MAGIC ta,
|
||
# MAGIC market,
|
||
# MAGIC brand,
|
||
# MAGIC common_name,
|
||
# MAGIC level,
|
||
# MAGIC array_ta[idx] as level_ta,
|
||
# MAGIC array_market[idx] as level_market,
|
||
# MAGIC array_molecule[idx] as level_molecule,
|
||
# MAGIC array_brand[idx] as level_brand
|
||
# MAGIC from exploded_data
|
||
# MAGIC lateral view posexplode(array_ta) AS idx, split_ta
|
||
# MAGIC
|
||
# MAGIC union all
|
||
# MAGIC
|
||
# MAGIC select
|
||
# MAGIC ta,
|
||
# MAGIC market,
|
||
# MAGIC brand,
|
||
# MAGIC common_name,
|
||
# MAGIC level,
|
||
# MAGIC level_ta,
|
||
# MAGIC level_market,
|
||
# MAGIC level_molecule,
|
||
# MAGIC level_brand
|
||
# MAGIC from dwd.dwd_gnd_retail_split_automatic
|
||
# MAGIC where level = 'BRAND'
|
||
# MAGIC ),max_pack_mapping as (
|
||
# MAGIC select
|
||
# MAGIC level_ta,
|
||
# MAGIC level_market,
|
||
# MAGIC level_molecule,
|
||
# MAGIC level_brand,
|
||
# MAGIC molecule_desc,
|
||
# MAGIC product_desc,
|
||
# MAGIC corp_cod,
|
||
# MAGIC max(pack_code) as pack_code
|
||
# MAGIC from tmp.tmp_retail_pack_mapping
|
||
# MAGIC group by level_ta,level_market,level_molecule,level_brand,molecule_desc,product_desc,corp_cod
|
||
# MAGIC ), tmp_brand_kpi_now as (
|
||
# MAGIC select
|
||
# MAGIC distinct
|
||
# MAGIC a.ta,
|
||
# MAGIC nvl(f.iqvia_pack_code,c.pack_code) as pack_code,
|
||
# MAGIC c.corp_cod,
|
||
# MAGIC c.product_desc,
|
||
# MAGIC a.YYYYMM,
|
||
# MAGIC d.geo_key,
|
||
# MAGIC a.num_dist_rate,
|
||
# MAGIC a.weig_dist_rate
|
||
# MAGIC from dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all a
|
||
# MAGIC inner join tmp_config b
|
||
# MAGIC on a.ta = b.ta
|
||
# MAGIC and a.market = b.market
|
||
# MAGIC and a.zk_brand_category = b.brand
|
||
# MAGIC and a.zk_common_name = b.common_name
|
||
# MAGIC inner join max_pack_mapping c
|
||
# MAGIC on c.level_ta = b.level_ta
|
||
# MAGIC and c.level_market = b.level_market
|
||
# MAGIC and c.level_molecule = b.level_molecule
|
||
# MAGIC and c.level_brand = b.level_brand
|
||
# MAGIC left join dm.dm_zk_retail_geo d
|
||
# MAGIC on a.province_city = d.province_city
|
||
# MAGIC left join (
|
||
# MAGIC select distinct iqvia_pack_code ,prod_des_c
|
||
# MAGIC from dm.dm_zk_retail_pack_property
|
||
# MAGIC ) e on c.pack_code = e.iqvia_pack_code
|
||
# MAGIC left join (
|
||
# MAGIC select prod_des_c,max(iqvia_pack_code) iqvia_pack_code
|
||
# MAGIC from dm.dm_zk_retail_pack_property
|
||
# MAGIC where market='Inhaled Extended Market'
|
||
# MAGIC group by prod_des_c
|
||
# MAGIC ) f on e.prod_des_c =f.prod_des_c
|
||
# MAGIC ), tmp_brand_kpi_ly as (
|
||
# MAGIC select
|
||
# MAGIC pack_code,
|
||
# MAGIC corp_cod,
|
||
# MAGIC cast(YYYYMM + 100 as int ) as YYYYMM,
|
||
# MAGIC geo_key,
|
||
# MAGIC num_dist_rate,
|
||
# MAGIC weig_dist_rate
|
||
# MAGIC from tmp_brand_kpi_now
|
||
# MAGIC ), tmp_brand_kpi as (
|
||
# MAGIC select
|
||
# MAGIC a.*,
|
||
# MAGIC b.num_dist_rate as num_dist_rate_ly,
|
||
# MAGIC b.weig_dist_rate as weig_dist_rate_ly
|
||
# MAGIC from tmp_brand_kpi_now a
|
||
# MAGIC left join tmp_brand_kpi_ly b
|
||
# MAGIC on a.pack_code = b.pack_code
|
||
# MAGIC and a.corp_cod = b.corp_cod
|
||
# MAGIC and a.YYYYMM = b.YYYYMM
|
||
# MAGIC and a.geo_key = b.geo_key
|
||
# MAGIC )
|
||
# MAGIC
|
||
# MAGIC select
|
||
# MAGIC pack_code,
|
||
# MAGIC corp_cod,
|
||
# MAGIC yyyymm,
|
||
# MAGIC null as ytd,
|
||
# MAGIC geo_key,
|
||
# MAGIC 'num_dist_rate' as KPI_name,
|
||
# MAGIC num_dist_rate as kpi_val,
|
||
# MAGIC num_dist_rate_ly as kpi_val_ly,
|
||
# MAGIC null as str_kpi_val,
|
||
# MAGIC null as str_kpi_val_ly,
|
||
# MAGIC null as kpi_vol,
|
||
# MAGIC null as kpi_vol_ly,
|
||
# MAGIC null as str_kpi_vol,
|
||
# MAGIC null as str_kpi_vol_ly,
|
||
# MAGIC 'N' as TOTAL_FLAG,
|
||
# MAGIC ta,
|
||
# MAGIC case when product_desc is null THEN 2 else 1 END as brand_flag,
|
||
# MAGIC case when geo_key ='CHT' THEN 2 else 1 END as pack_flag
|
||
# MAGIC from tmp_brand_kpi
|
||
# MAGIC
|
||
# MAGIC union all
|
||
# MAGIC
|
||
# MAGIC select
|
||
# MAGIC pack_code,
|
||
# MAGIC corp_cod,
|
||
# MAGIC yyyymm,
|
||
# MAGIC null as ytd,
|
||
# MAGIC geo_key,
|
||
# MAGIC 'weig_dist_rate' as KPI_name,
|
||
# MAGIC weig_dist_rate as kpi_val,
|
||
# MAGIC weig_dist_rate_ly as kpi_val_ly,
|
||
# MAGIC null as str_kpi_val,
|
||
# MAGIC null as str_kpi_val_ly,
|
||
# MAGIC null as kpi_vol,
|
||
# MAGIC null as kpi_vol_ly,
|
||
# MAGIC null as str_kpi_vol,
|
||
# MAGIC null as str_kpi_vol_ly,
|
||
# MAGIC 'N' as TOTAL_FLAG,
|
||
# MAGIC ta,
|
||
# MAGIC case when product_desc is null THEN 2 else 1 END as brand_flag,
|
||
# MAGIC case when geo_key ='CHT' THEN 2 else 1 END as pack_flag
|
||
# MAGIC from tmp_brand_kpi
|
||
# MAGIC
|
||
# MAGIC
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %md
|
||
# MAGIC ### PART-7:映射到dm表
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %sql
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi
|
||
# MAGIC -- PART-7: 映射到dm表
|
||
# MAGIC -- 将所有渠道kpi 数据汇总到dm
|
||
# MAGIC -- KPI 表汇总
|
||
# MAGIC -- ytd 为是否ytd flag
|
||
# MAGIC -- geo 将cht(全国) 改成 ROC
|
||
# MAGIC -- DTP_FLAG: O-非dtp ,1-dtp数据
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC
|
||
# MAGIC insert overwrite table dm.dm_zk_retail_sales_kpi
|
||
# MAGIC ( pack_code
|
||
# MAGIC ,corp_cod
|
||
# MAGIC ,ta
|
||
# MAGIC ,YYYYMM
|
||
# MAGIC ,ytd
|
||
# MAGIC ,geo_key
|
||
# MAGIC ,KPI_name
|
||
# MAGIC ,kpi_val
|
||
# MAGIC ,kpi_val_ly
|
||
# MAGIC ,str_kpi_val
|
||
# MAGIC ,str_kpi_val_ly
|
||
# MAGIC ,kpi_vol
|
||
# MAGIC ,kpi_vol_ly
|
||
# MAGIC ,str_kpi_vol
|
||
# MAGIC ,str_kpi_vol_ly
|
||
# MAGIC ,TOTAL_FLAG
|
||
# MAGIC ,data_source
|
||
# MAGIC ,dtp_flag
|
||
# MAGIC ,brand_flag
|
||
# MAGIC ,pack_flag
|
||
# MAGIC )
|
||
# MAGIC --------retail 渠道 kpi
|
||
# MAGIC select
|
||
# MAGIC nvl(pack_code,'') pack_code
|
||
# MAGIC ,nvl(corp_cod,'') corp_cod
|
||
# MAGIC ,nvl(ta,'') ta
|
||
# MAGIC ,nvl(YYYYMM,cast( if(length(ytd)=7 AND substr(ytd,6,1)<>'Q',concat('20',substr(ytd,4,2))*100 + right(ytd,2) ,concat('20',substr(ytd,4,2))*100 + right(ytd,1) * 3 ) as int )) YYYYMM
|
||
# MAGIC ,if(ytd IS NOT NULL ,'Y' ,'N') YTD
|
||
# MAGIC ,case when geo_key ='CHT' THEN 'ROC' ELSE nvl(geo_key,'') END geo_key
|
||
# MAGIC ,nvl(kpi_name,'') as kpi_name
|
||
# MAGIC ,nvl(cast(kpi_val as double),0) kpi_val
|
||
# MAGIC ,nvl(cast(kpi_val_ly as double),0) kpi_val_ly
|
||
# MAGIC ,nvl(str_kpi_val,'')
|
||
# MAGIC ,nvl(str_kpi_val_ly,'')
|
||
# MAGIC ,nvl(cast(kpi_vol as double),0) kpi_vol
|
||
# MAGIC ,nvl(cast(kpi_vol_ly as double),0) kpi_vol_ly
|
||
# MAGIC ,nvl(str_kpi_vol,'')
|
||
# MAGIC ,nvl(str_kpi_vol_ly,'')
|
||
# MAGIC ,nvl(TOTAL_FLAG,'')
|
||
# MAGIC ,'Retail(Quarterly)' data_source
|
||
# MAGIC ,'0' dtp_flag
|
||
# MAGIC , 0
|
||
# MAGIC , 0
|
||
# MAGIC from dws.dws_zk_retail_sales_kpi
|
||
# MAGIC WHERE nvl(ta,'' ) NOT IN ('GI-Rx','GI-OTC')
|
||
# MAGIC
|
||
# MAGIC union all
|
||
# MAGIC ---------------dtp 的kpi
|
||
# MAGIC select
|
||
# MAGIC nvl(pack_code,'') pack_code
|
||
# MAGIC ,nvl(corp_cod,'') corp_cod
|
||
# MAGIC ,nvl(ta,'') ta
|
||
# MAGIC ,nvl(YYYYMM,cast( if(length(ytd)=7,concat('20',substr(ytd,4,2))*100 + right(ytd,1) * 3 ,substr(ytd,4,4) * 100 + right(ytd,1) * 3 ) as int )) YYYYMM
|
||
# MAGIC ,if(ytd IS NOT NULL ,'Y' ,'N') YTD
|
||
# MAGIC ,case when geo_key ='CHT' THEN 'ROC' ELSE nvl(geo_key,'') END
|
||
# MAGIC ,nvl(kpi_name,'')
|
||
# MAGIC ,nvl(kpi_val,0)
|
||
# MAGIC ,nvl(kpi_val_ly,0)
|
||
# MAGIC ,nvl(str_kpi_val,'')
|
||
# MAGIC ,nvl(str_kpi_val_ly,'')
|
||
# MAGIC ,nvl(kpi_vol,0)
|
||
# MAGIC ,nvl(kpi_vol_ly,0)
|
||
# MAGIC ,nvl(str_kpi_vol,'')
|
||
# MAGIC ,nvl(str_kpi_vol_ly,'')
|
||
# MAGIC ,nvl(TOTAL_FLAG,'')
|
||
# MAGIC ,'Retail(Quarterly)' data_source
|
||
# MAGIC ,'1' dtp_flag
|
||
# MAGIC ,0
|
||
# MAGIC ,0
|
||
# MAGIC from dws.dws_zk_retail_dtp_sales_kpi
|
||
# MAGIC WHERE nvl(ta,'' ) NOT IN ('GI-Rx','GI-OTC')
|
||
# MAGIC
|
||
# MAGIC union all
|
||
# MAGIC
|
||
# MAGIC --拼接retail 自有部分kpi
|
||
# MAGIC select
|
||
# MAGIC nvl(pack_code,'') pack_code
|
||
# MAGIC ,nvl(corp_cod,'') corp_cod
|
||
# MAGIC ,nvl(ta,'') ta
|
||
# MAGIC ,nvl(YYYYMM,cast( if(length(ytd)=7,concat('20',substr(ytd,4,2))*100 + right(ytd,1) * 3 ,substr(ytd,4,4) * 100 + right(ytd,1) * 3 ) as int )) YYYYMM
|
||
# MAGIC ,if(ytd IS NOT NULL ,'Y' ,'N') YTD
|
||
# MAGIC ,case when geo_key ='CHT' THEN 'ROC' ELSE nvl(geo_key,'') END geo_key
|
||
# MAGIC ,nvl(kpi_name,'')
|
||
# MAGIC ,nvl(cast(kpi_val as double),0) kpi_val
|
||
# MAGIC ,nvl(cast(kpi_val_ly as double),0) kpi_val_ly
|
||
# MAGIC ,nvl(str_kpi_val,'')
|
||
# MAGIC ,nvl(str_kpi_val_ly,'')
|
||
# MAGIC ,nvl(cast(kpi_vol as double),0) kpi_vol
|
||
# MAGIC ,nvl(cast(kpi_vol_ly as double),0) kpi_vol_ly
|
||
# MAGIC ,nvl(str_kpi_vol,'')
|
||
# MAGIC ,nvl(str_kpi_vol_ly,'')
|
||
# MAGIC ,nvl(TOTAL_FLAG,'')
|
||
# MAGIC ,'Retail(Quarterly)' data_source
|
||
# MAGIC ,'0' dtp_flag
|
||
# MAGIC ,nvl(brand_flag,0)
|
||
# MAGIC ,nvl(pack_flag,0)
|
||
# MAGIC from dws.dws_zk_retail_sales_own_kpi
|
||
# MAGIC WHERE nvl(ta,'' ) NOT IN ('GI-Rx','GI-OTC')
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %md
|
||
# MAGIC ## STEP-9: map to dm.dm_zk_retail_market_ratio
|
||
|
||
# COMMAND ----------
|
||
|
||
# MAGIC %sql
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC -- STEP-9: map to dm.dm_zk_retail_market_ratio
|
||
# MAGIC -------------------------------------------------------------------------------------
|
||
# MAGIC /*
|
||
# MAGIC 修改人:chenwu
|
||
# MAGIC 修改时间:20250319
|
||
# MAGIC 修改内容:
|
||
# MAGIC */
|
||
# MAGIC ------------------------生产retail 的ratio 表,该表系数用于计算pdot--------
|
||
# MAGIC insert overwrite table dm.dm_zk_retail_market_ratio
|
||
# MAGIC (
|
||
# MAGIC market_pack_key,
|
||
# MAGIC pack_cod,
|
||
# MAGIC prod_des,
|
||
# MAGIC cmps_des,
|
||
# MAGIC corp_cod,
|
||
# MAGIC market,
|
||
# MAGIC value_market_ratio,
|
||
# MAGIC unit_market_ratio,
|
||
# MAGIC countingunit_market_ratio,
|
||
# MAGIC etl_insert_dt,
|
||
# MAGIC etl_update_dt
|
||
# MAGIC )
|
||
# MAGIC select distinct
|
||
# MAGIC a.market || a.iqvia_pack_code as market_pack_key
|
||
# MAGIC ,a.iqvia_pack_code as pack_cod
|
||
# MAGIC ,a.prod_des as prod_des
|
||
# MAGIC ,a.cmps_des as cmps_des
|
||
# MAGIC ,a.corp_cod as corp_cod
|
||
# MAGIC ,a.market as market
|
||
# MAGIC ,a.extend_market_ratio as value_market_ratio
|
||
# MAGIC ,a.extend_market_ratio as unit_market_ratio
|
||
# MAGIC ,coalesce(case when t4.ratio is null then t5.ratio*coalesce(a.extend_market_ratio ,1 )
|
||
# MAGIC else t4.ratio*coalesce(a.extend_market_ratio ,1 )
|
||
# MAGIC end ,a.extend_market_ratio ) countingunit_market_ratio --20250319如果tblbrandratio 里面的没有对应的 ratio 则用market_ratio兜底而不是直接1
|
||
# MAGIC ,from_utc_timestamp(current_timestamp(),'UTC+8') AS etl_insert_dt
|
||
# MAGIC ,from_utc_timestamp(current_timestamp(),'UTC+8') AS etl_update_dt
|
||
# MAGIC from tmp.tmp_dm_zk_retail_pack_property a
|
||
# MAGIC left join (--COUNTINGUNIT
|
||
# MAGIC select distinct
|
||
# MAGIC market,
|
||
# MAGIC cmps_cod,
|
||
# MAGIC cmps_des,
|
||
# MAGIC ----------------------------------------------------------------------------
|
||
# MAGIC -- format pack_cod from dwd_gnd_ims_tblbrandratio
|
||
# MAGIC case when length(trim(pack_cod)) < 12 and trim(pack_cod) REGEXP '^[0-9]'
|
||
# MAGIC then right(concat('000000000000',trim(pack_cod)),12)
|
||
# MAGIC else trim(pack_cod)
|
||
# MAGIC end as pack_cod,
|
||
# MAGIC ----------------------------------------------------------------------------
|
||
# MAGIC pack_des,
|
||
# MAGIC level,
|
||
# MAGIC type,
|
||
# MAGIC cast(ratio as float) as ratio,
|
||
# MAGIC cast(starttime as int) starttime,
|
||
# MAGIC cast (endtime as int) endtime
|
||
# MAGIC from dwd.dwd_gnd_ims_tblbrandratio
|
||
# MAGIC where UPPER(TYPE) = 'COUNTINGUNIT' and UPPER(Level) = 'PACK'
|
||
# MAGIC )t4 on a.market=t4.market
|
||
# MAGIC and a.iqvia_pack_code = t4.PACK_COD
|
||
# MAGIC left join (--COUNTINGUNIT
|
||
# MAGIC select distinct
|
||
# MAGIC market,
|
||
# MAGIC cmps_cod,
|
||
# MAGIC cmps_des,
|
||
# MAGIC ----------------------------------------------------------------------------
|
||
# MAGIC -- format pack_cod from dwd_gnd_ims_tblbrandratio
|
||
# MAGIC case when length(trim(pack_cod)) < 12 and trim(pack_cod) REGEXP '^[0-9]'
|
||
# MAGIC then right(concat('000000000000',trim(pack_cod)),12)
|
||
# MAGIC else trim(pack_cod)
|
||
# MAGIC end as pack_cod,
|
||
# MAGIC ----------------------------------------------------------------------------
|
||
# MAGIC pack_des,
|
||
# MAGIC level,
|
||
# MAGIC type,
|
||
# MAGIC cast(ratio as float) as ratio,
|
||
# MAGIC cast(starttime as int) starttime,
|
||
# MAGIC cast (endtime as int) endtime
|
||
# MAGIC from dwd.dwd_gnd_ims_tblbrandratio
|
||
# MAGIC where UPPER(TYPE) = 'COUNTINGUNIT' and UPPER(Level) = 'MOLECULE'
|
||
# MAGIC ) t5 on a.market=t5.market
|
||
# MAGIC and right(concat('000000',a.CMPS_COD ),6 )= right(concat('000000',t5.CMPS_COD ),6 )
|
||
# MAGIC union all
|
||
# MAGIC select distinct
|
||
# MAGIC a.market || a.iqvia_pack_code as market_pack_key
|
||
# MAGIC ,a.iqvia_pack_code as pack_cod
|
||
# MAGIC ,a.prod_des as prod_des
|
||
# MAGIC ,a.cmps_des as cmps_des
|
||
# MAGIC ,a.corp_cod as corp_cod
|
||
# MAGIC ,a.market as market
|
||
# MAGIC ,a.Market_Ratio as value_market_ratio
|
||
# MAGIC ,a.Market_Ratio as unit_market_ratio
|
||
# MAGIC ,coalesce(case when t4.ratio is null then t5.ratio*coalesce(a.Market_Ratio ,1 )
|
||
# MAGIC else t4.ratio*coalesce(a.Market_Ratio ,1 )
|
||
# MAGIC end ,a.Market_Ratio ) countingunit_market_ratio --20250319如果tblbrandratio 里面的没有对应的 ratio 则用market_ratio兜底而不是直接1
|
||
# MAGIC ,from_utc_timestamp(current_timestamp(),'UTC+8') AS etl_insert_dt
|
||
# MAGIC ,from_utc_timestamp(current_timestamp(),'UTC+8') AS etl_update_dt
|
||
# MAGIC from dws.dws_zk_retail_dtp_market a
|
||
# MAGIC left join (--COUNTINGUNIT
|
||
# MAGIC select distinct
|
||
# MAGIC market,
|
||
# MAGIC cmps_cod,
|
||
# MAGIC cmps_des,
|
||
# MAGIC ----------------------------------------------------------------------------
|
||
# MAGIC -- format pack_cod from dwd_gnd_ims_tblbrandratio
|
||
# MAGIC case when length(trim(pack_cod)) < 12 and trim(pack_cod) REGEXP '^[0-9]'
|
||
# MAGIC then right(concat('000000000000',trim(pack_cod)),12)
|
||
# MAGIC else trim(pack_cod)
|
||
# MAGIC end as pack_cod,
|
||
# MAGIC ----------------------------------------------------------------------------
|
||
# MAGIC pack_des,
|
||
# MAGIC level,
|
||
# MAGIC type,
|
||
# MAGIC cast(ratio as float) as ratio,
|
||
# MAGIC cast(starttime as int) starttime,
|
||
# MAGIC cast (endtime as int) endtime
|
||
# MAGIC from dwd.dwd_gnd_ims_tblbrandratio
|
||
# MAGIC where UPPER(TYPE) = 'COUNTINGUNIT' and UPPER(Level) = 'PACK'
|
||
# MAGIC )t4 on a.market=t4.market
|
||
# MAGIC and a.iqvia_pack_code = t4.PACK_COD
|
||
# MAGIC left join (--COUNTINGUNIT
|
||
# MAGIC select distinct
|
||
# MAGIC market,
|
||
# MAGIC cmps_cod,
|
||
# MAGIC cmps_des,
|
||
# MAGIC ----------------------------------------------------------------------------
|
||
# MAGIC -- format pack_cod from dwd_gnd_ims_tblbrandratio
|
||
# MAGIC case when length(trim(pack_cod)) < 12 and trim(pack_cod) REGEXP '^[0-9]'
|
||
# MAGIC then right(concat('000000000000',trim(pack_cod)),12)
|
||
# MAGIC else trim(pack_cod)
|
||
# MAGIC end as pack_cod,
|
||
# MAGIC ----------------------------------------------------------------------------
|
||
# MAGIC pack_des,
|
||
# MAGIC level,
|
||
# MAGIC type,
|
||
# MAGIC cast(ratio as float) as ratio,
|
||
# MAGIC cast(starttime as int) starttime,
|
||
# MAGIC cast (endtime as int) endtime
|
||
# MAGIC from dwd.dwd_gnd_ims_tblbrandratio
|
||
# MAGIC where UPPER(TYPE) = 'COUNTINGUNIT' and UPPER(Level) = 'MOLECULE'
|
||
# MAGIC ) t5 on a.market=t5.market
|
||
# MAGIC and right(concat('000000',a.CMPS_COD ),6 ) = right(concat('000000',t5.CMPS_COD ),6 )
|
||
# MAGIC
|
||
|
||
# COMMAND ----------
|
||
|
||
############################################################END################################################################ |