update20260427

This commit is contained in:
2026-04-27 11:04:09 +08:00
commit 3e14e78af3
173 changed files with 62579 additions and 0 deletions

View File

@@ -0,0 +1,355 @@
-- Databricks notebook source
-- CREATE OR REPLACE TABLE dm.dm_aia_pack_property (
-- PACK_COD STRING,
-- pack_des STRING,
-- stgh_des STRING,
-- pack_lch STRING,
-- PROD_COD STRING,
-- prod_des STRING,
-- prod_des_c STRING,
-- Family_Code STRING,
-- Family_Name STRING,
-- cmps_cod STRING,
-- cmps_des STRING,
-- cmps_des_c STRING,
-- atc1_cod STRING,
-- atc1_des STRING,
-- atc1_des_c STRING,
-- atc2_cod STRING,
-- atc2_des STRING,
-- atc2_des_c STRING,
-- atc3_cod STRING,
-- atc3_des STRING,
-- atc3_des_c STRING,
-- atc4_cod STRING,
-- atc4_des STRING,
-- atc4_des_c STRING,
-- app1_cod STRING,
-- app1_des STRING,
-- app1_des_c STRING,
-- app2_cod STRING,
-- app2_des STRING,
-- app2_des_c STRING,
-- app3_cod STRING,
-- app3_des STRING,
-- app3_des_c STRING,
-- bio_desc STRING,
-- gene_orig_desc STRING,
-- eth_otc_desc STRING,
-- nrdl_desc STRING,
-- NRDL_Entry_Date STRING,
-- edl_desc STRING,
-- tcm_desc STRING,
-- paed_desc STRING,
-- gqce_desc STRING,
-- vbp_desc STRING,
-- manu_cod STRING,
-- manu_des STRING,
-- manu_des_c STRING,
-- mnfl_cod STRING,
-- mnfl_des STRING,
-- corp_cod STRING,
-- corp_des STRING,
-- corp_des_c STRING,
-- BrandType STRING,
-- IS_AZ STRING,
-- AZ_MAIN STRING,
-- AZ_Related STRING,
-- COUNTING_UNIT STRING,
-- ETL_INSERT_DT TIMESTAMP,
-- ETL_UPDATE_DT TIMESTAMP)
-- USING delta
-- -- LOCATION 'abfss://master@azcdatalakeprd.dfs.core.chinacloudapi.cn/DM/dm_aia_pack_property';
-- -- 上面是生产环境location下面是测试环境location
-- LOCATION 'abfss://master@retaildlstoragetest.dfs.core.chinacloudapi.cn/DM/dm_aia_pack_property';
-- COMMAND ----------
--
--0
create or replace temporary view aia_pack_property_distinct as
select distinct
iqvia_lineno,
case
when
length(trim(iqvia_pack_code)) < 12
and trim(iqvia_pack_code) REGEXP '^[0-9]'
then
right(concat('000000000000', trim(iqvia_pack_code)), 12)
else trim(iqvia_pack_code)
end as iqvia_pack_code,
case
when length(iqvia_prod_code) < 9 then right(concat('000000000', iqvia_prod_code), 9)
else iqvia_prod_code
end as iqvia_prod_code,
iqvia_notes,
IS_NEW_PRD,
IS_IN_CHPA,
ATC1,
ATC2,
ATC3,
ATC4,
org_prd_cd,
org_mole_nm_c,
org_manu_prd_nm_c,
org_prd_nm_c,
org_pk,
org_prd_str,
org_pth,
min_pk_unit,
org_pk_unit,
org_manu_nm,
app1_cod,
app1_des,
app1_des_c,
app2_cod,
app2_des,
app2_des_c,
app3_cod,
app3_des,
app3_des_c,
atc1_cod,
atc1_des,
atc1_des_c,
atc2_cod,
atc2_des,
atc2_des_c,
atc3_cod,
atc3_des,
atc3_des_c,
atc4_cod,
atc4_des,
atc4_des_c,
bio_desc,
case
when length(cmps_cod) < 6 then right(concat('000000', cmps_cod), 6)
else cmps_cod
end as cmps_cod,
cmps_des,
cmps_des_c,
corp_cod,
corp_des,
corp_des_c,
edl_desc,
eth_otc_desc,
gene_orig_desc,
gqce_desc,
manu_cod,
manu_des,
manu_des_c,
mnfl_cod,
mnfl_des,
nrdl_desc,
pack_des,
stgh_des,
pack_lch,
paed_desc,
prod_des,
prod_des_c,
tcm_desc,
vbp_desc,
unit,
case
when
counting_unit is null
and org_pk_unit is null
then
1
when counting_unit is null then cast(org_pk_unit as decimal(30, 10))
else cast(counting_unit / coalesce(unit, 1) as decimal(30, 10))
end as counting_unit,
dosage_unit
from
dwd.dwd_gnd_ext_aia_cpt_data;
-- COMMAND ----------
-- create or replace table dm.dm_aia_pack_property
insert overwrite table dm.dm_aia_pack_property
WITH dedup_l AS (
SELECT *,
ROW_NUMBER() OVER (PARTITION BY iqvia_pack_code ORDER BY iqvia_pack_code) AS rn
FROM aia_pack_property_distinct
QUALIFY rn = 1
),
dedup_r AS (
SELECT *,
ROW_NUMBER() OVER (PARTITION BY PACK_COD ORDER BY PACK_COD) AS rn
FROM tmp.tmp_ext_chpa_pack_propetry
QUALIFY rn = 1
)
SELECT
l.iqvia_pack_code AS PACK_COD,
-- Pack / Product 描述
COALESCE(r.PACK_DES, l.pack_des) AS pack_des,
COALESCE(r.STGH_DES, l.stgh_des) AS stgh_des,
COALESCE(r.PACK_LCH, l.pack_lch) AS pack_lch,
COALESCE(r.PROD_COD, l.iqvia_prod_code) AS PROD_COD,
COALESCE(r.PROD_DES, l.prod_des) AS prod_des,
COALESCE(r.PROD_DES_C, l.prod_des_c) AS prod_des_c,
-- 右表独有Family
r.Family_Code,
r.Family_Name,
-- 成分
COALESCE(r.CMPS_COD, l.cmps_cod) AS cmps_cod,
COALESCE(r.CMPS_DES, l.cmps_des) AS cmps_des,
COALESCE(r.CMPS_DES_C, l.cmps_des_c) AS cmps_des_c,
-- ATC
COALESCE(r.ATC1_COD, l.atc1_cod) AS atc1_cod,
COALESCE(r.atc1_des, l.atc1_des) AS atc1_des,
COALESCE(r.atc1_des_c, l.atc1_des_c) AS atc1_des_c,
COALESCE(r.ATC2_COD, l.atc2_cod) AS atc2_cod,
COALESCE(r.atc2_des, l.atc2_des) AS atc2_des,
COALESCE(r.atc2_des_c, l.atc2_des_c) AS atc2_des_c,
COALESCE(r.ATC3_COD, l.atc3_cod) AS atc3_cod,
COALESCE(r.atc3_des, l.atc3_des) AS atc3_des,
COALESCE(r.atc3_des_c, l.atc3_des_c) AS atc3_des_c,
COALESCE(r.ATC4_COD, l.atc4_cod) AS atc4_cod,
COALESCE(r.atc4_des, l.atc4_des) AS atc4_des,
COALESCE(r.atc4_des_c, l.atc4_des_c) AS atc4_des_c,
-- APP
COALESCE(r.APP1_COD, l.app1_cod) AS app1_cod,
COALESCE(r.app1_des, l.app1_des) AS app1_des,
COALESCE(r.app1_des_c, l.app1_des_c) AS app1_des_c,
COALESCE(r.APP2_COD, l.app2_cod) AS app2_cod,
COALESCE(r.app2_des, l.app2_des) AS app2_des,
COALESCE(r.app2_des_c, l.app2_des_c) AS app2_des_c,
COALESCE(r.APP3_COD, l.app3_cod) AS app3_cod,
COALESCE(r.app3_des, l.app3_des) AS app3_des,
COALESCE(r.app3_des_c, l.app3_des_c) AS app3_des_c,
-- 标志位
COALESCE(r.BIO_DESC, l.bio_desc) AS bio_desc,
COALESCE(r.GENE_ORIG_DESC, l.gene_orig_desc) AS gene_orig_desc,
COALESCE(r.ETH_OTC_DESC, l.eth_otc_desc) AS eth_otc_desc,
COALESCE(r.NRDL_DESC, l.nrdl_desc) AS nrdl_desc,
r.NRDL_Entry_Date,
COALESCE(r.EDL_DESC, l.edl_desc) AS edl_desc,
COALESCE(r.TCM_DESC, l.tcm_desc) AS tcm_desc,
COALESCE(r.PAED_DESC, l.paed_desc) AS paed_desc,
COALESCE(r.GQCE_DESC, l.gqce_desc) AS gqce_desc,
COALESCE(r.VBP_DESC, l.vbp_desc) AS vbp_desc,
-- 厂商
COALESCE(r.MANU_COD, l.manu_cod) AS manu_cod,
COALESCE(r.MANU_DES, l.manu_des) AS manu_des,
COALESCE(r.MANU_DES_C, l.manu_des_c) AS manu_des_c,
COALESCE(r.MNFL_COD, l.mnfl_cod) AS mnfl_cod,
COALESCE(r.MNFL_DES, l.mnfl_des) AS mnfl_des,
-- 公司
COALESCE(r.CORP_COD, l.corp_cod) AS corp_cod,
COALESCE(r.CORP_DES, l.corp_des) AS corp_des,
COALESCE(r.CORP_DES_C, l.corp_des_c) AS corp_des_c,
-- 右表独有:品牌 / AZ 标志
r.BrandType,
r.IS_AZ,
r.AZ_MAIN,
r.AZ_Related,
-- 左表独有
l.COUNTING_UNIT,
from_utc_timestamp(current_timestamp(),'UTC+8') as ETL_INSERT_DT,
from_utc_timestamp(current_timestamp(),'UTC+8') as ETL_UPDATE_DT
FROM dedup_l l
LEFT JOIN dedup_r r
ON l.iqvia_pack_code = r.PACK_COD
-- COMMAND ----------
-- -----------------------------------------------------------
-- --修改时间20241118
-- --修改人Fanxujia
-- --修改内容:
-- --使用手工文件排除掉每个渠道的不需要显示的市场
-- --由于AIA涉及后面的Flag逻辑、NEW AIA Dashboard因此不能直接在最后的DM表进行限制需要在这里限制。
-- -----------------------------------------------------------
-- with hidden_market as (
-- select distinct
-- upper(hidden_market) as hidden_market
-- from dwd.dwd_gnd_ims_hidden_market
-- where upper(data_source) = 'AIA'
-- )
-- ,tmp as (
-- select
-- MARKET_PACK_KEY,
-- PACK_COD,
-- PACK_DES,
-- STGH_DES,
-- PACK_LCH,
-- Family_Code,
-- Family_Name,
-- PROD_COD,
-- PROD_DES,
-- PROD_DES_C,
-- CMPS_COD,
-- CMPS_DES,
-- CMPS_DES_C,
-- ATC1_COD,
-- ATC2_COD,
-- ATC3_COD,
-- ATC4_COD,
-- APP1_COD,
-- APP2_COD,
-- APP3_COD,
-- BIO_DESC,
-- GENE_ORIG_DESC,
-- ETH_OTC_DESC,
-- NRDL_DESC,
-- NRDL_Entry_Date,
-- EDL_DESC,
-- TCM_DESC,
-- PAED_DESC,
-- GQCE_DESC,
-- VBP_DESC,
-- MANU_COD,
-- MANU_DES,
-- MANU_DES_C,
-- MNFL_COD,
-- MNFL_DES,
-- CORP_COD,
-- CORP_DES,
-- CORP_DES_C,
-- BrandType,
-- t1.MARKET,
-- t1.MARKET_CHPA,
-- KEY_COMPETITOR,
-- IS_AZ,
-- AZ_MAIN,
-- AZ_Related,
-- atc1_des,
-- atc1_des_c,
-- atc2_des,
-- atc2_des_c,
-- atc3_des,
-- atc3_des_c,
-- atc4_des,
-- atc4_des_c,
-- app1_des,
-- app1_des_c,
-- app2_des,
-- app2_des_c,
-- app3_des,
-- app3_des_c,
-- Class,
-- ETL_INSERT_DT,
-- ETL_UPDATE_DT,
-- market_ratio,
-- counting_unit
-- from dm.dm_aia_pack_property t1
-- left join hidden_market t3
-- on upper(t1.MARKET) = t3.hidden_market
-- where t3.hidden_market is null
-- union
-- select *
-- from dm.dm_aia_pack_property
-- where MARKET = 'AIA ALL Market'
-- )
-- insert overwrite dm.dm_aia_pack_property
-- select * from tmp