COUNTY挂架构

This commit is contained in:
2026-05-25 11:50:54 +00:00
parent 115e853ead
commit 5fc543b11c

View File

@@ -32,6 +32,15 @@
-- COMMAND ---------- -- 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。 -- 20260130 由于DM.dm_td_org数据需要转换新增这个CELL。
create or replace temporary view dm_td_org_temp create or replace temporary view dm_td_org_temp
as as
@@ -54,9 +63,8 @@ FROM DM.dm_td_org P2
-- COMMAND ---------- -- COMMAND ----------
----------------------------------------------------county------------------------------------------------------------------------------ --
-----------------------除了Eagle、CHC、Retail、EC的人都能看 insert into DM.DM_TD_EXT_RETAIL_ORG
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, (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, TEAM,
MR_TRTY_CODE, MR_TRTY_CODE,
@@ -70,149 +78,168 @@ DSM_NAME,
MR_KCODE, MR_KCODE,
MR_NAME MR_NAME
) )
SELECT DISTINCT '' REGION_CODE,'' region_name_en,'' rc_code,'' rc_name_en,'' RegionCenter,A.AUDIT_CODE,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,'','', WITH
'' as TEAM, -- ① 市场与子BU映射
'' as MR_TRTY_CODE, market_ta AS (
'' as NSD_KCODE, select distinct MARKET,bu as subbu from dwd.dwd_gnd_tblmarket_bymonth
'' as NSD_NAME, -- WHERE UPPER(TA) <> 'ALL'
'' 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_EXT_UNIONALL_SALES A
INNER JOIN DM.dm_td_external_market_pack_mapping B ON A.PACK_CODE = 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 ---------- -- ② 产品包与市场映射
pack_2_market AS (
SELECT DISTINCT
a.PACK_CODE,
a.market,
b.subbu
FROM
dm.dm_td_ext_COUNTY_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
),
-- DBTITLE 1,add -- ③ 外部地理信息
--20240808 external_geo AS (
--FanXuJia SELECT DISTINCT
-- province_c,
--audit_cod在事实表有销量audit_cod audit_cod,
--audit_cod REGION_CENTER
with sales as ( FROM dm.dm_td_external_geo_temp
select distinct PACK_CODE,AUDIT_CODE,DATA_SOURCE from dm.DM_TF_EXT_UNIONALL_SALES WHERE DATA_SOURCE = 'IQVIA-COUNTY(Quarterly)'
) ),
,market_pack as (
select distinct PACK_COD,MARKET,DATA_SOURCE from dm.dm_td_external_market_pack_mapping -- ④ 当前考核月份
) YM_CVH AS (
,org as ( SELECT key_value
select distinct AUDIT_COD,MARKET,DATA_SOURCE from dm.DM_TD_EXT_COUNTY_ORG FROM dm.dm_td_date_config
) WHERE key_code = 'pfmc_cvh'
,tmp_org as ( ),
select distinct a.AUDIT_CODE,b.MARKET,a.DATA_SOURCE
from sales a -- ⑤ 组织架构(取当前考核月份快照)
left join market_pack b on a.PACK_CODE = b.PACK_COD and a.DATA_SOURCE = b.DATA_SOURCE td_org AS (
left join org c on a.DATA_SOURCE = c.DATA_SOURCE and a.AUDIT_CODE = c.AUDIT_COD and b.MARKET = c.MARKET SELECT DISTINCT
where C.AUDIT_COD IS NULL 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 ('BBU_County') -- 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
) )
insert into table dm.DM_TD_EXT_COUNTY_ORG -- ════════════════════════════════════════════
( -- 主查询 Part 1正常地理覆盖行
REGION_CODE, -- ════════════════════════════════════════════
region_name_en, SELECT DISTINCT
RSM_Name, t1.REGION_CODE,
rc_code, t1.region_name,
rc_name_en, t1.rc_code,
RC_Name, t1.rc_name AS rc_name_en,
RegionCenter, t3.REGION_CENTER AS RegionCenter,
AUDIT_COD, t3.AUDIT_COD,
MARKET, t2.MARKET,
bu_category, t1.bu_category,
bu_name_en, t1.bu_name_en,
sub_bu_name, t1.sub_bu_name,
sub_bu_code_auth, t1.sub_bu_code AS sub_bu_code_auth,
bu_code_auth, CONCAT(t1.bu_code, 'IQVIA-COUNTY(Quarterly)') AS bu_code_auth,
DATA_SOURCE, 'IQVIA-COUNTY(Quarterly)' AS DATA_SOURCE,
REGION_RATIO, 1 AS REGION_RATIO,
TEAM, t1.RSM_Name,
MR_TRTY_CODE, t1.rsd_name,
NSD_KCODE, '' AS TEAM,
NSD_NAME, '' AS MR_TRTY_CODE,
RSD_KCODE, '' AS NSD_KCODE,
RSD_NAME, '' AS NSD_NAME,
RSM_KCODE, '' AS RSD_KCODE,
DSM_KCODE, '' AS RC_Name,
DSM_NAME, '' AS RSM_KCODE,
MR_KCODE, '' AS DSM_KCODE,
MR_NAME '' AS DSM_NAME,
) '' AS MR_KCODE,
select '' AS MR_NAME
'ROC' as REGION_CODE, FROM td_org t1
'ROC' as region_name_en, INNER JOIN province_market t2 ON t1.mr_trty_code = t2.trty_code
'Vacant' as RSM_Name, INNER JOIN external_geo t3 ON t2.province_name = t3.province_c
'ROC' as rc_code, WHERE t2.market IS NOT NULL
'ROC' as rc_name_en, AND t3.audit_cod IS NOT NULL
'Vacant' as RC_Name,
null as RegionCenter,
AUDIT_CODE,
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 ---------- UNION ALL
-- DBTITLE 1,DM_TD_EXT_CHPA_ORG -- ════════════════════════════════════════════
----------------------------------------------------------- -- 主查询 Part 2ROC 虚拟兜底行
--修改时间20241118 -- ════════════════════════════════════════════
--Fanxujia SELECT DISTINCT
-- 'ROC' AS REGION_CODE,
--使 'ROC' AS region_name,
----------------------------------------------------------- 'ROC' AS rc_code,
with hidden_market as ( 'ROC' AS rc_name_en,
select distinct 'Other Low Tiers' AS RegionCenter,
case when upper(data_source) = 'CHPA' then 'IQVIA-CHPA(Monthly)' 'ROC' AS AUDIT_COD,
when upper(data_source) = '科室市场' then 'XH Data(Quarterly)' t2.MARKET,
when upper(data_source) = 'EC' then 'EC(Monthly)' 'All Channel' AS bu_category,
when upper(data_source) = 'RETAIL' then 'Retail(Quarterly)' nvl(subbu,'BBU_County') AS bu_name_en,
when upper(data_source) = 'CHC' then 'CHC(Quarterly)' nvl(subbu,'BBU_County') AS sub_bu_name,
when upper(data_source) = 'AIA' then 'AIA(Monthly)' nvl(subbu,'BBU_County') AS sub_bu_code_auth,
when upper(data_source) = 'THC' then 'THC(Quarterly)' 'IQVIA-COUNTY(Quarterly)' AS bu_code_auth,
when upper(data_source) = 'COUNTY' then 'IQVIA-COUNTY(Quarterly)' 'IQVIA-COUNTY(Quarterly)' AS DATA_SOURCE,
else data_source 1 AS REGION_RATIO,
end as data_source, 'Vacant' AS RSM_Name,
upper(hidden_market) as hidden_market 'Vacant' AS RC_Name,
from dwd.dwd_gnd_ims_hidden_market '' AS TEAM,
union all '' AS MR_TRTY_CODE,
select '' AS NSD_KCODE,
'AIA(Monthly)' as data_source, '' AS NSD_NAME,
'AIA ALL Market' '' AS RSD_KCODE,
) '' AS RSD_NAME,
'' AS RSM_KCODE,
'' AS DSM_KCODE,
MERGE into dm.DM_TD_EXT_COUNTY_ORG as t1 '' AS DSM_NAME,
USING hidden_market t2 '' AS MR_KCODE,
on t1.data_source = t2.data_source '' AS MR_NAME
and upper(t1.MARKET) = upper(t2.hidden_market) FROM pack_2_market t2
WHEN MATCHED THEN
DELETE