Files
MarketAnalysis-ETL/Retail/10 map_to_retail_dm_table.py
2026-04-27 11:04:09 +08:00

4917 lines
176 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 TotalRx/OTC= RxTop/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 TotalTop/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-2TOP数据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-4top 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-5DTP指标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################################################################