-- 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, 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