new file: 01 dm_tf_external_sales.sql

new file:   02 dm_td_external_keycompatitor.sql
	new file:   03 dm_td_external_brand_market.sql
	new file:   04 dm_td_external_calendar.sql
	new file:   05 dm_td_external_exchangerate.sql
	new file:   07 dm_td_external_packinfo.sql
	new file:   08 dm_td_external_corp.sql
	new file:   09 dm_td_external_geo_type.sql
	new file:   11 DM_TD_EXTERNAL_MARKET_NEW.sql
	new file:   12 dm_td_external_org.sql
	new file:   13 external auth.sql
	new file:   14 dm_tf_external_retail_special_bkp.sql
	new file:   AIA/01 dm_aia_pack_property.sql
	new file:   AIA/02 dm_ext_aia_sales.sql
	new file:   AIA/02 dm_ext_aia_sales_bakup_20230327.sql
	new file:   AIA/03 dm_aia_flag.sql
	new file:   AIA/04 dm_aia_provided_flag.sql
	new file:   AIA/06 DM_TD_EXT_AIA_PACK_PROPERTY.sql
	new file:   AIA/07 DM_TD_EXT_AIA_PACK2MARKET.sql
	new file:   AIA/08 DM_TD_EXT_AIA_MARKET_RATIO.sql
	new file:   AIA/09 DM_TD_EXT_AIA_MARKET_BRAND_RATIO.sql
	new file:   AIA/10 DM_TD_EXT_AIA_MARKET_PACK_MAPPING.sql
	new file:   AIA/11 DM_TD_EXT_AIA_TARGET_INST.sql
	new file:   AIA/11 dm_aia_targethp_flag.sql
	new file:   "AIA/z_03 dm_aia_flag_\345\244\207\344\273\275\347\224\250.sql"
	new file:   CHC/01 dm_chc_pack_property.sql
	new file:   CHC/02 DM_TF_EXT_CHC_SALES.sql
	new file:   CHC/03 DM_TD_EXT_CHC_PACK_PROPERTY.sql
	new file:   CHC/04 DM_TD_EXT_CHC_PACK2MARKET.sql
	new file:   CHC/05 DM_TD_EXT_CHC_MARKET_RATIO.sql
	new file:   CHC/06 DM_TD_EXT_CHC_MARKET_BRAND_RATIO.sql
	new file:   CHC/07 DM_TD_EXT_CHC_MARKET_PACK_MAPPING.sql
	new file:   CHPA/01 dwd_ims_atc_hierarchy.sql
	new file:   CHPA/01 dwd_ims_nfc_hierarchy.sql
	new file:   CHPA/01 dwd_ims_td_manufacturer_corp.sql
	new file:   CHPA/01 dwd_ims_td_pack_property.sql
	new file:   CHPA/01 dwd_update.sql
	new file:   CHPA/01_FB_BLOB_TO_DWD.sql
	new file:   CHPA/02 DWS_IMS_TD_GEO.sql
	new file:   CHPA/02 dws_ims_td_atc_cn.sql
	new file:   CHPA/02 dws_ims_td_corp_cn.sql
	new file:   CHPA/02 dws_ims_td_date.sql
	new file:   CHPA/02 dws_ims_td_manu_cn.sql
	new file:   CHPA/02 dws_ims_td_market.sql
	new file:   CHPA/02 dws_ims_td_market_ta.sql
	new file:   CHPA/02 dws_ims_td_nfc_cn.sql
	new file:   CHPA/02 dws_ims_td_prod_cn.sql
	new file:   CHPA/02 tmp_ims_td_prod_tmp.sql
	new file:   CHPA/02 tmp_ims_tf_fact_sales.sql
	new file:   CHPA/03 DM_TD_EXT_CHPA_MARKET_BRAND_RATIO.sql
	new file:   CHPA/03 DM_TD_EXT_CHPA_MARKET_PACK_MAPPING.sql
	new file:   CHPA/03 DM_TD_EXT_CHPA_MARKET_RATIO.sql
	new file:   CHPA/03 DM_TD_EXT_CHPA_PACK2MARKET.sql
	new file:   CHPA/03 DM_TD_EXT_CHPA_PACK_PROPERTY.sql
	new file:   CHPA/03 DM_TF_EXT_CHPA_SALES.sql
	new file:   CHPA/03 dm_ims_td_calendar.sql
	new file:   CHPA/03 dm_ims_td_geo.sql
	new file:   CHPA/03 dm_ims_td_market_property.sql
	new file:   CHPA/03 dm_ims_td_org.sql
	new file:   CHPA/03 dm_ims_td_org_hvh.sql
	new file:   CHPA/03 dm_ims_td_pack_property.sql
	new file:   CHPA/03 dm_ims_tf_sales.sql
	new file:   CHPA/03 dm_td_chpa_market_definition.sql
	new file:   CHPA/03 dm_td_ims_city_mapping.sql
	new file:   EC/03 ec_load_data.sql
	new file:   EC/04 DM_TD_EXT_EC_PACK_PROPERTY.sql
	new file:   EC/05 DM_TF_EXT_EC_SALES.sql
	new file:   EC/06 DM_TD_EXT_EC_PACK2MARKET.sql
	new file:   EC/07 DM_TD_EXT_EC_MARKET_RATIO.sql
	new file:   EC/08 DM_TD_EXT_EC_MARKET_BRAND_RATIO.sql
	new file:   EC/09 DM_TD_EXT_EC_MARKET_PACK_MAPPING.sql
	new file:   EC/1 (ec)blob_to_dwd.sql
	new file:   EC/2 dwd_inc_gnd_ext_ec_nationnal_pack_union_all.py
	new file:   Merged_Data/Merged_Data_Config_table_bkp.sql
	new file:   Merged_Data/Merged_Data_Config_table_bymonth.sql
	new file:   Merged_Data/dm_tf_exteranl_sales_merged_data_dtp_others_bkp.sql
	new file:   Merged_Data/dm_tf_exteranl_sales_merged_data_dtp_others_bymonth_bkp.sql
	new file:   ORG/DM_TD_EXT_AIA_ORG.sql
	new file:   ORG/DM_TD_EXT_CHC_ORG.sql
	new file:   ORG/DM_TD_EXT_CHPA_ORG.sql
	new file:   ORG/DM_TD_EXT_COUNTY_ORG.sql
	new file:   ORG/DM_TD_EXT_EC_ORG.sql
	new file:   ORG/DM_TD_EXT_RETAIL_ORG.sql
	new file:   ORG/DM_TD_EXT_THC_ORG.sql
	new file:   ORG/DM_TD_EXT_XIEHE_ORG.sql
	new file:   OTHERS/01 dm_td_report_url.sql
	new file:   OTHERS/02 dws_ext_email_warning.sql
	new file:   OTHERS/external_triggered_email.py
	new file:   Retail/01 load_tmp_data.py
	new file:   Retail/02 split_brand_data.py
	new file:   Retail/03 split_pack_data.py
	new file:   Retail/04 map_to_dws_table.py
	new file:   Retail/05 load_dtp_temp_data.py
	new file:   Retail/06 split_dtp_brand_data.py
	new file:   Retail/07 split_dtp_pack_data.py
	new file:   Retail/08 map_to_dtp_dws_table.py
	new file:   Retail/09 dwd_inc_gnd_ext_retail_nataional.py
	new file:   Retail/10 map_to_retail_dm_table.py
	new file:   Retail/11 map_to_overview_dm_table.py
	new file:   Retail/12 dws_tf_external_retail_dtp_special.sql
	new file:   Retail/13 DM_TF_EXT_RETAIL_SALES.sql
	new file:   Retail/14 DM_TF_EXT_RETAIL_DTP_SALES.sql
	new file:   Retail/15 DM_TD_EXT_RETAIL_PACK_PROPERTY.sql
	new file:   Retail/16 DM_TD_EXT_RETAIL_DTP_PACK_PROPERTY.sql
	new file:   Retail/17 DM_TD_EXT_DTP_PACK2MARKET.sql
	new file:   Retail/17 DM_TD_EXT_RETAIL_PACK2MARKET.sql
	new file:   Retail/18 DM_TD_EXT_DTP_MARKET_RATIO.sql
	new file:   Retail/18 DM_TD_EXT_RETAIL_MARKET_RATIO.sql
	new file:   Retail/19 DM_TD_EXT_DTP_MARKET_BRAND_RATIO.sql
	new file:   Retail/19 DM_TD_EXT_RETAIL_MARKET_BRAND_RATIO.sql
	new file:   Retail/20 DM_TD_EXT_DTP_MARKET_PACK_MAPPING.sql
	new file:   Retail/20 DM_TD_EXT_RETAIL_MARKET_PACK_MAPPING.sql
	new file:   "Retail/z1 dwd_inc_gnd_ext_retail_nataional_\344\275\234\345\272\237.py"
	new file:   "Retail/z2 retail_load_data_\344\275\234\345\272\237.sql"
	new file:   "Retail/z3 retail_overview_data_\344\275\234\345\272\237.sql"
	new file:   THC/01 dm_thc_pack_property.sql
	new file:   THC/02 dm_ext_thc_sales.sql
	new file:   THC/02 dm_ext_thc_sales_bakup_20260327.sql
	new file:   THC/03 DM_TF_EXT_THC_MARKET_SALES_CHT.sql
	new file:   THC/04 dm_tf_external_sales_thc.sql
	new file:   THC/05 DM_TD_EXT_THC_PACK_PROPERTY.sql
	new file:   THC/06 DM_TD_EXT_THC_PACK2MARKET.sql
	new file:   THC/07 DM_TD_EXT_THC_MARKET_RATIO.sql
	new file:   THC/08 DM_TD_EXT_THC_MARKET_BRAND_RATIO.sql
	new file:   THC/09 DM_TD_EXT_THC_MARKET_PACK_MAPPING.sql
	new file:   UNIONALL/DM_TD_EXT_UNIONALL_MARKET_PACK_MAPPING.sql
	new file:   UNIONALL/DM_TD_EXT_UNIONALL_PACKINFO.sql
	new file:   UNIONALL/DM_TF_EXT_UNIONALL_MARKET_SALES.sql
	new file:   UNIONALL/DM_TF_EXT_UNIONALL_MARKET_SALES_v1.0.sql
	new file:   UNIONALL/DM_TF_EXT_UNIONALL_SALES.sql
	new file:   UNIONALL/DM_TF_EXT_UNIONALL_SALES_MAPPING.sql
	new file:   UNIONALL/DM_TF_EXT_UNIONALL_SALES_MAPPING_NIAD.sql
	new file:   XIEHE/01 xiehe_blob_to_dwd.py
	new file:   XIEHE/02 dm_xiehe_pack_property.sql
	new file:   XIEHE/03 dm_ext_xiehe_geo.sql
	new file:   XIEHE/04 dm_ext_xiehe_sales.sql
	new file:   XIEHE/05 dm_td_xiehe_core_dept.sql
	new file:   XIEHE/06 DM_TF_EXT_XIEHE_SALES.sql
	new file:   XIEHE/07 DM_TD_EXT_XIEHE_PACK_PROPERTY.sql
	new file:   XIEHE/08 DM_TD_EXT_XIEHE_PACK2MARKET.sql
	new file:   XIEHE/09 DM_TD_EXT_XIEHE_MARKET_RATIO.sql
	new file:   XIEHE/10 DM_TD_EXT_XIEHE_MARKET_BRAND_RATIO.sql
	new file:   XIEHE/11 DM_TD_EXT_XIEHE_MARKET_PACK_MAPPING.sql
	new file:   XIEHE/bkp_01 xiehe_blob2dwd.py
	new file:   XIEHE/bkp_02 dm_ext_xiehe_sales.sql
	new file:   XIEHE/bkp_03 dm_ext_xiehe_pack_property.sql
	new file:   county/01 tmp_ims_county_fact_sales_sum.sql
	new file:   county/02 tmp_imscounty_Result.sql
	new file:   county/03 dm_ims_td_county_geo.sql
	new file:   county/04 dws_ext_county_tf_sales.sql
	new file:   county/05 dm_ext_county_td_pack_property.sql
	new file:   county/06 dm_td_county_pack_region.sql
	new file:   county/07 dm_ext_county_tf_sales_region.sql
	new file:   county/08 DM_TD_EXT_COUNTY_PACK_PROPERTY.sql
	new file:   county/09 DM_TF_EXT_COUNTY_SALES.sql
	new file:   county/10 DM_TD_EXT_COUNTY_PACK2MARKET.sql
	new file:   county/11 DM_TD_EXT_COUNTY_MARKET_RATIO.sql
	new file:   county/12 DM_TD_EXT_COUNTY_MARKET_BRAND_RATIO.sql
	new file:   county/13 DM_TD_EXT_COUNTY_MARKET_PACK_MAPPING.sql
	new file:   for_AIA_Dashboard/01 dm_td_aia_inst_mkt.sql
	new file:   for_AIA_Dashboard/02 dm_td_aia_auth_sales.sql
	new file:   for_AIA_Dashboard/03 dm_td_aia_original_col.sql
	new file:   for_AIA_Dashboard/04 dm_td_aia_nosales_inst.sql
	new file:   for_AIA_Dashboard/05 dm_td_aia_is_eagle_flag.sql
	new file:   for_AIA_Dashboard/06 dm_td_aia_rank.sql
	new file:   for_AIA_Dashboard/07 dm_ext_aia_data_remove_flag.sql
	new file:   for_AIA_Dashboard/07 dm_td_aia_remove_special_ins_bkp.py
	new file:   for_AIA_Dashboard/08 dm_ext_aia_data_quality_flag.sql
	new file:   z 01 dm_tf_external_sales.sql
	new file:   "z 10 dm_td_external_market_pack_mapping_\344\275\234\345\272\237.sql"
	new file:   "z 11 dm_td_external_market_\344\275\234\345\272\237.sql"
	new file:   "\344\270\212\347\272\277\350\204\232\346\234\254.sql"
	new file:   "\346\225\260\346\215\256\351\252\214\350\257\201.sql"
This commit is contained in:
2026-04-27 15:48:38 +08:00
parent d2485035c0
commit 832c7bcd69
173 changed files with 62579 additions and 0 deletions

1154
ORG/DM_TD_EXT_AIA_ORG.sql Normal file

File diff suppressed because it is too large Load Diff

235
ORG/DM_TD_EXT_CHC_ORG.sql Normal file
View File

@@ -0,0 +1,235 @@
-- Databricks notebook source
-- CREATE OR REPLACE TABLE DM.DM_TD_EXT_CHC_ORG (
-- REGION_CODE STRING,
-- REGION_NAME_EN STRING,
-- RSM_NAME STRING,
-- RC_CODE STRING,
-- RC_NAME_EN STRING,
-- RC_NAME STRING,
-- REGIONCENTER STRING,
-- AUDIT_COD STRING,
-- MARKET STRING,
-- BU_CATEGORY STRING,
-- BU_NAME_EN STRING,
-- SUB_BU_NAME STRING,
-- SUB_BU_CODE_AUTH STRING,
-- BU_CODE_AUTH STRING,
-- DATA_SOURCE STRING,
-- REGION_RATIO FLOAT,
-- TEAM STRING,
-- MR_TRTY_CODE STRING,
-- NSD_KCODE STRING,
-- NSD_NAME STRING,
-- RSD_KCODE STRING,
-- RSD_NAME STRING,
-- RSM_KCODE STRING,
-- DSM_KCODE STRING,
-- DSM_NAME STRING,
-- MR_KCODE STRING,
-- MR_NAME STRING)
-- USING delta
-- LOCATION 'abfss://master@retaildlstoragetest.dfs.core.chinacloudapi.cn/DM/dm_td_ext_chc_org';
-- COMMAND ----------
-- MAGIC %run ../../../Common/config
-- COMMAND ----------
-- MAGIC %python
-- MAGIC spark.read.table(f'`{CDW_CATALOG}`.`dwd`.`dim_product_wide`').createOrReplaceTempView('cdw_dwd_dim_product_wide')
-- COMMAND ----------
-- 20260130 由于DM.dm_td_org数据需要转换新增这个CELL。
create or replace temporary view dm_td_org_temp
as
SELECT org_key,mr_trty_tag,district_code,rsm_name,rc_name,p2.region_name,p2.rsd_kcode,p2.rsd_name
,CASE WHEN p2.yyyymm >= '202601' and p2.bu_code = 'PC12' then 'PC09' else p2.bu_code end bu_code
,CASE WHEN p2.yyyymm >= '202601' and p2.bu_report = 'EC' THEN 'Retail' ELSE p2.bu_report end bu_report
,CASE WHEN p2.yyyymm >= '202601' and p2.sub_bu_code = 'NA27' then 'NA06' else p2.sub_bu_code end sub_bu_code
,CASE WHEN p2.yyyymm >= '202601' and p2.sub_bu_name = 'EC' then 'Retail' else p2.sub_bu_name end sub_bu_name
,CASE WHEN p2.yyyymm >= '202601' and p2.sub_bu_name_en = 'EC' then 'Retail' else p2.sub_bu_name_en end sub_bu_name_en
,CASE WHEN p2.yyyymm >= '202601' and p2.bu_name = 'EC' then 'Retail' else p2.bu_name end bu_name
,CASE WHEN p2.yyyymm >= '202601' and p2.bu_name_en = 'EC' then 'Retail' else p2.bu_name_en end bu_name_en
,CASE WHEN p2.yyyymm >= '202601' and p2.nsd_kcode = 'ND_EC0001_V' then 'KSGX559' else p2.nsd_kcode end nsd_kcode
,CASE WHEN p2.yyyymm >= '202601' and p2.bu_name = 'EC'and p2.nsd_name = 'Vacant' then '李白杨' else p2.nsd_name end nsd_name
,CASE WHEN p2.yyyymm >= '202601' and p2.nsd_trty_code = 'ND_EC0001' then 'ND_RT0001' else p2.nsd_trty_code end nsd_trty_code
,CASE WHEN p2.yyyymm >= '202601' and p2.bsd_kcode = 'VP_EC0001_V' then 'VP_RT0001_V' else p2.bsd_kcode end bsd_kcode
,CASE WHEN p2.yyyymm >= '202601' and p2.bsd_trty_code = 'VP_EC0001' then 'VP_RT0001' else p2.bsd_trty_code end bsd_trty_code
,mr_kcode,dsm_trty_code,rsm_trty_code,dsm_kcode,rsd_trty_code
,district_name,dsm_name,mr_name,yyyymm,mr_trty_code,REGION_CODE,rc_code,bu_category,rsm_kcode
FROM DM.dm_td_org P2
-- COMMAND ----------
----------------------------------------------------CHC------------------------------------------------------------------------------
-----------只有chc的人能看chc
insert overwrite dm.DM_TD_EXT_CHC_ORG
(REGION_CODE,region_name_en,rc_code,rc_name_en,RegionCenter,AUDIT_COD,MARKET,bu_category,bu_name_en,sub_bu_name,sub_bu_code_auth,bu_code_auth,DATA_SOURCE,REGION_RATIO,RSM_Name,RC_Name,
TEAM,
MR_TRTY_CODE,
NSD_KCODE,
NSD_NAME,
RSD_KCODE,
RSD_NAME,
RSM_KCODE,
DSM_KCODE,
DSM_NAME,
MR_KCODE,
MR_NAME
)
SELECT DISTINCT T1.REGION_CODE,T1.region_name,T1.rc_code,T1.rc_name,T4.REGION_CENTER RegionCenter,T4.AUDIT_COD,T3.MARKET,T1.bu_category,T1.bu_name_en,T1.sub_bu_name,T1.sub_bu_code sub_bu_code_auth,concat(T1.bu_code,'CHC(Quarterly)') bu_code_auth,T4.DATA_SOURCE,1 REGION_RATIO,t1.RSM_Name,t1.rsd_name,
'' as TEAM,
'' as MR_TRTY_CODE,
'' as NSD_KCODE,
'' as NSD_NAME,
'' as RSD_KCODE,
'' as RSD_NAME,
'' as RSM_KCODE,
'' as DSM_KCODE,
'' as DSM_NAME,
'' as MR_KCODE,
'' as MR_NAME
from dm_td_org_temp t1
left join(
select distinct
t1.yyyymm,
t1.trty_code,
t2.city_name,
t4.ims_prod_cod,
t4.ims_pack_cod
from dm.dm_td_sd_territory_indication t1
left join dwd.dwd_td_institution t2 on t1.inst_code=t2.inst_code
left join cdw_dwd_dim_product_wide t3 on t3.prd_family_cd=t1.family_code
left join dwd.dwd_td_imscode_azcode t4 on t3.prd_brand_cd=t4.brandcode
where t1.bu not in ('CUBE','KA')
and t1.key_hp<>3 --chenwu 20250904
)t2 on t2.trty_code= t1.mr_trty_code and t2.yyyymm=t1.yyyymm
left join dws.dws_ims_td_market t3 on t2.ims_pack_cod=t3.pack_cod
left join DM.dm_td_external_geo_temp T4 on t2.city_name=concat(t4.city_c,'') AND T4.DATA_SOURCE = 'CHC(Quarterly)'
--使performance cvh org架构
where t1.yyyymm in(
select key_value from dm.dm_td_date_config where key_code='pfmc_cvh')
and t3.market is not null and t4.audit_cod is not null and t1.bu_name_en = 'CHC'
-- COMMAND ----------
-- DBTITLE 1,add
--20240808
--FanXuJia
--
--audit_cod在事实表有销量audit_cod
--audit_cod
with sales as (
select distinct PACK_COD,AUDIT_COD,DATA_SOURCE from dm.dm_tf_external_sales
union
select distinct PACK_COD,AUDIT_COD,DATA_SOURCE from dm.dm_tf_external_sales_thc
)
,market_pack as (
select distinct PACK_COD,MARKET,DATA_SOURCE from dm.dm_td_external_market_pack_mapping
)
,org as (
select distinct AUDIT_COD,MARKET,DATA_SOURCE from dm.DM_TD_EXT_CHC_ORG
)
,tmp_org as (
select distinct a.AUDIT_COD,b.MARKET,a.DATA_SOURCE
from sales a
left join market_pack b on a.PACK_COD = b.PACK_COD and a.DATA_SOURCE = b.DATA_SOURCE
left join org c on a.DATA_SOURCE = c.DATA_SOURCE and a.AUDIT_COD = c.AUDIT_COD and b.MARKET = c.MARKET
where C.AUDIT_COD IS NULL
)
insert into table dm.DM_TD_EXT_CHC_ORG
(
REGION_CODE,
region_name_en,
RSM_Name,
rc_code,
rc_name_en,
RC_Name,
RegionCenter,
AUDIT_COD,
MARKET,
bu_category,
bu_name_en,
sub_bu_name,
sub_bu_code_auth,
bu_code_auth,
DATA_SOURCE,
REGION_RATIO,
TEAM,
MR_TRTY_CODE,
NSD_KCODE,
NSD_NAME,
RSD_KCODE,
RSD_NAME,
RSM_KCODE,
DSM_KCODE,
DSM_NAME,
MR_KCODE,
MR_NAME
)
select
'ROC' as REGION_CODE,
'ROC' as region_name_en,
'Vacant' as RSM_Name,
'ROC' as rc_code,
'ROC' as rc_name_en,
'Vacant' as RC_Name,
null as RegionCenter,
AUDIT_COD,
MARKET,
null as bu_category,
null as bu_name_en,
null as sub_bu_name,
null as sub_bu_code_auth,
DATA_SOURCE as bu_code_auth,
DATA_SOURCE,
1 as REGION_RATIO,
'ROC' as TEAM,
'Vacant' as MR_TRTY_CODE,
'Vacant' as NSD_KCODE,
'Vacant' as NSD_NAME,
'Vacant' as RSD_KCODE,
'Vacant' as RSD_NAME,
'Vacant' as RSM_KCODE,
'Vacant' as DSM_KCODE,
'Vacant' as DSM_NAME,
'Vacant' as MR_KCODE,
'Vacant' as MR_NAME
from tmp_org
where DATA_SOURCE = 'CHC(Quarterly)'
-- COMMAND ----------
-- DBTITLE 1,hidden_market
-----------------------------------------------------------
--修改时间20241118
--Fanxujia
--
--使
-----------------------------------------------------------
with hidden_market as (
select distinct
case when upper(data_source) = 'CHPA' then 'IQVIA-CHPA(Monthly)'
when upper(data_source) = '科室市场' then 'XH Data(Quarterly)'
when upper(data_source) = 'EC' then 'EC(Monthly)'
when upper(data_source) = 'RETAIL' then 'Retail(Quarterly)'
when upper(data_source) = 'CHC' then 'CHC(Quarterly)'
when upper(data_source) = 'AIA' then 'AIA(Monthly)'
when upper(data_source) = 'THC' then 'THC(Quarterly)'
when upper(data_source) = 'COUNTY' then 'IQVIA-COUNTY(Quarterly)'
else data_source
end as data_source,
upper(hidden_market) as hidden_market
from dwd.dwd_gnd_ims_hidden_market
)
MERGE into dm.DM_TD_EXT_CHC_ORG as t1
USING hidden_market t2
on t1.data_source = t2.data_source
and upper(t1.MARKET) = upper(t2.hidden_market)
WHEN MATCHED THEN
DELETE

233
ORG/DM_TD_EXT_CHPA_ORG.sql Normal file
View File

@@ -0,0 +1,233 @@
-- Databricks notebook source
-- CREATE OR REPLACE TABLE DM.DM_TD_EXT_CHPA_ORG (
-- REGION_CODE STRING,
-- REGION_NAME_EN STRING,
-- RSM_NAME STRING,
-- RC_CODE STRING,
-- RC_NAME_EN STRING,
-- RC_NAME STRING,
-- REGIONCENTER STRING,
-- AUDIT_COD STRING,
-- MARKET STRING,
-- BU_CATEGORY STRING,
-- BU_NAME_EN STRING,
-- SUB_BU_NAME STRING,
-- SUB_BU_CODE_AUTH STRING,
-- BU_CODE_AUTH STRING,
-- DATA_SOURCE STRING,
-- REGION_RATIO FLOAT,
-- TEAM STRING,
-- MR_TRTY_CODE STRING,
-- NSD_KCODE STRING,
-- NSD_NAME STRING,
-- RSD_KCODE STRING,
-- RSD_NAME STRING,
-- RSM_KCODE STRING,
-- DSM_KCODE STRING,
-- DSM_NAME STRING,
-- MR_KCODE STRING,
-- MR_NAME STRING)
-- USING delta
-- LOCATION 'abfss://master@retaildlstoragetest.dfs.core.chinacloudapi.cn/DM/dm_td_ext_chpa_org';
-- COMMAND ----------
----------------------------------------------------chpa------------------------------------------------------------------------------
------所有BU能看CHPA
insert overwrite DM.DM_TD_EXT_CHPA_ORG (
REGION_CODE,
region_name_en,
rc_code,
rc_name_en,
RegionCenter,
AUDIT_COD,
MARKET,
bu_category,
bu_name_en,
sub_bu_name,
sub_bu_code_auth,
bu_code_auth,
DATA_SOURCE,
REGION_RATIO,
RSM_Name,
RC_Name,
TEAM,
MR_TRTY_CODE,
NSD_KCODE,
NSD_NAME,
RSD_KCODE,
RSD_NAME,
RSM_KCODE,
DSM_KCODE,
DSM_NAME,
MR_KCODE,
MR_NAME
)
SELECT DISTINCT
CASE WHEN bu_category IN ('All Channel','EC') then 'ROC'
when REGION_CODE IN ('Other Low Tiers', 'Non AZ Region') THEN 'ROC'
ELSE REGION_CODE
END REGION_CODE,
CASE WHEN bu_category IN ('All Channel','EC') then 'ROC'
when region_name IN ('Other Low Tiers', 'Non AZ Region') THEN 'ROC'
ELSE region_name
END region_name,
CASE WHEN bu_category IN ('All Channel','EC') then 'ROC'
when rc_code IN ('Other Low Tiers', 'Non AZ Region') THEN 'ROC'
ELSE rc_code
END rc_code,
CASE WHEN bu_category IN ('All Channel','EC') then 'ROC'
when rc_name IN ('Other Low Tiers', 'Non AZ Region') THEN 'ROC'
ELSE rc_name
END rc_name,
RegionCenter,
AUDIT_COD,
MARKET,
bu_category,
bu_name_en,
sub_bu_name,
sub_bu_code_auth,
concat(bu_code_auth, 'IQVIA-CHPA(Monthly)') bu_code_auth,
'IQVIA-CHPA(Monthly)' DATA_SOURCE,
1 REGION_RATIO,
rsm_name,
rsd_name,
'' as TEAM,
'' as MR_TRTY_CODE,
'' as NSD_KCODE,
'' as NSD_NAME,
'' as RSD_KCODE,
'' as RSD_NAME,
'' as RSM_KCODE,
'' as DSM_KCODE,
'' as DSM_NAME,
'' as MR_KCODE,
'' as MR_NAME
FROM
DM.DM_ims_TD_ORG
WHERE
MARKET <> 'IMS ALL Market'
and AUDIT_COD is not null
and ORG_KEY is not null
--AND bu_category NOT IN ('All Channel','EC')
-- COMMAND ----------
-- DBTITLE 1,add
--20240808
--FanXuJia
--
--audit_cod在事实表有销量audit_cod
--audit_cod
with sales as (
select distinct PACK_COD,AUDIT_COD,DATA_SOURCE from dm.dm_tf_external_sales
union
select distinct PACK_COD,AUDIT_COD,DATA_SOURCE from dm.dm_tf_external_sales_thc
)
,market_pack as (
select distinct PACK_COD,MARKET,DATA_SOURCE from dm.dm_td_external_market_pack_mapping
)
,org as (
select distinct AUDIT_COD,MARKET,DATA_SOURCE from dm.DM_TD_EXT_CHPA_ORG
)
,tmp_org as (
select distinct a.AUDIT_COD,b.MARKET,a.DATA_SOURCE
from sales a
left join market_pack b on a.PACK_COD = b.PACK_COD and a.DATA_SOURCE = b.DATA_SOURCE
left join org c on a.DATA_SOURCE = c.DATA_SOURCE and a.AUDIT_COD = c.AUDIT_COD and b.MARKET = c.MARKET
where C.AUDIT_COD IS NULL
)
insert into table dm.DM_TD_EXT_CHPA_ORG
(
REGION_CODE,
region_name_en,
RSM_Name,
rc_code,
rc_name_en,
RC_Name,
RegionCenter,
AUDIT_COD,
MARKET,
bu_category,
bu_name_en,
sub_bu_name,
sub_bu_code_auth,
bu_code_auth,
DATA_SOURCE,
REGION_RATIO,
TEAM,
MR_TRTY_CODE,
NSD_KCODE,
NSD_NAME,
RSD_KCODE,
RSD_NAME,
RSM_KCODE,
DSM_KCODE,
DSM_NAME,
MR_KCODE,
MR_NAME
)
select
'ROC' as REGION_CODE,
'ROC' as region_name_en,
'Vacant' as RSM_Name,
'ROC' as rc_code,
'ROC' as rc_name_en,
'Vacant' as RC_Name,
null as RegionCenter,
AUDIT_COD,
MARKET,
null as bu_category,
null as bu_name_en,
null as sub_bu_name,
null as sub_bu_code_auth,
DATA_SOURCE as bu_code_auth,
DATA_SOURCE,
1 as REGION_RATIO,
'ROC' as TEAM,
'Vacant' as MR_TRTY_CODE,
'Vacant' as NSD_KCODE,
'Vacant' as NSD_NAME,
'Vacant' as RSD_KCODE,
'Vacant' as RSD_NAME,
'Vacant' as RSM_KCODE,
'Vacant' as DSM_KCODE,
'Vacant' as DSM_NAME,
'Vacant' as MR_KCODE,
'Vacant' as MR_NAME
from tmp_org
where DATA_SOURCE = 'IQVIA-CHPA(Monthly)'
-- COMMAND ----------
-- DBTITLE 1,hidden_market
-----------------------------------------------------------
--修改时间20241118
--Fanxujia
--
--使
-----------------------------------------------------------
with hidden_market as (
select distinct
case when upper(data_source) = 'CHPA' then 'IQVIA-CHPA(Monthly)'
when upper(data_source) = '科室市场' then 'XH Data(Quarterly)'
when upper(data_source) = 'EC' then 'EC(Monthly)'
when upper(data_source) = 'RETAIL' then 'Retail(Quarterly)'
when upper(data_source) = 'CHC' then 'CHC(Quarterly)'
when upper(data_source) = 'AIA' then 'AIA(Monthly)'
when upper(data_source) = 'THC' then 'THC(Quarterly)'
when upper(data_source) = 'COUNTY' then 'IQVIA-COUNTY(Quarterly)'
else data_source
end as data_source,
upper(hidden_market) as hidden_market
from dwd.dwd_gnd_ims_hidden_market
)
MERGE into dm.DM_TD_EXT_CHPA_ORG as t1
USING hidden_market t2
on t1.data_source = t2.data_source
and upper(t1.MARKET) = upper(t2.hidden_market)
WHEN MATCHED THEN
DELETE

View File

@@ -0,0 +1,220 @@
-- Databricks notebook source
-- CREATE OR REPLACE TABLE DM.DM_TD_EXT_COUNTY_ORG (
-- REGION_CODE STRING,
-- REGION_NAME_EN STRING,
-- RSM_NAME STRING,
-- RC_CODE STRING,
-- RC_NAME_EN STRING,
-- RC_NAME STRING,
-- REGIONCENTER STRING,
-- AUDIT_COD STRING,
-- MARKET STRING,
-- BU_CATEGORY STRING,
-- BU_NAME_EN STRING,
-- SUB_BU_NAME STRING,
-- SUB_BU_CODE_AUTH STRING,
-- BU_CODE_AUTH STRING,
-- DATA_SOURCE STRING,
-- REGION_RATIO FLOAT,
-- TEAM STRING,
-- MR_TRTY_CODE STRING,
-- NSD_KCODE STRING,
-- NSD_NAME STRING,
-- RSD_KCODE STRING,
-- RSD_NAME STRING,
-- RSM_KCODE STRING,
-- DSM_KCODE STRING,
-- DSM_NAME STRING,
-- MR_KCODE STRING,
-- MR_NAME STRING)
-- USING delta
-- LOCATION 'abfss://master@retaildlstoragetest.dfs.core.chinacloudapi.cn/DM/dm_td_ext_county_org';
-- COMMAND ----------
-- 20260130 由于DM.dm_td_org数据需要转换新增这个CELL。
create or replace temporary view dm_td_org_temp
as
SELECT org_key,mr_trty_tag,district_code,rsm_name,rc_name,p2.region_name,p2.rsd_kcode,p2.rsd_name
,CASE WHEN p2.yyyymm >= '202601' and p2.bu_code = 'PC12' then 'PC09' else p2.bu_code end bu_code
,CASE WHEN p2.yyyymm >= '202601' and p2.bu_report = 'EC' THEN 'Retail' ELSE p2.bu_report end bu_report
,CASE WHEN p2.yyyymm >= '202601' and p2.sub_bu_code = 'NA27' then 'NA06' else p2.sub_bu_code end sub_bu_code
,CASE WHEN p2.yyyymm >= '202601' and p2.sub_bu_name = 'EC' then 'Retail' else p2.sub_bu_name end sub_bu_name
,CASE WHEN p2.yyyymm >= '202601' and p2.sub_bu_name_en = 'EC' then 'Retail' else p2.sub_bu_name_en end sub_bu_name_en
,CASE WHEN p2.yyyymm >= '202601' and p2.bu_name = 'EC' then 'Retail' else p2.bu_name end bu_name
,CASE WHEN p2.yyyymm >= '202601' and p2.bu_name_en = 'EC' then 'Retail' else p2.bu_name_en end bu_name_en
,CASE WHEN p2.yyyymm >= '202601' and p2.nsd_kcode = 'ND_EC0001_V' then 'KSGX559' else p2.nsd_kcode end nsd_kcode
,CASE WHEN p2.yyyymm >= '202601' and p2.bu_name = 'EC'and p2.nsd_name = 'Vacant' then '李白杨' else p2.nsd_name end nsd_name
,CASE WHEN p2.yyyymm >= '202601' and p2.nsd_trty_code = 'ND_EC0001' then 'ND_RT0001' else p2.nsd_trty_code end nsd_trty_code
,CASE WHEN p2.yyyymm >= '202601' and p2.bsd_kcode = 'VP_EC0001_V' then 'VP_RT0001_V' else p2.bsd_kcode end bsd_kcode
,CASE WHEN p2.yyyymm >= '202601' and p2.bsd_trty_code = 'VP_EC0001' then 'VP_RT0001' else p2.bsd_trty_code end bsd_trty_code
,mr_kcode,dsm_trty_code,rsm_trty_code,dsm_kcode,rsd_trty_code
,district_name,dsm_name,mr_name,yyyymm,mr_trty_code,REGION_CODE,rc_code,bu_category,rsm_kcode
FROM DM.dm_td_org P2
-- COMMAND ----------
----------------------------------------------------county------------------------------------------------------------------------------
-----------------------除了Eagle、CHC、Retail、EC的人都能看
insert overwrite table DM.DM_TD_EXT_COUNTY_ORG
(REGION_CODE,region_name_en,rc_code,rc_name_en,RegionCenter,AUDIT_COD,MARKET,bu_category,bu_name_en,sub_bu_name,sub_bu_code_auth,bu_code_auth,DATA_SOURCE,REGION_RATIO,RSM_Name,RC_Name,
TEAM,
MR_TRTY_CODE,
NSD_KCODE,
NSD_NAME,
RSD_KCODE,
RSD_NAME,
RSM_KCODE,
DSM_KCODE,
DSM_NAME,
MR_KCODE,
MR_NAME
)
SELECT DISTINCT '' REGION_CODE,'' region_name_en,'' rc_code,'' rc_name_en,'' RegionCenter,A.AUDIT_COD,B.MARKET,C.bu_category,C.bu_name_en,C.sub_bu_name,C.sub_bu_code sub_bu_code_auth,concat(c.bu_code,'IQVIA-COUNTY(Quarterly)') bu_code_auth,A.DATA_SOURCE,1 REGION_RATIO,'','',
'' as TEAM,
'' as MR_TRTY_CODE,
'' as NSD_KCODE,
'' as NSD_NAME,
'' as RSD_KCODE,
'' as RSD_NAME,
'' as RSM_KCODE,
'' as DSM_KCODE,
'' as DSM_NAME,
'' as MR_KCODE,
'' as MR_NAME
FROM DM.dm_tf_external_sales A
INNER JOIN DM.dm_td_external_market_pack_mapping B ON A.PACK_COD = B.PACK_COD
AND A.DATA_SOURCE = B.DATA_SOURCE
INNER JOIN
(
SELECT DISTINCT '' bu_code,'' sub_bu_code,'' sub_bu_name,'' bu_category,'' bu_name_en -----------BUBU有值
FROM dm_td_org_temp C
WHERE C.yyyymm = (select key_value from dm.dm_td_date_config where key_code='pfmc_cvh')
AND C.BU_NAME_EN NOT IN ('Eagle','CHC','EC','Retail')
) C
WHERE A.DATA_SOURCE = 'IQVIA-COUNTY(Quarterly)'
-- COMMAND ----------
-- DBTITLE 1,add
--20240808
--FanXuJia
--
--audit_cod在事实表有销量audit_cod
--audit_cod
with sales as (
select distinct PACK_COD,AUDIT_COD,DATA_SOURCE from dm.dm_tf_external_sales
union
select distinct PACK_COD,AUDIT_COD,DATA_SOURCE from dm.dm_tf_external_sales_thc
)
,market_pack as (
select distinct PACK_COD,MARKET,DATA_SOURCE from dm.dm_td_external_market_pack_mapping
)
,org as (
select distinct AUDIT_COD,MARKET,DATA_SOURCE from dm.DM_TD_EXT_COUNTY_ORG
)
,tmp_org as (
select distinct a.AUDIT_COD,b.MARKET,a.DATA_SOURCE
from sales a
left join market_pack b on a.PACK_COD = b.PACK_COD and a.DATA_SOURCE = b.DATA_SOURCE
left join org c on a.DATA_SOURCE = c.DATA_SOURCE and a.AUDIT_COD = c.AUDIT_COD and b.MARKET = c.MARKET
where C.AUDIT_COD IS NULL
)
insert into table dm.DM_TD_EXT_COUNTY_ORG
(
REGION_CODE,
region_name_en,
RSM_Name,
rc_code,
rc_name_en,
RC_Name,
RegionCenter,
AUDIT_COD,
MARKET,
bu_category,
bu_name_en,
sub_bu_name,
sub_bu_code_auth,
bu_code_auth,
DATA_SOURCE,
REGION_RATIO,
TEAM,
MR_TRTY_CODE,
NSD_KCODE,
NSD_NAME,
RSD_KCODE,
RSD_NAME,
RSM_KCODE,
DSM_KCODE,
DSM_NAME,
MR_KCODE,
MR_NAME
)
select
'ROC' as REGION_CODE,
'ROC' as region_name_en,
'Vacant' as RSM_Name,
'ROC' as rc_code,
'ROC' as rc_name_en,
'Vacant' as RC_Name,
null as RegionCenter,
AUDIT_COD,
MARKET,
null as bu_category,
null as bu_name_en,
null as sub_bu_name,
null as sub_bu_code_auth,
DATA_SOURCE as bu_code_auth,
DATA_SOURCE,
1 as REGION_RATIO,
'ROC' as TEAM,
'Vacant' as MR_TRTY_CODE,
'Vacant' as NSD_KCODE,
'Vacant' as NSD_NAME,
'Vacant' as RSD_KCODE,
'Vacant' as RSD_NAME,
'Vacant' as RSM_KCODE,
'Vacant' as DSM_KCODE,
'Vacant' as DSM_NAME,
'Vacant' as MR_KCODE,
'Vacant' as MR_NAME
from tmp_org
where DATA_SOURCE = 'IQVIA-COUNTY(Quarterly)'
-- COMMAND ----------
-- DBTITLE 1,DM_TD_EXT_CHPA_ORG
-----------------------------------------------------------
--修改时间20241118
--Fanxujia
--
--使
-----------------------------------------------------------
with hidden_market as (
select distinct
case when upper(data_source) = 'CHPA' then 'IQVIA-CHPA(Monthly)'
when upper(data_source) = '科室市场' then 'XH Data(Quarterly)'
when upper(data_source) = 'EC' then 'EC(Monthly)'
when upper(data_source) = 'RETAIL' then 'Retail(Quarterly)'
when upper(data_source) = 'CHC' then 'CHC(Quarterly)'
when upper(data_source) = 'AIA' then 'AIA(Monthly)'
when upper(data_source) = 'THC' then 'THC(Quarterly)'
when upper(data_source) = 'COUNTY' then 'IQVIA-COUNTY(Quarterly)'
else data_source
end as data_source,
upper(hidden_market) as hidden_market
from dwd.dwd_gnd_ims_hidden_market
union all
select
'AIA(Monthly)' as data_source,
'AIA ALL Market'
)
MERGE into dm.DM_TD_EXT_COUNTY_ORG as t1
USING hidden_market t2
on t1.data_source = t2.data_source
and upper(t1.MARKET) = upper(t2.hidden_market)
WHEN MATCHED THEN
DELETE

219
ORG/DM_TD_EXT_EC_ORG.sql Normal file
View File

@@ -0,0 +1,219 @@
-- Databricks notebook source
-- CREATE OR REPLACE TABLE DM.DM_TD_EXT_EC_ORG (
-- REGION_CODE STRING,
-- REGION_NAME_EN STRING,
-- RSM_NAME STRING,
-- RC_CODE STRING,
-- RC_NAME_EN STRING,
-- RC_NAME STRING,
-- REGIONCENTER STRING,
-- AUDIT_COD STRING,
-- MARKET STRING,
-- BU_CATEGORY STRING,
-- BU_NAME_EN STRING,
-- SUB_BU_NAME STRING,
-- SUB_BU_CODE_AUTH STRING,
-- BU_CODE_AUTH STRING,
-- DATA_SOURCE STRING,
-- REGION_RATIO FLOAT,
-- TEAM STRING,
-- MR_TRTY_CODE STRING,
-- NSD_KCODE STRING,
-- NSD_NAME STRING,
-- RSD_KCODE STRING,
-- RSD_NAME STRING,
-- RSM_KCODE STRING,
-- DSM_KCODE STRING,
-- DSM_NAME STRING,
-- MR_KCODE STRING,
-- MR_NAME STRING)
-- USING delta
-- LOCATION 'abfss://master@retaildlstoragetest.dfs.core.chinacloudapi.cn/DM/dm_td_ext_ec_org';
-- COMMAND ----------
-- 20260130 由于DM.dm_td_org数据需要转换新增这个CELL。
create or replace temporary view dm_td_org_temp
as
SELECT org_key,mr_trty_tag,district_code,rsm_name,rc_name,p2.region_name,p2.rsd_kcode,p2.rsd_name
,CASE WHEN p2.yyyymm >= '202601' and p2.bu_code = 'PC12' then 'PC09' else p2.bu_code end bu_code
,CASE WHEN p2.yyyymm >= '202601' and p2.bu_report = 'EC' THEN 'Retail' ELSE p2.bu_report end bu_report
,CASE WHEN p2.yyyymm >= '202601' and p2.sub_bu_code = 'NA27' then 'NA06' else p2.sub_bu_code end sub_bu_code
,CASE WHEN p2.yyyymm >= '202601' and p2.sub_bu_name = 'EC' then 'Retail' else p2.sub_bu_name end sub_bu_name
,CASE WHEN p2.yyyymm >= '202601' and p2.sub_bu_name_en = 'EC' then 'Retail' else p2.sub_bu_name_en end sub_bu_name_en
,CASE WHEN p2.yyyymm >= '202601' and p2.bu_name = 'EC' then 'Retail' else p2.bu_name end bu_name
,CASE WHEN p2.yyyymm >= '202601' and p2.bu_name_en = 'EC' then 'Retail' else p2.bu_name_en end bu_name_en
,CASE WHEN p2.yyyymm >= '202601' and p2.nsd_kcode = 'ND_EC0001_V' then 'KSGX559' else p2.nsd_kcode end nsd_kcode
,CASE WHEN p2.yyyymm >= '202601' and p2.bu_name = 'EC'and p2.nsd_name = 'Vacant' then '李白杨' else p2.nsd_name end nsd_name
,CASE WHEN p2.yyyymm >= '202601' and p2.nsd_trty_code = 'ND_EC0001' then 'ND_RT0001' else p2.nsd_trty_code end nsd_trty_code
,CASE WHEN p2.yyyymm >= '202601' and p2.bsd_kcode = 'VP_EC0001_V' then 'VP_RT0001_V' else p2.bsd_kcode end bsd_kcode
,CASE WHEN p2.yyyymm >= '202601' and p2.bsd_trty_code = 'VP_EC0001' then 'VP_RT0001' else p2.bsd_trty_code end bsd_trty_code
,mr_kcode,dsm_trty_code,rsm_trty_code,dsm_kcode,rsd_trty_code
,district_name,dsm_name,mr_name,yyyymm,mr_trty_code,REGION_CODE,rc_code,bu_category,rsm_kcode
FROM DM.dm_td_org P2
-- COMMAND ----------
----------------------------------------------------------EC----------------------------------------------------------
insert overwrite dm.DM_TD_EXT_EC_ORG(
REGION_CODE,region_name_en,rc_code,rc_name_en,RegionCenter,AUDIT_COD,MARKET,bu_category,bu_name_en,sub_bu_name,sub_bu_code_auth,bu_code_auth,DATA_SOURCE,REGION_RATIO,RSM_Name,RC_Name,
TEAM,
MR_TRTY_CODE,
NSD_KCODE,
NSD_NAME,
RSD_KCODE,
RSD_NAME,
RSM_KCODE,
DSM_KCODE,
DSM_NAME,
MR_KCODE,
MR_NAME
)
SELECT DISTINCT '' REGION_CODE,'' region_name_en,'' rc_code,'' rc_name_en,'' RegionCenter,A.AUDIT_COD,B.MARKET,C.bu_category,C.bu_name_en,C.sub_bu_name,C.sub_bu_code sub_bu_code_auth,concat(c.bu_code,'EC(Monthly)') bu_code_auth,A.DATA_SOURCE,1 REGION_RATIO,'','',
'' as TEAM,
'' as MR_TRTY_CODE,
'' as NSD_KCODE,
'' as NSD_NAME,
'' as RSD_KCODE,
'' as RSD_NAME,
'' as RSM_KCODE,
'' as DSM_KCODE,
'' as DSM_NAME,
'' as MR_KCODE,
'' as MR_NAME
FROM DM.dm_tf_external_sales A
INNER JOIN DM.dm_td_external_market_pack_mapping B ON A.PACK_COD = B.PACK_COD
AND A.DATA_SOURCE = B.DATA_SOURCE
INNER JOIN
(
SELECT DISTINCT '' bu_code,'' sub_bu_code,'' sub_bu_name,'' bu_category,'' bu_name_en
FROM dm_td_org_temp C
WHERE C.yyyymm = (select key_value from dm.dm_td_date_config where key_code='pfmc_cvh')
AND C.BU_NAME_EN = 'Eagle'
) C
WHERE A.DATA_SOURCE = 'EC(Monthly)'
-- COMMAND ----------
-- DBTITLE 1,add
--20240808
--FanXuJia
--
--audit_cod在事实表有销量audit_cod
--audit_cod
with sales as (
select distinct PACK_COD,AUDIT_COD,DATA_SOURCE from dm.dm_tf_external_sales
union
select distinct PACK_COD,AUDIT_COD,DATA_SOURCE from dm.dm_tf_external_sales_thc
)
,market_pack as (
select distinct PACK_COD,MARKET,DATA_SOURCE from dm.dm_td_external_market_pack_mapping
)
,org as (
select distinct AUDIT_COD,MARKET,DATA_SOURCE from dm.DM_TD_EXT_EC_ORG
)
,tmp_org as (
select distinct a.AUDIT_COD,b.MARKET,a.DATA_SOURCE
from sales a
left join market_pack b on a.PACK_COD = b.PACK_COD and a.DATA_SOURCE = b.DATA_SOURCE
left join org c on a.DATA_SOURCE = c.DATA_SOURCE and a.AUDIT_COD = c.AUDIT_COD and b.MARKET = c.MARKET
where C.AUDIT_COD IS NULL
)
insert into table dm.DM_TD_EXT_EC_ORG
(
REGION_CODE,
region_name_en,
RSM_Name,
rc_code,
rc_name_en,
RC_Name,
RegionCenter,
AUDIT_COD,
MARKET,
bu_category,
bu_name_en,
sub_bu_name,
sub_bu_code_auth,
bu_code_auth,
DATA_SOURCE,
REGION_RATIO,
TEAM,
MR_TRTY_CODE,
NSD_KCODE,
NSD_NAME,
RSD_KCODE,
RSD_NAME,
RSM_KCODE,
DSM_KCODE,
DSM_NAME,
MR_KCODE,
MR_NAME
)
select
'ROC' as REGION_CODE,
'ROC' as region_name_en,
'Vacant' as RSM_Name,
'ROC' as rc_code,
'ROC' as rc_name_en,
'Vacant' as RC_Name,
null as RegionCenter,
AUDIT_COD,
MARKET,
null as bu_category,
null as bu_name_en,
null as sub_bu_name,
null as sub_bu_code_auth,
DATA_SOURCE as bu_code_auth,
DATA_SOURCE,
1 as REGION_RATIO,
'ROC' as TEAM,
'Vacant' as MR_TRTY_CODE,
'Vacant' as NSD_KCODE,
'Vacant' as NSD_NAME,
'Vacant' as RSD_KCODE,
'Vacant' as RSD_NAME,
'Vacant' as RSM_KCODE,
'Vacant' as DSM_KCODE,
'Vacant' as DSM_NAME,
'Vacant' as MR_KCODE,
'Vacant' as MR_NAME
from tmp_org
where DATA_SOURCE = 'EC(Monthly)'
-- COMMAND ----------
-- DBTITLE 1,hidden_market
-----------------------------------------------------------
--修改时间20241118
--Fanxujia
--
--使
-----------------------------------------------------------
with hidden_market as (
select distinct
case when upper(data_source) = 'CHPA' then 'IQVIA-CHPA(Monthly)'
when upper(data_source) = '科室市场' then 'XH Data(Quarterly)'
when upper(data_source) = 'EC' then 'EC(Monthly)'
when upper(data_source) = 'RETAIL' then 'Retail(Quarterly)'
when upper(data_source) = 'CHC' then 'CHC(Quarterly)'
when upper(data_source) = 'AIA' then 'AIA(Monthly)'
when upper(data_source) = 'THC' then 'THC(Quarterly)'
when upper(data_source) = 'COUNTY' then 'IQVIA-COUNTY(Quarterly)'
else data_source
end as data_source,
upper(hidden_market) as hidden_market
from dwd.dwd_gnd_ims_hidden_market
union all
select
'AIA(Monthly)' as data_source,
'AIA ALL Market'
)
MERGE into dm.DM_TD_EXT_EC_ORG as t1
USING hidden_market t2
on t1.data_source = t2.data_source
and upper(t1.MARKET) = upper(t2.hidden_market)
WHEN MATCHED THEN
DELETE

View File

@@ -0,0 +1,438 @@
-- Databricks notebook source
-- CREATE OR REPLACE TABLE DM.DM_TD_EXT_RETAIL_ORG (
-- REGION_CODE STRING,
-- REGION_NAME_EN STRING,
-- RSM_NAME STRING,
-- RC_CODE STRING,
-- RC_NAME_EN STRING,
-- RC_NAME STRING,
-- REGIONCENTER STRING,
-- AUDIT_COD STRING,
-- MARKET STRING,
-- BU_CATEGORY STRING,
-- BU_NAME_EN STRING,
-- SUB_BU_NAME STRING,
-- SUB_BU_CODE_AUTH STRING,
-- BU_CODE_AUTH STRING,
-- DATA_SOURCE STRING,
-- REGION_RATIO FLOAT,
-- TEAM STRING,
-- MR_TRTY_CODE STRING,
-- NSD_KCODE STRING,
-- NSD_NAME STRING,
-- RSD_KCODE STRING,
-- RSD_NAME STRING,
-- RSM_KCODE STRING,
-- DSM_KCODE STRING,
-- DSM_NAME STRING,
-- MR_KCODE STRING,
-- MR_NAME STRING)
-- USING delta
-- LOCATION 'abfss://master@retaildlstoragetest.dfs.core.chinacloudapi.cn/DM/dm_td_ext_retail_org';
-- COMMAND ----------
-- MAGIC %run ../../../Common/config
-- COMMAND ----------
-- MAGIC %python
-- MAGIC spark.read.table(f'`{CDW_CATALOG}`.`dwd`.`dim_product_wide`').createOrReplaceTempView('cdw_dwd_dim_product_wide')
-- COMMAND ----------
-- 20260130 由于DM.dm_td_org数据需要转换新增这个CELL。
create or replace temporary view dm_td_org_temp
as
SELECT org_key,mr_trty_tag,district_code,rsm_name,rc_name,p2.region_name,p2.rsd_kcode,p2.rsd_name
,CASE WHEN p2.yyyymm >= '202601' and p2.bu_code = 'PC12' then 'PC09' else p2.bu_code end bu_code
,CASE WHEN p2.yyyymm >= '202601' and p2.bu_report = 'EC' THEN 'Retail' ELSE p2.bu_report end bu_report
,CASE WHEN p2.yyyymm >= '202601' and p2.sub_bu_code = 'NA27' then 'NA06' else p2.sub_bu_code end sub_bu_code
,CASE WHEN p2.yyyymm >= '202601' and p2.sub_bu_name = 'EC' then 'Retail' else p2.sub_bu_name end sub_bu_name
,CASE WHEN p2.yyyymm >= '202601' and p2.sub_bu_name_en = 'EC' then 'Retail' else p2.sub_bu_name_en end sub_bu_name_en
,CASE WHEN p2.yyyymm >= '202601' and p2.bu_name = 'EC' then 'Retail' else p2.bu_name end bu_name
,CASE WHEN p2.yyyymm >= '202601' and p2.bu_name_en = 'EC' then 'Retail' else p2.bu_name_en end bu_name_en
,CASE WHEN p2.yyyymm >= '202601' and p2.nsd_kcode = 'ND_EC0001_V' then 'KSGX559' else p2.nsd_kcode end nsd_kcode
,CASE WHEN p2.yyyymm >= '202601' and p2.bu_name = 'EC'and p2.nsd_name = 'Vacant' then '李白杨' else p2.nsd_name end nsd_name
,CASE WHEN p2.yyyymm >= '202601' and p2.nsd_trty_code = 'ND_EC0001' then 'ND_RT0001' else p2.nsd_trty_code end nsd_trty_code
,CASE WHEN p2.yyyymm >= '202601' and p2.bsd_kcode = 'VP_EC0001_V' then 'VP_RT0001_V' else p2.bsd_kcode end bsd_kcode
,CASE WHEN p2.yyyymm >= '202601' and p2.bsd_trty_code = 'VP_EC0001' then 'VP_RT0001' else p2.bsd_trty_code end bsd_trty_code
,mr_kcode,dsm_trty_code,rsm_trty_code,dsm_kcode,rsd_trty_code
,district_name,dsm_name,mr_name,yyyymm,mr_trty_code,REGION_CODE,rc_code,bu_category,rsm_kcode
FROM DM.dm_td_org P2
WHERE rc_name NOT LIKE '%B2C%'
-- COMMAND ----------
----------------------------------------------------Retail-----------------------------------------------------------------------
insert overwrite DM.DM_TD_EXT_RETAIL_ORG
(REGION_CODE,region_name_en,rc_code,rc_name_en,RegionCenter,AUDIT_COD,MARKET,bu_category,bu_name_en,sub_bu_name,sub_bu_code_auth,bu_code_auth,DATA_SOURCE,REGION_RATIO,RSM_Name,RC_Name,
TEAM,
MR_TRTY_CODE,
NSD_KCODE,
NSD_NAME,
RSD_KCODE,
RSD_NAME,
RSM_KCODE,
DSM_KCODE,
DSM_NAME,
MR_KCODE,
MR_NAME
)
with
market_ta (
select
MARKET,case when TA = 'ONCO' then 'OBU' else 'Retail' end as subbu
from dm.dm_td_external_market_ta
where DATA_SOURCE = 'Retail(Quarterly)'
group by 1,2
)
,pack_market as (
select distinct a.pack_cod,a.market,b.subbu
from dm.dm_td_external_market_pack_mapping a
left join market_ta b on a.MARKET = b.market
where data_source = 'Retail(Quarterly)'
)
,external_geo as (
select distinct province_c,audit_cod,REGION_CENTER
from dm.dm_td_external_geo_temp
where DATA_SOURCE = 'Retail(Quarterly)'
)
,YM_CVH as (
select key_value from dm.dm_td_date_config
where key_code = 'pfmc_cvh'
)
,td_org as (
select distinct
REGION_CODE,
region_name,
rc_code,
rc_name,
bu_category,
bu_name_en,
sub_bu_name,
sub_bu_code,
bu_code,
RSM_Name,
rsd_name,
mr_trty_code,
rsm_trty_code
from dm_td_org_temp t1
inner join YM_CVH t2
on t1.yyyymm = t2.key_value
)
,territory as (
select distinct
trty_code,
inst_code,
family_code,
bu
from dm.dm_td_sd_territory_indication t1
inner join YM_CVH t2
on t1.yyyymm = t2.key_value
where bu in ('Retail') --20260320 chenwu Retail数据源的架构OBURetail
and t1.key_hp<>3 --chenwu 20250904
)
,province_market as (
select t1.trty_code,
t2.province_name,
t5.market
from territory t1
left join dwd.dwd_td_institution t2
on t1.inst_code = t2.inst_code
left join cdw_dwd_dim_product_wide t3
on t1.family_code = t3.prd_family_cd
left join dwd.dwd_td_imscode_azcode t4
on t3.prd_brand_cd = t4.brandcode
left join pack_market t5
on t4.ims_pack_cod = t5.pack_cod
where t1.bu=t5.subbu
)
SELECT
DISTINCT t1.REGION_CODE REGION_CODE,
t1.region_name,
t1.rc_code,
t1.rc_name,
t3.REGION_CENTER RegionCenter,
t3.AUDIT_COD,
t2.MARKET,
t1.bu_category,
t1.bu_name_en,
t1.sub_bu_name,
t1.sub_bu_code sub_bu_code_auth,
concat(t1.bu_code, 'Retail(Quarterly)') bu_code_auth,
'Retail(Quarterly)' as DATA_SOURCE,
1 REGION_RATIO,
t1.RSM_Name,
t1.rsd_name,
'' as TEAM,
'' as MR_TRTY_CODE,
'' as NSD_KCODE,
'' as NSD_NAME,
'' as RSD_KCODE,
'' as RSD_NAME,
'' as RSM_KCODE,
'' as DSM_KCODE,
'' as DSM_NAME,
'' as MR_KCODE,
'' as MR_NAME
from td_org t1
inner join province_market t2
on t1.mr_trty_code = t2.trty_code
inner join external_geo t3 on t2.province_name = t3.province_c
where t2.market is not null
and t3.audit_cod is not null
union all
SELECT DISTINCT
'ROC' as REGION_CODE,
'ROC' as region_name_en,
'ROC' as rc_code,
'ROC' as rc_name_en,
'Other Low Tiers' as RegionCenter,
'ROC' AUDIT_COD,
t2.MARKET,
'All Channel' as bu_category,
CASE WHEN T2.subbu = 'OBU' THEN 'OBU' ELSE 'Retail' END as bu_name_en,
CASE WHEN T2.subbu = 'OBU' THEN 'OBU' ELSE 'Retail' END as sub_bu_name,
CASE WHEN T2.subbu = 'OBU' THEN 'OBU' ELSE 'Retail' END as sub_bu_code_auth,
'Retail(Quarterly)' as bu_code_auth,
'Retail(Quarterly)' as DATA_SOURCE,
1 as REGION_RATIO,
'Vacant' as RSM_Name,
'Vacant' as rsd_name,
'' as TEAM,
'' as MR_TRTY_CODE,
'' as NSD_KCODE,
'' as NSD_NAME,
'' as RSD_KCODE,
'' as RSD_NAME,
'' as RSM_KCODE,
'' as DSM_KCODE,
'' as DSM_NAME,
'' as MR_KCODE,
'' as MR_NAME
FROM pack_market t2
--
union all
SELECT
DISTINCT t1.REGION_CODE REGION_CODE,
t1.region_name,
t1.rc_code,
t1.rc_name,
t3.REGION_CENTER RegionCenter,
t3.AUDIT_COD,
"Atorvastatin Market" as MARKET,
t1.bu_category,
t1.bu_name_en,
t1.sub_bu_name,
t1.sub_bu_code sub_bu_code_auth,
concat(t1.bu_code, 'Retail(Quarterly)') bu_code_auth,
'Retail(Quarterly)' as DATA_SOURCE,
1 REGION_RATIO,
t1.RSM_Name,
t1.rsd_name,
'' as TEAM,
'' as MR_TRTY_CODE,
'' as NSD_KCODE,
'' as NSD_NAME,
'' as RSD_KCODE,
'' as RSD_NAME,
'' as RSM_KCODE,
'' as DSM_KCODE,
'' as DSM_NAME,
'' as MR_KCODE,
'' as MR_NAME
from td_org t1
inner join province_market t2
on t1.mr_trty_code = t2.trty_code
inner join external_geo t3 on t2.province_name = t3.province_c
where t2.market is not null
and t3.audit_cod is not null
and t2.market = 'Rosuvastatin Market'
-- COMMAND ----------
-- DBTITLE 1,DTP
insert into DM.DM_TD_EXT_RETAIL_ORG
(REGION_CODE,region_name_en,rc_code,rc_name_en,RegionCenter,AUDIT_COD,MARKET,bu_category,bu_name_en,sub_bu_name,sub_bu_code_auth,bu_code_auth,DATA_SOURCE,REGION_RATIO,RSM_Name,RC_Name,
TEAM,
MR_TRTY_CODE,
NSD_KCODE,
NSD_NAME,
RSD_KCODE,
RSD_NAME,
RSM_KCODE,
DSM_KCODE,
DSM_NAME,
MR_KCODE,
MR_NAME
)
WITH
-- ① 市场与子BU映射
market_ta AS (
select distinct MARKET,bu as subbu from dwd.dwd_gnd_dtp_tblmarket
-- WHERE UPPER(TA) <> 'ALL'
),
-- ② 产品包与市场映射
pack_2_market AS (
SELECT DISTINCT
a.PACK_CODE,
a.market,
b.subbu
FROM
dm.dm_td_ext_dtp_market_pack_mapping a
LEFT JOIN market_ta b ON a.MARKET = b.market
),
-- FAMILY与market映射
family_2_markt as (select distinct
t3.prd_family_cd,
-- t4.ims_pack_cod,
t5.market
from
cdw_dwd_dim_product_wide t3
inner JOIN dwd.dwd_td_imscode_azcode t4
ON t3.prd_brand_cd = t4.brandcode
inner join pack_2_market t5
on t4.ims_pack_cod = t5.pack_code
where
t3.prd_family_cd is not null
and t4.ims_pack_cod is not null
),
-- ③ 外部地理信息
external_geo AS (
SELECT DISTINCT
province_c,
audit_cod,
REGION_CENTER
FROM dm.dm_td_external_geo_temp
WHERE DATA_SOURCE = 'DTP(Quarterly)'
),
-- ④ 当前考核月份
YM_CVH AS (
SELECT key_value
FROM dm.dm_td_date_config
WHERE key_code = 'pfmc_cvh'
),
-- ⑤ 组织架构(取当前考核月份快照)
td_org AS (
SELECT DISTINCT
REGION_CODE,
region_name,
rc_code,
rc_name,
bu_category,
bu_name_en,
sub_bu_name,
sub_bu_code,
bu_code,
RSM_Name,
rsd_name,
mr_trty_code,
rsm_trty_code
FROM dm_td_org_temp t1
INNER JOIN YM_CVH t2 ON t1.yyyymm = t2.key_value
),
-- ⑥ 辖区-指征明细(仅保留 OBU/RIN排除双考
territory AS (
SELECT DISTINCT
trty_code,
inst_code,
family_code,
bu
FROM dm.dm_td_sd_territory_indication t1
INNER JOIN YM_CVH t2 ON t1.yyyymm = t2.key_value
WHERE t1.bu IN ('OBU', 'RIN') -- 20260320 chenwu DTP数据源只保留 OBU 和 RIN
AND t1.key_hp <> 3 -- 20250904 chenwu 排除双考影响
),
-- ⑦ 辖区-省份-市场关联
province_market AS (
SELECT
t1.trty_code,
t2.province_name,
t3.market
FROM territory t1
LEFT JOIN dwd.dwd_td_institution t2 ON t1.inst_code = t2.inst_code
INNER JOIN family_2_markt t3 ON t1.family_code = t3.prd_family_cd
)
-- ════════════════════════════════════════════
-- 主查询 Part 1正常地理覆盖行
-- ════════════════════════════════════════════
SELECT DISTINCT
t1.REGION_CODE,
t1.region_name,
t1.rc_code,
t1.rc_name AS rc_name_en,
t3.REGION_CENTER AS RegionCenter,
t3.AUDIT_COD,
t2.MARKET,
t1.bu_category,
t1.bu_name_en,
t1.sub_bu_name,
t1.sub_bu_code AS sub_bu_code_auth,
CONCAT(t1.bu_code, 'DTP(Quarterly)') AS bu_code_auth,
'DTP(Quarterly)' AS DATA_SOURCE,
1 AS REGION_RATIO,
t1.RSM_Name,
t1.rsd_name,
'' AS TEAM,
'' AS MR_TRTY_CODE,
'' AS NSD_KCODE,
'' AS NSD_NAME,
'' AS RSD_KCODE,
'' AS RC_Name,
'' AS RSM_KCODE,
'' AS DSM_KCODE,
'' AS DSM_NAME,
'' AS MR_KCODE,
'' AS MR_NAME
FROM td_org t1
INNER JOIN province_market t2 ON t1.mr_trty_code = t2.trty_code
INNER JOIN external_geo t3 ON t2.province_name = t3.province_c
WHERE t2.market IS NOT NULL
AND t3.audit_cod IS NOT NULL
UNION ALL
-- ════════════════════════════════════════════
-- 主查询 Part 2ROC 虚拟兜底行
-- ════════════════════════════════════════════
SELECT DISTINCT
'ROC' AS REGION_CODE,
'ROC' AS region_name,
'ROC' AS rc_code,
'ROC' AS rc_name_en,
'Other Low Tiers' AS RegionCenter,
'ROC' AS AUDIT_COD,
t2.MARKET,
'All Channel' AS bu_category,
nvl(subbu,'ONCO') AS bu_name_en,
nvl(subbu,'ONCO') AS sub_bu_name,
nvl(subbu,'ONCO') AS sub_bu_code_auth,
'DTP(Quarterly)' AS bu_code_auth,
'DTP(Quarterly)' AS DATA_SOURCE,
1 AS REGION_RATIO,
'Vacant' AS RSM_Name,
'Vacant' AS RC_Name,
'' AS TEAM,
'' AS MR_TRTY_CODE,
'' AS NSD_KCODE,
'' AS NSD_NAME,
'' AS RSD_KCODE,
'' AS RSD_NAME,
'' AS RSM_KCODE,
'' AS DSM_KCODE,
'' AS DSM_NAME,
'' AS MR_KCODE,
'' AS MR_NAME
FROM pack_2_market t2

340
ORG/DM_TD_EXT_THC_ORG.sql Normal file
View File

@@ -0,0 +1,340 @@
-- Databricks notebook source
-- CREATE OR REPLACE TABLE DM.DM_TD_EXT_THC_ORG (
-- REGION_CODE STRING,
-- REGION_NAME_EN STRING,
-- RSM_NAME STRING,
-- RC_CODE STRING,
-- RC_NAME_EN STRING,
-- RC_NAME STRING,
-- REGIONCENTER STRING,
-- AUDIT_COD STRING,
-- MARKET STRING,
-- BU_CATEGORY STRING,
-- BU_NAME_EN STRING,
-- SUB_BU_NAME STRING,
-- SUB_BU_CODE_AUTH STRING,
-- BU_CODE_AUTH STRING,
-- DATA_SOURCE STRING,
-- REGION_RATIO FLOAT,
-- TEAM STRING,
-- MR_TRTY_CODE STRING,
-- NSD_KCODE STRING,
-- NSD_NAME STRING,
-- RSD_KCODE STRING,
-- RSD_NAME STRING,
-- RSM_KCODE STRING,
-- DSM_KCODE STRING,
-- DSM_NAME STRING,
-- MR_KCODE STRING,
-- MR_NAME STRING)
-- USING delta
-- LOCATION 'abfss://master@retaildlstoragetest.dfs.core.chinacloudapi.cn/DM/dm_td_ext_thc_org';
-- COMMAND ----------
-- MAGIC %run ../../../Common/config
-- COMMAND ----------
-- MAGIC %python
-- MAGIC spark.read.table(f'`{CDW_CATALOG}`.`dwd`.`dim_product_wide`').createOrReplaceTempView('cdw_dwd_dim_product_wide')
-- COMMAND ----------
-- 20260130 由于DM.dm_td_org数据需要转换新增这个CELL。
create or replace temporary view dm_td_org_temp
as
SELECT org_key,mr_trty_tag,district_code,rsm_name,rc_name,p2.region_name,p2.rsd_kcode,p2.rsd_name
,CASE WHEN p2.yyyymm >= '202601' and p2.bu_code = 'PC12' then 'PC09' else p2.bu_code end bu_code
,CASE WHEN p2.yyyymm >= '202601' and p2.bu_report = 'EC' THEN 'Retail' ELSE p2.bu_report end bu_report
,CASE WHEN p2.yyyymm >= '202601' and p2.sub_bu_code = 'NA27' then 'NA06' else p2.sub_bu_code end sub_bu_code
,CASE WHEN p2.yyyymm >= '202601' and p2.sub_bu_name = 'EC' then 'Retail' else p2.sub_bu_name end sub_bu_name
,CASE WHEN p2.yyyymm >= '202601' and p2.sub_bu_name_en = 'EC' then 'Retail' else p2.sub_bu_name_en end sub_bu_name_en
,CASE WHEN p2.yyyymm >= '202601' and p2.bu_name = 'EC' then 'Retail' else p2.bu_name end bu_name
,CASE WHEN p2.yyyymm >= '202601' and p2.bu_name_en = 'EC' then 'Retail' else p2.bu_name_en end bu_name_en
,CASE WHEN p2.yyyymm >= '202601' and p2.nsd_kcode = 'ND_EC0001_V' then 'KSGX559' else p2.nsd_kcode end nsd_kcode
,CASE WHEN p2.yyyymm >= '202601' and p2.bu_name = 'EC'and p2.nsd_name = 'Vacant' then '李白杨' else p2.nsd_name end nsd_name
,CASE WHEN p2.yyyymm >= '202601' and p2.nsd_trty_code = 'ND_EC0001' then 'ND_RT0001' else p2.nsd_trty_code end nsd_trty_code
,CASE WHEN p2.yyyymm >= '202601' and p2.bsd_kcode = 'VP_EC0001_V' then 'VP_RT0001_V' else p2.bsd_kcode end bsd_kcode
,CASE WHEN p2.yyyymm >= '202601' and p2.bsd_trty_code = 'VP_EC0001' then 'VP_RT0001' else p2.bsd_trty_code end bsd_trty_code
,mr_kcode,dsm_trty_code,rsm_trty_code,dsm_kcode,rsd_trty_code
,district_name,dsm_name,mr_name,yyyymm,mr_trty_code,REGION_CODE,rc_code,bu_category,rsm_kcode
FROM DM.dm_td_org P2
-- COMMAND ----------
------------------------------------------------------------------------------------------------------
--修改时间20241113
--Fanxujia
--
--THC增加省份数据Eagle的架构
------------------------------------------------------------------------------------------------------
----------------------------------------------------THC------------------------------------------------------------------------------
--------eagle的人能看THC
insert overwrite dm.DM_TD_EXT_THC_ORG
(REGION_CODE,region_name_en,rc_code,rc_name_en,RegionCenter,AUDIT_COD,MARKET,bu_category,bu_name_en,sub_bu_name,sub_bu_code_auth,bu_code_auth,DATA_SOURCE,REGION_RATIO,RSM_Name,RC_Name,
TEAM,
MR_TRTY_CODE,
NSD_KCODE,
NSD_NAME,
RSD_KCODE,
RSD_NAME,
RSM_KCODE,
DSM_KCODE,
DSM_NAME,
MR_KCODE,
MR_NAME
)
with pack_market as (
select distinct pack_cod,market
from dm.dm_td_external_market_pack_mapping
where data_source = 'THC(Quarterly)'
)
,external_geo as (
select distinct province_c,audit_cod,REGION_CENTER
from dm.dm_td_external_geo_temp
where DATA_SOURCE = 'THC(Quarterly)'
)
,YM_CVH as (
select key_value from dm.dm_td_date_config
where key_code = 'pfmc_cvh'
)
,td_org as (
select distinct
REGION_CODE,
region_name,
rc_code,
rc_name,
bu_category,
bu_name_en,
sub_bu_name,
sub_bu_code,
bu_code,
RSM_Name,
rsd_name,
mr_trty_code,
rsm_trty_code
from dm_td_org_temp t1
inner join YM_CVH t2
on t1.yyyymm = t2.key_value
)
,territory as (
select distinct
trty_code,
inst_code,
family_code
from dm.dm_td_sd_territory_indication t1
inner join YM_CVH t2
on t1.yyyymm = t2.key_value
where bu = 'Eagle'
and t1.key_hp<>3 --chenwu 20250904
)
,province_market as (
select t1.trty_code,
t2.province_name,
t5.market
from territory t1
left join dwd.dwd_td_institution t2
on t1.inst_code = t2.inst_code
left join cdw_dwd_dim_product_wide t3
on t1.family_code = t3.prd_family_cd
left join dwd.dwd_td_imscode_azcode t4
on t3.prd_brand_cd = t4.brandcode
left join pack_market t5
on t4.ims_pack_cod = t5.pack_cod
)
,national_sales as (
select distinct
PACK_COD,
AUDIT_COD
from DM.dm_tf_external_sales_thc
where DATA_SOURCE = 'THC(Quarterly)'
)
SELECT
DISTINCT t1.REGION_CODE,
t1.region_name,
t1.rc_code,
t1.rc_name,
t3.REGION_CENTER RegionCenter,
t3.AUDIT_COD,
t2.MARKET,
t1.bu_category,
t1.bu_name_en,
t1.sub_bu_name,
t1.sub_bu_code sub_bu_code_auth,
concat(t1.bu_code, 'THC(Quarterly)') bu_code_auth,
'THC(Quarterly)' as DATA_SOURCE,
1 REGION_RATIO,
t1.RSM_Name,
t1.rsd_name,
'' as TEAM,
'' as MR_TRTY_CODE,
'' as NSD_KCODE,
'' as NSD_NAME,
'' as RSD_KCODE,
'' as RSD_NAME,
'' as RSM_KCODE,
'' as DSM_KCODE,
'' as DSM_NAME,
'' as MR_KCODE,
'' as MR_NAME
from td_org t1
inner join province_market t2
on t1.mr_trty_code = t2.trty_code
inner join external_geo t3 on t2.province_name = t3.province_c
where t2.market is not null
and t3.audit_cod is not null
union all
SELECT DISTINCT
'' as REGION_CODE,
'' as region_name_en,
'' as rc_code,
'' as rc_name_en,
'' as RegionCenter,
t1.AUDIT_COD,
t2.MARKET,
'' as bu_category,
'' as bu_name_en,
'' as sub_bu_name,
'' as sub_bu_code_auth,
'THC(Quarterly)' as bu_code_auth,
'THC(Quarterly)' as DATA_SOURCE,
1 as REGION_RATIO,
'' as RSM_Name,
'' as rsd_name,
'' as TEAM,
'' as MR_TRTY_CODE,
'' as NSD_KCODE,
'' as NSD_NAME,
'' as RSD_KCODE,
'' as RSD_NAME,
'' as RSM_KCODE,
'' as DSM_KCODE,
'' as DSM_NAME,
'' as MR_KCODE,
'' as MR_NAME
FROM national_sales t1
INNER JOIN pack_market t2
ON t1.PACK_COD = t2.PACK_COD
-- COMMAND ----------
-- DBTITLE 1,add
--20240808
--FanXuJia
--
--audit_cod在事实表有销量audit_cod
--audit_cod
with sales as (
select distinct PACK_COD,AUDIT_COD,DATA_SOURCE from dm.dm_tf_external_sales
union
select distinct PACK_COD,AUDIT_COD,DATA_SOURCE from dm.dm_tf_external_sales_thc
)
,market_pack as (
select distinct PACK_COD,MARKET,DATA_SOURCE from dm.dm_td_external_market_pack_mapping
)
,org as (
select distinct AUDIT_COD,MARKET,DATA_SOURCE from dm.DM_TD_EXT_THC_ORG
)
,tmp_org as (
select distinct a.AUDIT_COD,b.MARKET,a.DATA_SOURCE
from sales a
left join market_pack b on a.PACK_COD = b.PACK_COD and a.DATA_SOURCE = b.DATA_SOURCE
left join org c on a.DATA_SOURCE = c.DATA_SOURCE and a.AUDIT_COD = c.AUDIT_COD and b.MARKET = c.MARKET
where C.AUDIT_COD IS NULL
)
insert into table dm.DM_TD_EXT_THC_ORG
(
REGION_CODE,
region_name_en,
RSM_Name,
rc_code,
rc_name_en,
RC_Name,
RegionCenter,
AUDIT_COD,
MARKET,
bu_category,
bu_name_en,
sub_bu_name,
sub_bu_code_auth,
bu_code_auth,
DATA_SOURCE,
REGION_RATIO,
TEAM,
MR_TRTY_CODE,
NSD_KCODE,
NSD_NAME,
RSD_KCODE,
RSD_NAME,
RSM_KCODE,
DSM_KCODE,
DSM_NAME,
MR_KCODE,
MR_NAME
)
select
'ROC' as REGION_CODE,
'ROC' as region_name_en,
'Vacant' as RSM_Name,
'ROC' as rc_code,
'ROC' as rc_name_en,
'Vacant' as RC_Name,
null as RegionCenter,
AUDIT_COD,
MARKET,
null as bu_category,
null as bu_name_en,
null as sub_bu_name,
null as sub_bu_code_auth,
DATA_SOURCE as bu_code_auth,
DATA_SOURCE,
1 as REGION_RATIO,
'ROC' as TEAM,
'Vacant' as MR_TRTY_CODE,
'Vacant' as NSD_KCODE,
'Vacant' as NSD_NAME,
'Vacant' as RSD_KCODE,
'Vacant' as RSD_NAME,
'Vacant' as RSM_KCODE,
'Vacant' as DSM_KCODE,
'Vacant' as DSM_NAME,
'Vacant' as MR_KCODE,
'Vacant' as MR_NAME
from tmp_org
where DATA_SOURCE = 'THC(Quarterly)'
-- COMMAND ----------
-- DBTITLE 1,hidden_market
-----------------------------------------------------------
--修改时间20241118
--Fanxujia
--
--使
-----------------------------------------------------------
with hidden_market as (
select distinct
case when upper(data_source) = 'CHPA' then 'IQVIA-CHPA(Monthly)'
when upper(data_source) = '科室市场' then 'XH Data(Quarterly)'
when upper(data_source) = 'EC' then 'EC(Monthly)'
when upper(data_source) = 'RETAIL' then 'Retail(Quarterly)'
when upper(data_source) = 'CHC' then 'CHC(Quarterly)'
when upper(data_source) = 'AIA' then 'AIA(Monthly)'
when upper(data_source) = 'THC' then 'THC(Quarterly)'
when upper(data_source) = 'COUNTY' then 'IQVIA-COUNTY(Quarterly)'
else data_source
end as data_source,
upper(hidden_market) as hidden_market
from dwd.dwd_gnd_ims_hidden_market
)
MERGE into dm.DM_TD_EXT_THC_ORG as t1
USING hidden_market t2
on t1.data_source = t2.data_source
and upper(t1.MARKET) = upper(t2.hidden_market)
WHEN MATCHED THEN
DELETE

279
ORG/DM_TD_EXT_XIEHE_ORG.sql Normal file
View File

@@ -0,0 +1,279 @@
-- Databricks notebook source
-- CREATE OR REPLACE TABLE DM.DM_TD_EXT_XIEHE_ORG (
-- REGION_CODE STRING,
-- REGION_NAME_EN STRING,
-- RSM_NAME STRING,
-- RC_CODE STRING,
-- RC_NAME_EN STRING,
-- RC_NAME STRING,
-- REGIONCENTER STRING,
-- AUDIT_COD STRING,
-- MARKET STRING,
-- BU_CATEGORY STRING,
-- BU_NAME_EN STRING,
-- SUB_BU_NAME STRING,
-- SUB_BU_CODE_AUTH STRING,
-- BU_CODE_AUTH STRING,
-- DATA_SOURCE STRING,
-- REGION_RATIO FLOAT,
-- TEAM STRING,
-- MR_TRTY_CODE STRING,
-- NSD_KCODE STRING,
-- NSD_NAME STRING,
-- RSD_KCODE STRING,
-- RSD_NAME STRING,
-- RSM_KCODE STRING,
-- DSM_KCODE STRING,
-- DSM_NAME STRING,
-- MR_KCODE STRING,
-- MR_NAME STRING)
-- USING delta
-- LOCATION 'abfss://master@retaildlstoragetest.dfs.core.chinacloudapi.cn/DM/dm_td_ext_xiehe_org';
-- COMMAND ----------
-- MAGIC %run ../../../Common/config
-- COMMAND ----------
-- MAGIC %python
-- MAGIC spark.read.table(f'`{CDW_CATALOG}`.`dwd`.`dim_product_wide`').createOrReplaceTempView('cdw_dwd_dim_product_wide')
-- COMMAND ----------
-- 20260130 由于DM.dm_td_org数据需要转换新增这个CELL。
create or replace temporary view dm_td_org_temp
as
SELECT org_key,mr_trty_tag,district_code,rsm_name,rc_name,p2.region_name,p2.rsd_kcode,p2.rsd_name
,CASE WHEN p2.yyyymm >= '202601' and p2.bu_code = 'PC12' then 'PC09' else p2.bu_code end bu_code
,CASE WHEN p2.yyyymm >= '202601' and p2.bu_report = 'EC' THEN 'Retail' ELSE p2.bu_report end bu_report
,CASE WHEN p2.yyyymm >= '202601' and p2.sub_bu_code = 'NA27' then 'NA06' else p2.sub_bu_code end sub_bu_code
,CASE WHEN p2.yyyymm >= '202601' and p2.sub_bu_name = 'EC' then 'Retail' else p2.sub_bu_name end sub_bu_name
,CASE WHEN p2.yyyymm >= '202601' and p2.sub_bu_name_en = 'EC' then 'Retail' else p2.sub_bu_name_en end sub_bu_name_en
,CASE WHEN p2.yyyymm >= '202601' and p2.bu_name = 'EC' then 'Retail' else p2.bu_name end bu_name
,CASE WHEN p2.yyyymm >= '202601' and p2.bu_name_en = 'EC' then 'Retail' else p2.bu_name_en end bu_name_en
,CASE WHEN p2.yyyymm >= '202601' and p2.nsd_kcode = 'ND_EC0001_V' then 'KSGX559' else p2.nsd_kcode end nsd_kcode
,CASE WHEN p2.yyyymm >= '202601' and p2.bu_name = 'EC'and p2.nsd_name = 'Vacant' then '李白杨' else p2.nsd_name end nsd_name
,CASE WHEN p2.yyyymm >= '202601' and p2.nsd_trty_code = 'ND_EC0001' then 'ND_RT0001' else p2.nsd_trty_code end nsd_trty_code
,CASE WHEN p2.yyyymm >= '202601' and p2.bsd_kcode = 'VP_EC0001_V' then 'VP_RT0001_V' else p2.bsd_kcode end bsd_kcode
,CASE WHEN p2.yyyymm >= '202601' and p2.bsd_trty_code = 'VP_EC0001' then 'VP_RT0001' else p2.bsd_trty_code end bsd_trty_code
,mr_kcode,dsm_trty_code,rsm_trty_code,dsm_kcode,rsd_trty_code
,district_name,dsm_name,mr_name,yyyymm,mr_trty_code,REGION_CODE,rc_code,bu_category,rsm_kcode
FROM DM.dm_td_org P2
-- COMMAND ----------
---------------------------------------------------XIEHE------------------------------------------------------------------------------
--XIEHE参考CHPA
------BU能看XIEHE
insert overwrite dm.dm_td_ext_xiehe_org (
REGION_CODE,
region_name_en,
rc_code,
rc_name_en,
RegionCenter,
AUDIT_COD,
MARKET,
bu_category,
bu_name_en,
sub_bu_name,
sub_bu_code_auth,
bu_code_auth,
DATA_SOURCE,
REGION_RATIO,
RSM_Name,
RC_Name,
TEAM,
MR_TRTY_CODE,
NSD_KCODE,
NSD_NAME,
RSD_KCODE,
RSD_NAME,
RSM_KCODE,
DSM_KCODE,
DSM_NAME,
MR_KCODE,
MR_NAME
)
SELECT
DISTINCT t1.REGION_CODE,
t1.region_name,
t1.rc_code,
t1.rc_name,
t4.REGION_CENTER RegionCenter,
t4.AUDIT_COD,
t3.MARKET,
t1.bu_category,
t1.bu_name_en,
t1.sub_bu_name,
t1.sub_bu_code sub_bu_code_auth,
concat(t1.bu_code, 'XH Data(Quarterly)') bu_code_auth,
'XH Data(Quarterly)' DATA_SOURCE,
1 REGION_RATIO,
t1.RSM_Name,
t1.rsd_name,
'' as TEAM,
'' as MR_TRTY_CODE,
'' as NSD_KCODE,
'' as NSD_NAME,
'' as RSD_KCODE,
'' as RSD_NAME,
'' as RSM_KCODE,
'' as DSM_KCODE,
'' as DSM_NAME,
'' as MR_KCODE,
'' as MR_NAME
from
dm_td_org_temp t1
left join(
select
distinct A.yyyymm,
A.trty_code,
B.city_name,
D.ims_prod_cod,
D.ims_pack_cod
from
dm.dm_td_sd_territory_indication A
left join dwd.dwd_td_institution B on A.inst_code = B.inst_code
left join cdw_dwd_dim_product_wide C on C.prd_family_cd = A.family_code
left join dwd.dwd_td_imscode_azcode D on C.prd_brand_cd = D.brandcode
where A.bu not in ('CUBE','KA')
and A.key_hp<>3 --chenwu 20250904
) t2 on t2.trty_code = t1.mr_trty_code
and t2.yyyymm = t1.yyyymm
left join dws.dws_ims_td_market t3 on t2.ims_pack_cod = t3.pack_cod
left join DM.DM_TD_EXTERNAL_GEO_TEMP t4 on t2.city_name = concat(t4.city_c, '')
AND t4.DATA_SOURCE = 'XH Data(Quarterly)'
--使performance cvh org架构
where
t1.yyyymm in(
select
key_value
from
dm.dm_td_date_config
where
key_code = 'pfmc_cvh'
)
and t3.market is not null
and t4.audit_cod is not null
-- COMMAND ----------
-- DBTITLE 1,add
--20240808
--FanXuJia
--
--audit_cod在事实表有销量audit_cod
--audit_cod
with sales as (
select distinct PACK_COD,AUDIT_COD,DATA_SOURCE from dm.dm_tf_external_sales
union
select distinct PACK_COD,AUDIT_COD,DATA_SOURCE from dm.dm_tf_external_sales_thc
)
,market_pack as (
select distinct PACK_COD,MARKET,DATA_SOURCE from dm.dm_td_external_market_pack_mapping
)
,org as (
select distinct AUDIT_COD,MARKET,DATA_SOURCE from dm.DM_TD_EXT_XIEHE_ORG
)
,tmp_org as (
select distinct a.AUDIT_COD,b.MARKET,a.DATA_SOURCE
from sales a
left join market_pack b on a.PACK_COD = b.PACK_COD and a.DATA_SOURCE = b.DATA_SOURCE
left join org c on a.DATA_SOURCE = c.DATA_SOURCE and a.AUDIT_COD = c.AUDIT_COD and b.MARKET = c.MARKET
where C.AUDIT_COD IS NULL
)
insert into table dm.dm_td_ext_xiehe_org
(
REGION_CODE,
region_name_en,
RSM_Name,
rc_code,
rc_name_en,
RC_Name,
RegionCenter,
AUDIT_COD,
MARKET,
bu_category,
bu_name_en,
sub_bu_name,
sub_bu_code_auth,
bu_code_auth,
DATA_SOURCE,
REGION_RATIO,
TEAM,
MR_TRTY_CODE,
NSD_KCODE,
NSD_NAME,
RSD_KCODE,
RSD_NAME,
RSM_KCODE,
DSM_KCODE,
DSM_NAME,
MR_KCODE,
MR_NAME
)
select
'ROC' as REGION_CODE,
'ROC' as region_name_en,
'Vacant' as RSM_Name,
'ROC' as rc_code,
'ROC' as rc_name_en,
'Vacant' as RC_Name,
null as RegionCenter,
AUDIT_COD,
MARKET,
null as bu_category,
null as bu_name_en,
null as sub_bu_name,
null as sub_bu_code_auth,
DATA_SOURCE as bu_code_auth,
DATA_SOURCE,
1 as REGION_RATIO,
'ROC' as TEAM,
'Vacant' as MR_TRTY_CODE,
'Vacant' as NSD_KCODE,
'Vacant' as NSD_NAME,
'Vacant' as RSD_KCODE,
'Vacant' as RSD_NAME,
'Vacant' as RSM_KCODE,
'Vacant' as DSM_KCODE,
'Vacant' as DSM_NAME,
'Vacant' as MR_KCODE,
'Vacant' as MR_NAME
from tmp_org
where DATA_SOURCE = 'XH Data(Quarterly)'
-- COMMAND ----------
-- DBTITLE 1,hidden_market
-----------------------------------------------------------
--修改时间20241118
--Fanxujia
--
--使
-----------------------------------------------------------
with hidden_market as (
select distinct
case when upper(data_source) = 'CHPA' then 'IQVIA-CHPA(Monthly)'
when upper(data_source) = '科室市场' then 'XH Data(Quarterly)'
when upper(data_source) = 'EC' then 'EC(Monthly)'
when upper(data_source) = 'RETAIL' then 'Retail(Quarterly)'
when upper(data_source) = 'CHC' then 'CHC(Quarterly)'
when upper(data_source) = 'AIA' then 'AIA(Monthly)'
when upper(data_source) = 'THC' then 'THC(Quarterly)'
when upper(data_source) = 'COUNTY' then 'IQVIA-COUNTY(Quarterly)'
else data_source
end as data_source,
upper(hidden_market) as hidden_market
from dwd.dwd_gnd_ims_hidden_market
)
MERGE into dm.dm_td_ext_xiehe_org as t1
USING hidden_market t2
on t1.data_source = t2.data_source
and upper(t1.MARKET) = upper(t2.hidden_market)
WHEN MATCHED THEN
DELETE