update20260427
This commit is contained in:
355
AIA/01 dm_aia_pack_property.sql
Normal file
355
AIA/01 dm_aia_pack_property.sql
Normal 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
|
||||
Reference in New Issue
Block a user