From d2485035c097b004f46662ac9981d5a78662d2ca Mon Sep 17 00:00:00 2001 From: chenwu Date: Mon, 27 Apr 2026 15:48:31 +0800 Subject: [PATCH] update --- .gitignore | 31 - EXTERNAL/01 dm_tf_external_sales.sql | 64 - ...1 dm_tf_external_sales.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/02 dm_td_external_keycompatitor.sql | 42 - ...external_keycompatitor.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/03 dm_td_external_brand_market.sql | 70 - ..._external_brand_market.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/04 dm_td_external_calendar.sql | 382 - ...m_td_external_calendar.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/05 dm_td_external_exchangerate.sql | 26 - ..._external_exchangerate.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/07 dm_td_external_packinfo.sql | 2833 -------- ...m_td_external_packinfo.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/08 dm_td_external_corp.sql | 83 - ...08 dm_td_external_corp.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/09 dm_td_external_geo_type.sql | 1968 ------ ...m_td_external_geo_type.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/11 DM_TD_EXTERNAL_MARKET_NEW.sql | 380 - ...TD_EXTERNAL_MARKET_NEW.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/12 dm_td_external_org.sql | 358 - .../12 dm_td_external_org.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/13 external auth.sql | 1230 ---- EXTERNAL/13 external auth.sql:Zone.Identifier | Bin 25 -> 0 bytes .../14 dm_tf_external_retail_special_bkp.sql | 22 - ...nal_retail_special_bkp.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/AIA/01 dm_aia_pack_property.sql | 333 - ...1 dm_aia_pack_property.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/AIA/02 dm_ext_aia_sales.sql | 710 -- .../02 dm_ext_aia_sales.sql:Zone.Identifier | Bin 25 -> 0 bytes .../02 dm_ext_aia_sales_bakup_20230327.sql | 195 - ...a_sales_bakup_20230327.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/AIA/03 dm_aia_flag.sql | 84 - .../AIA/03 dm_aia_flag.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/AIA/04 dm_aia_provided_flag.sql | 112 - ...4 dm_aia_provided_flag.sql:Zone.Identifier | Bin 25 -> 0 bytes .../AIA/06 DM_TD_EXT_AIA_PACK_PROPERTY.sql | 146 - ..._EXT_AIA_PACK_PROPERTY.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/AIA/07 DM_TD_EXT_AIA_PACK2MARKET.sql | 339 - ...TD_EXT_AIA_PACK2MARKET.sql:Zone.Identifier | Bin 25 -> 0 bytes .../AIA/08 DM_TD_EXT_AIA_MARKET_RATIO.sql | 30 - ...D_EXT_AIA_MARKET_RATIO.sql:Zone.Identifier | Bin 25 -> 0 bytes .../09 DM_TD_EXT_AIA_MARKET_BRAND_RATIO.sql | 163 - ...AIA_MARKET_BRAND_RATIO.sql:Zone.Identifier | Bin 25 -> 0 bytes .../10 DM_TD_EXT_AIA_MARKET_PACK_MAPPING.sql | 71 - ...IA_MARKET_PACK_MAPPING.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/AIA/11 dm_aia_targethp_flag.sql | 366 - ...1 dm_aia_targethp_flag.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/AIA/z_03 dm_aia_flag_备份用.sql | 643 -- ..._03 dm_aia_flag_备份用.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/CHC/01 dm_chc_pack_property.sql | 231 - ...1 dm_chc_pack_property.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/CHC/02 DM_TF_EXT_CHC_SALES.sql | 418 -- ...02 DM_TF_EXT_CHC_SALES.sql:Zone.Identifier | Bin 25 -> 0 bytes .../CHC/03 DM_TD_EXT_CHC_PACK_PROPERTY.sql | 147 - ..._EXT_CHC_PACK_PROPERTY.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/CHC/04 DM_TD_EXT_CHC_PACK2MARKET.sql | 327 - ...TD_EXT_CHC_PACK2MARKET.sql:Zone.Identifier | Bin 25 -> 0 bytes .../CHC/05 DM_TD_EXT_CHC_MARKET_RATIO.sql | 30 - ...D_EXT_CHC_MARKET_RATIO.sql:Zone.Identifier | Bin 25 -> 0 bytes .../06 DM_TD_EXT_CHC_MARKET_BRAND_RATIO.sql | 163 - ...CHC_MARKET_BRAND_RATIO.sql:Zone.Identifier | Bin 25 -> 0 bytes .../07 DM_TD_EXT_CHC_MARKET_PACK_MAPPING.sql | 71 - ...HC_MARKET_PACK_MAPPING.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/CHPA/01 dwd_ims_atc_hierarchy.sql | 42 - ... dwd_ims_atc_hierarchy.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/CHPA/01 dwd_ims_nfc_hierarchy.sql | 26 - ... dwd_ims_nfc_hierarchy.sql:Zone.Identifier | Bin 25 -> 0 bytes .../CHPA/01 dwd_ims_td_manufacturer_corp.sql | 24 - ...s_td_manufacturer_corp.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/CHPA/01 dwd_ims_td_pack_property.sql | 89 - ...d_ims_td_pack_property.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/CHPA/01 dwd_update.sql | 32 - .../CHPA/01 dwd_update.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/CHPA/01_FB_BLOB_TO_DWD.sql | 210 - .../01_FB_BLOB_TO_DWD.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/CHPA/02 DWS_IMS_TD_GEO.sql | 19 - .../02 DWS_IMS_TD_GEO.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/CHPA/02 dws_ims_td_atc_cn.sql | 33 - .../02 dws_ims_td_atc_cn.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/CHPA/02 dws_ims_td_corp_cn.sql | 19 - .../02 dws_ims_td_corp_cn.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/CHPA/02 dws_ims_td_date.sql | 28 - .../02 dws_ims_td_date.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/CHPA/02 dws_ims_td_manu_cn.sql | 18 - .../02 dws_ims_td_manu_cn.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/CHPA/02 dws_ims_td_market.sql | 238 - .../02 dws_ims_td_market.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/CHPA/02 dws_ims_td_market_ta.sql | 7 - ...2 dws_ims_td_market_ta.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/CHPA/02 dws_ims_td_nfc_cn.sql | 22 - .../02 dws_ims_td_nfc_cn.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/CHPA/02 dws_ims_td_prod_cn.sql | 7 - .../02 dws_ims_td_prod_cn.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/CHPA/02 tmp_ims_td_prod_tmp.sql | 32 - ...02 tmp_ims_td_prod_tmp.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/CHPA/02 tmp_ims_tf_fact_sales.sql | 206 - ... tmp_ims_tf_fact_sales.sql:Zone.Identifier | Bin 25 -> 0 bytes .../03 DM_TD_EXT_CHPA_MARKET_BRAND_RATIO.sql | 160 - ...HPA_MARKET_BRAND_RATIO.sql:Zone.Identifier | Bin 25 -> 0 bytes .../03 DM_TD_EXT_CHPA_MARKET_PACK_MAPPING.sql | 71 - ...PA_MARKET_PACK_MAPPING.sql:Zone.Identifier | Bin 25 -> 0 bytes .../CHPA/03 DM_TD_EXT_CHPA_MARKET_RATIO.sql | 30 - ..._EXT_CHPA_MARKET_RATIO.sql:Zone.Identifier | Bin 25 -> 0 bytes .../CHPA/03 DM_TD_EXT_CHPA_PACK2MARKET.sql | 327 - ...D_EXT_CHPA_PACK2MARKET.sql:Zone.Identifier | Bin 25 -> 0 bytes .../CHPA/03 DM_TD_EXT_CHPA_PACK_PROPERTY.sql | 147 - ...EXT_CHPA_PACK_PROPERTY.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/CHPA/03 DM_TF_EXT_CHPA_SALES.sql | 166 - ...3 DM_TF_EXT_CHPA_SALES.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/CHPA/03 dm_ims_td_calendar.sql | 58 - .../03 dm_ims_td_calendar.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/CHPA/03 dm_ims_td_geo.sql | 67 - .../CHPA/03 dm_ims_td_geo.sql:Zone.Identifier | Bin 25 -> 0 bytes .../CHPA/03 dm_ims_td_market_property.sql | 35 - ...ims_td_market_property.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/CHPA/03 dm_ims_td_org.sql | 615 -- .../CHPA/03 dm_ims_td_org.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/CHPA/03 dm_ims_td_org_hvh.sql | 463 -- .../03 dm_ims_td_org_hvh.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/CHPA/03 dm_ims_td_pack_property.sql | 1679 ----- ...m_ims_td_pack_property.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/CHPA/03 dm_ims_tf_sales.sql | 759 -- .../03 dm_ims_tf_sales.sql:Zone.Identifier | Bin 25 -> 0 bytes .../CHPA/03 dm_td_chpa_market_definition.sql | 14 - ...chpa_market_definition.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/CHPA/03 dm_td_ims_city_mapping.sql | 30 - ...dm_td_ims_city_mapping.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/EC/03 ec_load_data.sql | 1544 ---- .../EC/03 ec_load_data.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/EC/04 DM_TD_EXT_EC_PACK_PROPERTY.sql | 146 - ...D_EXT_EC_PACK_PROPERTY.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/EC/05 DM_TF_EXT_EC_SALES.sql | 173 - .../05 DM_TF_EXT_EC_SALES.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/EC/06 DM_TD_EXT_EC_PACK2MARKET.sql | 208 - ..._TD_EXT_EC_PACK2MARKET.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/EC/07 DM_TD_EXT_EC_MARKET_RATIO.sql | 30 - ...TD_EXT_EC_MARKET_RATIO.sql:Zone.Identifier | Bin 25 -> 0 bytes .../EC/08 DM_TD_EXT_EC_MARKET_BRAND_RATIO.sql | 163 - ..._EC_MARKET_BRAND_RATIO.sql:Zone.Identifier | Bin 25 -> 0 bytes .../09 DM_TD_EXT_EC_MARKET_PACK_MAPPING.sql | 62 - ...EC_MARKET_PACK_MAPPING.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/EC/1 (ec)blob_to_dwd.sql | 103 - .../EC/1 (ec)blob_to_dwd.sql:Zone.Identifier | Bin 25 -> 0 bytes ...inc_gnd_ext_ec_nationnal_pack_union_all.py | 74 - ...ationnal_pack_union_all.py:Zone.Identifier | Bin 25 -> 0 bytes .../Merged_Data_Config_table_bkp.sql | 228 - ..._Data_Config_table_bkp.sql:Zone.Identifier | Bin 25 -> 0 bytes .../Merged_Data_Config_table_bymonth.sql | 213 - ...a_Config_table_bymonth.sql:Zone.Identifier | Bin 25 -> 0 bytes ...eranl_sales_merged_data_dtp_others_bkp.sql | 124 - ...ed_data_dtp_others_bkp.sql:Zone.Identifier | Bin 25 -> 0 bytes ...les_merged_data_dtp_others_bymonth_bkp.sql | 289 - ...dtp_others_bymonth_bkp.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/ORG/DM_TD_EXT_AIA_ORG.sql | 461 -- .../ORG/DM_TD_EXT_AIA_ORG.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/ORG/DM_TD_EXT_CHC_ORG.sql | 239 - .../ORG/DM_TD_EXT_CHC_ORG.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/ORG/DM_TD_EXT_CHPA_ORG.sql | 237 - .../DM_TD_EXT_CHPA_ORG.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/ORG/DM_TD_EXT_COUNTY_ORG.sql | 220 - .../DM_TD_EXT_COUNTY_ORG.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/ORG/DM_TD_EXT_EC_ORG.sql | 219 - .../ORG/DM_TD_EXT_EC_ORG.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/ORG/DM_TD_EXT_RETAIL_ORG.sql | 409 -- .../DM_TD_EXT_RETAIL_ORG.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/ORG/DM_TD_EXT_THC_ORG.sql | 344 - .../ORG/DM_TD_EXT_THC_ORG.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/ORG/DM_TD_EXT_XIEHE_ORG.sql | 283 - .../DM_TD_EXT_XIEHE_ORG.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/OTHERS/01 dm_td_report_url.sql | 11 - .../01 dm_td_report_url.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/OTHERS/02 dws_ext_email_warning.sql | 110 - ... dws_ext_email_warning.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/OTHERS/external_triggered_email.py | 42 - ...xternal_triggered_email.py:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/Retail/01 load_tmp_data.py | 617 -- .../01 load_tmp_data.py:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/Retail/02 split_brand_data.py | 672 -- .../02 split_brand_data.py:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/Retail/03 split_pack_data.py | 1200 ---- .../03 split_pack_data.py:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/Retail/04 map_to_dws_table.py | 209 - .../04 map_to_dws_table.py:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/Retail/05 load_dtp_temp_data.py | 158 - .../05 load_dtp_temp_data.py:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/Retail/06 split_dtp_brand_data.py | 421 -- ...06 split_dtp_brand_data.py:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/Retail/07 split_dtp_pack_data.py | 1107 --- .../07 split_dtp_pack_data.py:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/Retail/08 map_to_dtp_dws_table.py | 510 -- ...08 map_to_dtp_dws_table.py:Zone.Identifier | Bin 25 -> 0 bytes .../09 dwd_inc_gnd_ext_retail_nataional.py | 177 - ...nd_ext_retail_nataional.py:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/Retail/10 map_to_retail_dm_table.py | 4917 ------------- ... map_to_retail_dm_table.py:Zone.Identifier | Bin 25 -> 0 bytes .../Retail/11 map_to_overview_dm_table.py | 1000 --- ...ap_to_overview_dm_table.py:Zone.Identifier | Bin 25 -> 0 bytes .../12 dws_tf_external_retail_dtp_special.sql | 81 - ...nal_retail_dtp_special.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/Retail/13 DM_TF_EXT_RETAIL_SALES.sql | 184 - ...DM_TF_EXT_RETAIL_SALES.sql:Zone.Identifier | Bin 25 -> 0 bytes .../Retail/14 DM_TF_EXT_RETAIL_DTP_SALES.sql | 170 - ...F_EXT_RETAIL_DTP_SALES.sql:Zone.Identifier | Bin 25 -> 0 bytes .../15 DM_TD_EXT_RETAIL_PACK_PROPERTY.sql | 146 - ...T_RETAIL_PACK_PROPERTY.sql:Zone.Identifier | Bin 25 -> 0 bytes .../16 DM_TD_EXT_RETAIL_DTP_PACK_PROPERTY.sql | 146 - ...TAIL_DTP_PACK_PROPERTY.sql:Zone.Identifier | Bin 25 -> 0 bytes .../Retail/17 DM_TD_EXT_DTP_PACK2MARKET.sql | 248 - ...TD_EXT_DTP_PACK2MARKET.sql:Zone.Identifier | Bin 25 -> 0 bytes .../17 DM_TD_EXT_RETAIL_PACK2MARKET.sql | 248 - ...EXT_RETAIL_PACK2MARKET.sql:Zone.Identifier | Bin 25 -> 0 bytes .../Retail/18 DM_TD_EXT_DTP_MARKET_RATIO.sql | 30 - ...D_EXT_DTP_MARKET_RATIO.sql:Zone.Identifier | Bin 25 -> 0 bytes .../18 DM_TD_EXT_RETAIL_MARKET_RATIO.sql | 30 - ...XT_RETAIL_MARKET_RATIO.sql:Zone.Identifier | Bin 25 -> 0 bytes .../19 DM_TD_EXT_DTP_MARKET_BRAND_RATIO.sql | 160 - ...DTP_MARKET_BRAND_RATIO.sql:Zone.Identifier | Bin 25 -> 0 bytes ...19 DM_TD_EXT_RETAIL_MARKET_BRAND_RATIO.sql | 163 - ...AIL_MARKET_BRAND_RATIO.sql:Zone.Identifier | Bin 25 -> 0 bytes .../20 DM_TD_EXT_DTP_MARKET_PACK_MAPPING.sql | 88 - ...TP_MARKET_PACK_MAPPING.sql:Zone.Identifier | Bin 25 -> 0 bytes ...0 DM_TD_EXT_RETAIL_MARKET_PACK_MAPPING.sql | 88 - ...IL_MARKET_PACK_MAPPING.sql:Zone.Identifier | Bin 25 -> 0 bytes ...1 dwd_inc_gnd_ext_retail_nataional_作废.py | 367 - ...t_retail_nataional_作废.py:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/Retail/z2 retail_load_data_作废.sql | 6276 ----------------- ... retail_load_data_作废.sql:Zone.Identifier | Bin 25 -> 0 bytes .../Retail/z3 retail_overview_data_作废.sql | 1201 ---- ...ail_overview_data_作废.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/THC/01 dm_thc_pack_property.sql | 231 - ...1 dm_thc_pack_property.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/THC/02 dm_ext_thc_sales.sql | 354 - .../02 dm_ext_thc_sales.sql:Zone.Identifier | Bin 25 -> 0 bytes .../02 dm_ext_thc_sales_bakup_20260327.sql | 178 - ...c_sales_bakup_20260327.sql:Zone.Identifier | Bin 25 -> 0 bytes .../THC/03 DM_TF_EXT_THC_MARKET_SALES_CHT.sql | 109 - ...T_THC_MARKET_SALES_CHT.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/THC/04 dm_tf_external_sales_thc.sql | 115 - ..._tf_external_sales_thc.sql:Zone.Identifier | Bin 25 -> 0 bytes .../THC/05 DM_TD_EXT_THC_PACK_PROPERTY.sql | 146 - ..._EXT_THC_PACK_PROPERTY.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/THC/06 DM_TD_EXT_THC_PACK2MARKET.sql | 326 - ...TD_EXT_THC_PACK2MARKET.sql:Zone.Identifier | Bin 25 -> 0 bytes .../THC/07 DM_TD_EXT_THC_MARKET_RATIO.sql | 30 - ...D_EXT_THC_MARKET_RATIO.sql:Zone.Identifier | Bin 25 -> 0 bytes .../08 DM_TD_EXT_THC_MARKET_BRAND_RATIO.sql | 163 - ...THC_MARKET_BRAND_RATIO.sql:Zone.Identifier | Bin 25 -> 0 bytes .../09 DM_TD_EXT_THC_MARKET_PACK_MAPPING.sql | 71 - ...HC_MARKET_PACK_MAPPING.sql:Zone.Identifier | Bin 25 -> 0 bytes ...DM_TD_EXT_UNIONALL_MARKET_PACK_MAPPING.sql | 541 -- ...LL_MARKET_PACK_MAPPING.sql:Zone.Identifier | Bin 25 -> 0 bytes .../UNIONALL/DM_TD_EXT_UNIONALL_PACKINFO.sql | 1837 ----- ..._EXT_UNIONALL_PACKINFO.sql:Zone.Identifier | Bin 25 -> 0 bytes .../DM_TF_EXT_UNIONALL_MARKET_SALES.sql | 363 - ..._UNIONALL_MARKET_SALES.sql:Zone.Identifier | Bin 25 -> 0 bytes .../DM_TF_EXT_UNIONALL_MARKET_SALES_v1.0.sql | 1012 --- ...NALL_MARKET_SALES_v1.0.sql:Zone.Identifier | Bin 25 -> 0 bytes .../UNIONALL/DM_TF_EXT_UNIONALL_SALES.sql | 349 - ..._TF_EXT_UNIONALL_SALES.sql:Zone.Identifier | Bin 25 -> 0 bytes .../DM_TF_EXT_UNIONALL_SALES_MAPPING.sql | 517 -- ...UNIONALL_SALES_MAPPING.sql:Zone.Identifier | Bin 25 -> 0 bytes .../DM_TF_EXT_UNIONALL_SALES_MAPPING_NIAD.sql | 112 - ...ALL_SALES_MAPPING_NIAD.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/XIEHE/01 xiehe_blob_to_dwd.py | 194 - .../01 xiehe_blob_to_dwd.py:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/XIEHE/02 dm_xiehe_pack_property.sql | 232 - ...dm_xiehe_pack_property.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/XIEHE/03 dm_ext_xiehe_geo.sql | 76 - .../03 dm_ext_xiehe_geo.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/XIEHE/04 dm_ext_xiehe_sales.sql | 219 - .../04 dm_ext_xiehe_sales.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/XIEHE/05 dm_td_xiehe_core_dept.sql | 8 - ... dm_td_xiehe_core_dept.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/XIEHE/06 DM_TF_EXT_XIEHE_SALES.sql | 170 - ... DM_TF_EXT_XIEHE_SALES.sql:Zone.Identifier | Bin 25 -> 0 bytes .../07 DM_TD_EXT_XIEHE_PACK_PROPERTY.sql | 146 - ...XT_XIEHE_PACK_PROPERTY.sql:Zone.Identifier | Bin 25 -> 0 bytes .../XIEHE/08 DM_TD_EXT_XIEHE_PACK2MARKET.sql | 326 - ..._EXT_XIEHE_PACK2MARKET.sql:Zone.Identifier | Bin 25 -> 0 bytes .../XIEHE/09 DM_TD_EXT_XIEHE_MARKET_RATIO.sql | 30 - ...EXT_XIEHE_MARKET_RATIO.sql:Zone.Identifier | Bin 25 -> 0 bytes .../10 DM_TD_EXT_XIEHE_MARKET_BRAND_RATIO.sql | 163 - ...EHE_MARKET_BRAND_RATIO.sql:Zone.Identifier | Bin 25 -> 0 bytes ...11 DM_TD_EXT_XIEHE_MARKET_PACK_MAPPING.sql | 71 - ...HE_MARKET_PACK_MAPPING.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/XIEHE/bkp_01 xiehe_blob2dwd.py | 478 -- .../bkp_01 xiehe_blob2dwd.py:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/XIEHE/bkp_02 dm_ext_xiehe_sales.sql | 115 - ..._02 dm_ext_xiehe_sales.sql:Zone.Identifier | Bin 25 -> 0 bytes .../bkp_03 dm_ext_xiehe_pack_property.sql | 776 -- ...xt_xiehe_pack_property.sql:Zone.Identifier | Bin 25 -> 0 bytes .../01 tmp_ims_county_fact_sales_sum.sql | 60 - ..._county_fact_sales_sum.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/county/02 tmp_imscounty_Result.sql | 64 - ...2 tmp_imscounty_Result.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/county/03 dm_ims_td_county_geo.sql | 24 - ...3 dm_ims_td_county_geo.sql:Zone.Identifier | Bin 25 -> 0 bytes .../county/04 dws_ext_county_tf_sales.sql | 36 - ...ws_ext_county_tf_sales.sql:Zone.Identifier | Bin 25 -> 0 bytes .../05 dm_ext_county_td_pack_property.sql | 236 - ...ounty_td_pack_property.sql:Zone.Identifier | Bin 25 -> 0 bytes .../county/06 dm_td_county_pack_region.sql | 106 - ..._td_county_pack_region.sql:Zone.Identifier | Bin 25 -> 0 bytes .../07 dm_ext_county_tf_sales_region.sql | 37 - ...county_tf_sales_region.sql:Zone.Identifier | Bin 25 -> 0 bytes .../08 DM_TD_EXT_COUNTY_PACK_PROPERTY.sql | 146 - ...T_COUNTY_PACK_PROPERTY.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/county/09 DM_TF_EXT_COUNTY_SALES.sql | 128 - ...DM_TF_EXT_COUNTY_SALES.sql:Zone.Identifier | Bin 25 -> 0 bytes .../10 DM_TD_EXT_COUNTY_PACK2MARKET.sql | 208 - ...EXT_COUNTY_PACK2MARKET.sql:Zone.Identifier | Bin 25 -> 0 bytes .../11 DM_TD_EXT_COUNTY_MARKET_RATIO.sql | 30 - ...XT_COUNTY_MARKET_RATIO.sql:Zone.Identifier | Bin 25 -> 0 bytes ...12 DM_TD_EXT_COUNTY_MARKET_BRAND_RATIO.sql | 163 - ...NTY_MARKET_BRAND_RATIO.sql:Zone.Identifier | Bin 25 -> 0 bytes ...3 DM_TD_EXT_COUNTY_MARKET_PACK_MAPPING.sql | 62 - ...TY_MARKET_PACK_MAPPING.sql:Zone.Identifier | Bin 25 -> 0 bytes .../01 dm_td_aia_inst_mkt.sql | 237 - .../01 dm_td_aia_inst_mkt.sql:Zone.Identifier | Bin 25 -> 0 bytes .../02 dm_td_aia_auth_sales.sql | 293 - ...2 dm_td_aia_auth_sales.sql:Zone.Identifier | Bin 25 -> 0 bytes .../03 dm_td_aia_original_col.sql | 23 - ...dm_td_aia_original_col.sql:Zone.Identifier | Bin 25 -> 0 bytes .../04 dm_td_aia_nosales_inst.sql | 161 - ...dm_td_aia_nosales_inst.sql:Zone.Identifier | Bin 25 -> 0 bytes .../05 dm_td_aia_is_eagle_flag.sql | 61 - ...m_td_aia_is_eagle_flag.sql:Zone.Identifier | Bin 25 -> 0 bytes .../for_AIA_Dashboard/06 dm_td_aia_rank.sql | 133 - .../06 dm_td_aia_rank.sql:Zone.Identifier | Bin 25 -> 0 bytes .../07 dm_ext_aia_data_remove_flag.sql | 111 - ...t_aia_data_remove_flag.sql:Zone.Identifier | Bin 25 -> 0 bytes .../07 dm_td_aia_remove_special_ins_bkp.py | 56 - ..._remove_special_ins_bkp.py:Zone.Identifier | Bin 25 -> 0 bytes .../08 dm_ext_aia_data_quality_flag.sql | 218 - ..._aia_data_quality_flag.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/z 01 dm_tf_external_sales.sql | 1187 ---- ...1 dm_tf_external_sales.sql:Zone.Identifier | Bin 25 -> 0 bytes ...m_td_external_market_pack_mapping_作废.sql | 1439 ---- ...rket_pack_mapping_作废.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/z 11 dm_td_external_market_作废.sql | 186 - ...d_external_market_作废.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/上线脚本.sql | 2461 ------- EXTERNAL/上线脚本.sql:Zone.Identifier | Bin 25 -> 0 bytes EXTERNAL/数据验证.sql | 39 - EXTERNAL/数据验证.sql:Zone.Identifier | Bin 25 -> 0 bytes README.md | 11 - 346 files changed, 61661 deletions(-) delete mode 100644 .gitignore delete mode 100644 EXTERNAL/01 dm_tf_external_sales.sql delete mode 100644 EXTERNAL/01 dm_tf_external_sales.sql:Zone.Identifier delete mode 100644 EXTERNAL/02 dm_td_external_keycompatitor.sql delete mode 100644 EXTERNAL/02 dm_td_external_keycompatitor.sql:Zone.Identifier delete mode 100644 EXTERNAL/03 dm_td_external_brand_market.sql delete mode 100644 EXTERNAL/03 dm_td_external_brand_market.sql:Zone.Identifier delete mode 100644 EXTERNAL/04 dm_td_external_calendar.sql delete mode 100644 EXTERNAL/04 dm_td_external_calendar.sql:Zone.Identifier delete mode 100644 EXTERNAL/05 dm_td_external_exchangerate.sql delete mode 100644 EXTERNAL/05 dm_td_external_exchangerate.sql:Zone.Identifier delete mode 100644 EXTERNAL/07 dm_td_external_packinfo.sql delete mode 100644 EXTERNAL/07 dm_td_external_packinfo.sql:Zone.Identifier delete mode 100644 EXTERNAL/08 dm_td_external_corp.sql delete mode 100644 EXTERNAL/08 dm_td_external_corp.sql:Zone.Identifier delete mode 100644 EXTERNAL/09 dm_td_external_geo_type.sql delete mode 100644 EXTERNAL/09 dm_td_external_geo_type.sql:Zone.Identifier delete mode 100644 EXTERNAL/11 DM_TD_EXTERNAL_MARKET_NEW.sql delete mode 100644 EXTERNAL/11 DM_TD_EXTERNAL_MARKET_NEW.sql:Zone.Identifier delete mode 100644 EXTERNAL/12 dm_td_external_org.sql delete mode 100644 EXTERNAL/12 dm_td_external_org.sql:Zone.Identifier delete mode 100644 EXTERNAL/13 external auth.sql delete mode 100644 EXTERNAL/13 external auth.sql:Zone.Identifier delete mode 100644 EXTERNAL/14 dm_tf_external_retail_special_bkp.sql delete mode 100644 EXTERNAL/14 dm_tf_external_retail_special_bkp.sql:Zone.Identifier delete mode 100644 EXTERNAL/AIA/01 dm_aia_pack_property.sql delete mode 100644 EXTERNAL/AIA/01 dm_aia_pack_property.sql:Zone.Identifier delete mode 100644 EXTERNAL/AIA/02 dm_ext_aia_sales.sql delete mode 100644 EXTERNAL/AIA/02 dm_ext_aia_sales.sql:Zone.Identifier delete mode 100644 EXTERNAL/AIA/02 dm_ext_aia_sales_bakup_20230327.sql delete mode 100644 EXTERNAL/AIA/02 dm_ext_aia_sales_bakup_20230327.sql:Zone.Identifier delete mode 100644 EXTERNAL/AIA/03 dm_aia_flag.sql delete mode 100644 EXTERNAL/AIA/03 dm_aia_flag.sql:Zone.Identifier delete mode 100644 EXTERNAL/AIA/04 dm_aia_provided_flag.sql delete mode 100644 EXTERNAL/AIA/04 dm_aia_provided_flag.sql:Zone.Identifier delete mode 100644 EXTERNAL/AIA/06 DM_TD_EXT_AIA_PACK_PROPERTY.sql delete mode 100644 EXTERNAL/AIA/06 DM_TD_EXT_AIA_PACK_PROPERTY.sql:Zone.Identifier delete mode 100644 EXTERNAL/AIA/07 DM_TD_EXT_AIA_PACK2MARKET.sql delete mode 100644 EXTERNAL/AIA/07 DM_TD_EXT_AIA_PACK2MARKET.sql:Zone.Identifier delete mode 100644 EXTERNAL/AIA/08 DM_TD_EXT_AIA_MARKET_RATIO.sql delete mode 100644 EXTERNAL/AIA/08 DM_TD_EXT_AIA_MARKET_RATIO.sql:Zone.Identifier delete mode 100644 EXTERNAL/AIA/09 DM_TD_EXT_AIA_MARKET_BRAND_RATIO.sql delete mode 100644 EXTERNAL/AIA/09 DM_TD_EXT_AIA_MARKET_BRAND_RATIO.sql:Zone.Identifier delete mode 100644 EXTERNAL/AIA/10 DM_TD_EXT_AIA_MARKET_PACK_MAPPING.sql delete mode 100644 EXTERNAL/AIA/10 DM_TD_EXT_AIA_MARKET_PACK_MAPPING.sql:Zone.Identifier delete mode 100644 EXTERNAL/AIA/11 dm_aia_targethp_flag.sql delete mode 100644 EXTERNAL/AIA/11 dm_aia_targethp_flag.sql:Zone.Identifier delete mode 100644 EXTERNAL/AIA/z_03 dm_aia_flag_备份用.sql delete mode 100644 EXTERNAL/AIA/z_03 dm_aia_flag_备份用.sql:Zone.Identifier delete mode 100644 EXTERNAL/CHC/01 dm_chc_pack_property.sql delete mode 100644 EXTERNAL/CHC/01 dm_chc_pack_property.sql:Zone.Identifier delete mode 100644 EXTERNAL/CHC/02 DM_TF_EXT_CHC_SALES.sql delete mode 100644 EXTERNAL/CHC/02 DM_TF_EXT_CHC_SALES.sql:Zone.Identifier delete mode 100644 EXTERNAL/CHC/03 DM_TD_EXT_CHC_PACK_PROPERTY.sql delete mode 100644 EXTERNAL/CHC/03 DM_TD_EXT_CHC_PACK_PROPERTY.sql:Zone.Identifier delete mode 100644 EXTERNAL/CHC/04 DM_TD_EXT_CHC_PACK2MARKET.sql delete mode 100644 EXTERNAL/CHC/04 DM_TD_EXT_CHC_PACK2MARKET.sql:Zone.Identifier delete mode 100644 EXTERNAL/CHC/05 DM_TD_EXT_CHC_MARKET_RATIO.sql delete mode 100644 EXTERNAL/CHC/05 DM_TD_EXT_CHC_MARKET_RATIO.sql:Zone.Identifier delete mode 100644 EXTERNAL/CHC/06 DM_TD_EXT_CHC_MARKET_BRAND_RATIO.sql delete mode 100644 EXTERNAL/CHC/06 DM_TD_EXT_CHC_MARKET_BRAND_RATIO.sql:Zone.Identifier delete mode 100644 EXTERNAL/CHC/07 DM_TD_EXT_CHC_MARKET_PACK_MAPPING.sql delete mode 100644 EXTERNAL/CHC/07 DM_TD_EXT_CHC_MARKET_PACK_MAPPING.sql:Zone.Identifier delete mode 100644 EXTERNAL/CHPA/01 dwd_ims_atc_hierarchy.sql delete mode 100644 EXTERNAL/CHPA/01 dwd_ims_atc_hierarchy.sql:Zone.Identifier delete mode 100644 EXTERNAL/CHPA/01 dwd_ims_nfc_hierarchy.sql delete mode 100644 EXTERNAL/CHPA/01 dwd_ims_nfc_hierarchy.sql:Zone.Identifier delete mode 100644 EXTERNAL/CHPA/01 dwd_ims_td_manufacturer_corp.sql delete mode 100644 EXTERNAL/CHPA/01 dwd_ims_td_manufacturer_corp.sql:Zone.Identifier delete mode 100644 EXTERNAL/CHPA/01 dwd_ims_td_pack_property.sql delete mode 100644 EXTERNAL/CHPA/01 dwd_ims_td_pack_property.sql:Zone.Identifier delete mode 100644 EXTERNAL/CHPA/01 dwd_update.sql delete mode 100644 EXTERNAL/CHPA/01 dwd_update.sql:Zone.Identifier delete mode 100644 EXTERNAL/CHPA/01_FB_BLOB_TO_DWD.sql delete mode 100644 EXTERNAL/CHPA/01_FB_BLOB_TO_DWD.sql:Zone.Identifier delete mode 100644 EXTERNAL/CHPA/02 DWS_IMS_TD_GEO.sql delete mode 100644 EXTERNAL/CHPA/02 DWS_IMS_TD_GEO.sql:Zone.Identifier delete mode 100644 EXTERNAL/CHPA/02 dws_ims_td_atc_cn.sql delete mode 100644 EXTERNAL/CHPA/02 dws_ims_td_atc_cn.sql:Zone.Identifier delete mode 100644 EXTERNAL/CHPA/02 dws_ims_td_corp_cn.sql delete mode 100644 EXTERNAL/CHPA/02 dws_ims_td_corp_cn.sql:Zone.Identifier delete mode 100644 EXTERNAL/CHPA/02 dws_ims_td_date.sql delete mode 100644 EXTERNAL/CHPA/02 dws_ims_td_date.sql:Zone.Identifier delete mode 100644 EXTERNAL/CHPA/02 dws_ims_td_manu_cn.sql delete mode 100644 EXTERNAL/CHPA/02 dws_ims_td_manu_cn.sql:Zone.Identifier delete mode 100644 EXTERNAL/CHPA/02 dws_ims_td_market.sql delete mode 100644 EXTERNAL/CHPA/02 dws_ims_td_market.sql:Zone.Identifier delete mode 100644 EXTERNAL/CHPA/02 dws_ims_td_market_ta.sql delete mode 100644 EXTERNAL/CHPA/02 dws_ims_td_market_ta.sql:Zone.Identifier delete mode 100644 EXTERNAL/CHPA/02 dws_ims_td_nfc_cn.sql delete mode 100644 EXTERNAL/CHPA/02 dws_ims_td_nfc_cn.sql:Zone.Identifier delete mode 100644 EXTERNAL/CHPA/02 dws_ims_td_prod_cn.sql delete mode 100644 EXTERNAL/CHPA/02 dws_ims_td_prod_cn.sql:Zone.Identifier delete mode 100644 EXTERNAL/CHPA/02 tmp_ims_td_prod_tmp.sql delete mode 100644 EXTERNAL/CHPA/02 tmp_ims_td_prod_tmp.sql:Zone.Identifier delete mode 100644 EXTERNAL/CHPA/02 tmp_ims_tf_fact_sales.sql delete mode 100644 EXTERNAL/CHPA/02 tmp_ims_tf_fact_sales.sql:Zone.Identifier delete mode 100644 EXTERNAL/CHPA/03 DM_TD_EXT_CHPA_MARKET_BRAND_RATIO.sql delete mode 100644 EXTERNAL/CHPA/03 DM_TD_EXT_CHPA_MARKET_BRAND_RATIO.sql:Zone.Identifier delete mode 100644 EXTERNAL/CHPA/03 DM_TD_EXT_CHPA_MARKET_PACK_MAPPING.sql delete mode 100644 EXTERNAL/CHPA/03 DM_TD_EXT_CHPA_MARKET_PACK_MAPPING.sql:Zone.Identifier delete mode 100644 EXTERNAL/CHPA/03 DM_TD_EXT_CHPA_MARKET_RATIO.sql delete mode 100644 EXTERNAL/CHPA/03 DM_TD_EXT_CHPA_MARKET_RATIO.sql:Zone.Identifier delete mode 100644 EXTERNAL/CHPA/03 DM_TD_EXT_CHPA_PACK2MARKET.sql delete mode 100644 EXTERNAL/CHPA/03 DM_TD_EXT_CHPA_PACK2MARKET.sql:Zone.Identifier delete mode 100644 EXTERNAL/CHPA/03 DM_TD_EXT_CHPA_PACK_PROPERTY.sql delete mode 100644 EXTERNAL/CHPA/03 DM_TD_EXT_CHPA_PACK_PROPERTY.sql:Zone.Identifier delete mode 100644 EXTERNAL/CHPA/03 DM_TF_EXT_CHPA_SALES.sql delete mode 100644 EXTERNAL/CHPA/03 DM_TF_EXT_CHPA_SALES.sql:Zone.Identifier delete mode 100644 EXTERNAL/CHPA/03 dm_ims_td_calendar.sql delete mode 100644 EXTERNAL/CHPA/03 dm_ims_td_calendar.sql:Zone.Identifier delete mode 100644 EXTERNAL/CHPA/03 dm_ims_td_geo.sql delete mode 100644 EXTERNAL/CHPA/03 dm_ims_td_geo.sql:Zone.Identifier delete mode 100644 EXTERNAL/CHPA/03 dm_ims_td_market_property.sql delete mode 100644 EXTERNAL/CHPA/03 dm_ims_td_market_property.sql:Zone.Identifier delete mode 100644 EXTERNAL/CHPA/03 dm_ims_td_org.sql delete mode 100644 EXTERNAL/CHPA/03 dm_ims_td_org.sql:Zone.Identifier delete mode 100644 EXTERNAL/CHPA/03 dm_ims_td_org_hvh.sql delete mode 100644 EXTERNAL/CHPA/03 dm_ims_td_org_hvh.sql:Zone.Identifier delete mode 100644 EXTERNAL/CHPA/03 dm_ims_td_pack_property.sql delete mode 100644 EXTERNAL/CHPA/03 dm_ims_td_pack_property.sql:Zone.Identifier delete mode 100644 EXTERNAL/CHPA/03 dm_ims_tf_sales.sql delete mode 100644 EXTERNAL/CHPA/03 dm_ims_tf_sales.sql:Zone.Identifier delete mode 100644 EXTERNAL/CHPA/03 dm_td_chpa_market_definition.sql delete mode 100644 EXTERNAL/CHPA/03 dm_td_chpa_market_definition.sql:Zone.Identifier delete mode 100644 EXTERNAL/CHPA/03 dm_td_ims_city_mapping.sql delete mode 100644 EXTERNAL/CHPA/03 dm_td_ims_city_mapping.sql:Zone.Identifier delete mode 100644 EXTERNAL/EC/03 ec_load_data.sql delete mode 100644 EXTERNAL/EC/03 ec_load_data.sql:Zone.Identifier delete mode 100644 EXTERNAL/EC/04 DM_TD_EXT_EC_PACK_PROPERTY.sql delete mode 100644 EXTERNAL/EC/04 DM_TD_EXT_EC_PACK_PROPERTY.sql:Zone.Identifier delete mode 100644 EXTERNAL/EC/05 DM_TF_EXT_EC_SALES.sql delete mode 100644 EXTERNAL/EC/05 DM_TF_EXT_EC_SALES.sql:Zone.Identifier delete mode 100644 EXTERNAL/EC/06 DM_TD_EXT_EC_PACK2MARKET.sql delete mode 100644 EXTERNAL/EC/06 DM_TD_EXT_EC_PACK2MARKET.sql:Zone.Identifier delete mode 100644 EXTERNAL/EC/07 DM_TD_EXT_EC_MARKET_RATIO.sql delete mode 100644 EXTERNAL/EC/07 DM_TD_EXT_EC_MARKET_RATIO.sql:Zone.Identifier delete mode 100644 EXTERNAL/EC/08 DM_TD_EXT_EC_MARKET_BRAND_RATIO.sql delete mode 100644 EXTERNAL/EC/08 DM_TD_EXT_EC_MARKET_BRAND_RATIO.sql:Zone.Identifier delete mode 100644 EXTERNAL/EC/09 DM_TD_EXT_EC_MARKET_PACK_MAPPING.sql delete mode 100644 EXTERNAL/EC/09 DM_TD_EXT_EC_MARKET_PACK_MAPPING.sql:Zone.Identifier delete mode 100644 EXTERNAL/EC/1 (ec)blob_to_dwd.sql delete mode 100644 EXTERNAL/EC/1 (ec)blob_to_dwd.sql:Zone.Identifier delete mode 100644 EXTERNAL/EC/2 dwd_inc_gnd_ext_ec_nationnal_pack_union_all.py delete mode 100644 EXTERNAL/EC/2 dwd_inc_gnd_ext_ec_nationnal_pack_union_all.py:Zone.Identifier delete mode 100644 EXTERNAL/Merged_Data/Merged_Data_Config_table_bkp.sql delete mode 100644 EXTERNAL/Merged_Data/Merged_Data_Config_table_bkp.sql:Zone.Identifier delete mode 100644 EXTERNAL/Merged_Data/Merged_Data_Config_table_bymonth.sql delete mode 100644 EXTERNAL/Merged_Data/Merged_Data_Config_table_bymonth.sql:Zone.Identifier delete mode 100644 EXTERNAL/Merged_Data/dm_tf_exteranl_sales_merged_data_dtp_others_bkp.sql delete mode 100644 EXTERNAL/Merged_Data/dm_tf_exteranl_sales_merged_data_dtp_others_bkp.sql:Zone.Identifier delete mode 100644 EXTERNAL/Merged_Data/dm_tf_exteranl_sales_merged_data_dtp_others_bymonth_bkp.sql delete mode 100644 EXTERNAL/Merged_Data/dm_tf_exteranl_sales_merged_data_dtp_others_bymonth_bkp.sql:Zone.Identifier delete mode 100644 EXTERNAL/ORG/DM_TD_EXT_AIA_ORG.sql delete mode 100644 EXTERNAL/ORG/DM_TD_EXT_AIA_ORG.sql:Zone.Identifier delete mode 100644 EXTERNAL/ORG/DM_TD_EXT_CHC_ORG.sql delete mode 100644 EXTERNAL/ORG/DM_TD_EXT_CHC_ORG.sql:Zone.Identifier delete mode 100644 EXTERNAL/ORG/DM_TD_EXT_CHPA_ORG.sql delete mode 100644 EXTERNAL/ORG/DM_TD_EXT_CHPA_ORG.sql:Zone.Identifier delete mode 100644 EXTERNAL/ORG/DM_TD_EXT_COUNTY_ORG.sql delete mode 100644 EXTERNAL/ORG/DM_TD_EXT_COUNTY_ORG.sql:Zone.Identifier delete mode 100644 EXTERNAL/ORG/DM_TD_EXT_EC_ORG.sql delete mode 100644 EXTERNAL/ORG/DM_TD_EXT_EC_ORG.sql:Zone.Identifier delete mode 100644 EXTERNAL/ORG/DM_TD_EXT_RETAIL_ORG.sql delete mode 100644 EXTERNAL/ORG/DM_TD_EXT_RETAIL_ORG.sql:Zone.Identifier delete mode 100644 EXTERNAL/ORG/DM_TD_EXT_THC_ORG.sql delete mode 100644 EXTERNAL/ORG/DM_TD_EXT_THC_ORG.sql:Zone.Identifier delete mode 100644 EXTERNAL/ORG/DM_TD_EXT_XIEHE_ORG.sql delete mode 100644 EXTERNAL/ORG/DM_TD_EXT_XIEHE_ORG.sql:Zone.Identifier delete mode 100644 EXTERNAL/OTHERS/01 dm_td_report_url.sql delete mode 100644 EXTERNAL/OTHERS/01 dm_td_report_url.sql:Zone.Identifier delete mode 100644 EXTERNAL/OTHERS/02 dws_ext_email_warning.sql delete mode 100644 EXTERNAL/OTHERS/02 dws_ext_email_warning.sql:Zone.Identifier delete mode 100644 EXTERNAL/OTHERS/external_triggered_email.py delete mode 100644 EXTERNAL/OTHERS/external_triggered_email.py:Zone.Identifier delete mode 100644 EXTERNAL/Retail/01 load_tmp_data.py delete mode 100644 EXTERNAL/Retail/01 load_tmp_data.py:Zone.Identifier delete mode 100644 EXTERNAL/Retail/02 split_brand_data.py delete mode 100644 EXTERNAL/Retail/02 split_brand_data.py:Zone.Identifier delete mode 100644 EXTERNAL/Retail/03 split_pack_data.py delete mode 100644 EXTERNAL/Retail/03 split_pack_data.py:Zone.Identifier delete mode 100644 EXTERNAL/Retail/04 map_to_dws_table.py delete mode 100644 EXTERNAL/Retail/04 map_to_dws_table.py:Zone.Identifier delete mode 100644 EXTERNAL/Retail/05 load_dtp_temp_data.py delete mode 100644 EXTERNAL/Retail/05 load_dtp_temp_data.py:Zone.Identifier delete mode 100644 EXTERNAL/Retail/06 split_dtp_brand_data.py delete mode 100644 EXTERNAL/Retail/06 split_dtp_brand_data.py:Zone.Identifier delete mode 100644 EXTERNAL/Retail/07 split_dtp_pack_data.py delete mode 100644 EXTERNAL/Retail/07 split_dtp_pack_data.py:Zone.Identifier delete mode 100644 EXTERNAL/Retail/08 map_to_dtp_dws_table.py delete mode 100644 EXTERNAL/Retail/08 map_to_dtp_dws_table.py:Zone.Identifier delete mode 100644 EXTERNAL/Retail/09 dwd_inc_gnd_ext_retail_nataional.py delete mode 100644 EXTERNAL/Retail/09 dwd_inc_gnd_ext_retail_nataional.py:Zone.Identifier delete mode 100644 EXTERNAL/Retail/10 map_to_retail_dm_table.py delete mode 100644 EXTERNAL/Retail/10 map_to_retail_dm_table.py:Zone.Identifier delete mode 100644 EXTERNAL/Retail/11 map_to_overview_dm_table.py delete mode 100644 EXTERNAL/Retail/11 map_to_overview_dm_table.py:Zone.Identifier delete mode 100644 EXTERNAL/Retail/12 dws_tf_external_retail_dtp_special.sql delete mode 100644 EXTERNAL/Retail/12 dws_tf_external_retail_dtp_special.sql:Zone.Identifier delete mode 100644 EXTERNAL/Retail/13 DM_TF_EXT_RETAIL_SALES.sql delete mode 100644 EXTERNAL/Retail/13 DM_TF_EXT_RETAIL_SALES.sql:Zone.Identifier delete mode 100644 EXTERNAL/Retail/14 DM_TF_EXT_RETAIL_DTP_SALES.sql delete mode 100644 EXTERNAL/Retail/14 DM_TF_EXT_RETAIL_DTP_SALES.sql:Zone.Identifier delete mode 100644 EXTERNAL/Retail/15 DM_TD_EXT_RETAIL_PACK_PROPERTY.sql delete mode 100644 EXTERNAL/Retail/15 DM_TD_EXT_RETAIL_PACK_PROPERTY.sql:Zone.Identifier delete mode 100644 EXTERNAL/Retail/16 DM_TD_EXT_RETAIL_DTP_PACK_PROPERTY.sql delete mode 100644 EXTERNAL/Retail/16 DM_TD_EXT_RETAIL_DTP_PACK_PROPERTY.sql:Zone.Identifier delete mode 100644 EXTERNAL/Retail/17 DM_TD_EXT_DTP_PACK2MARKET.sql delete mode 100644 EXTERNAL/Retail/17 DM_TD_EXT_DTP_PACK2MARKET.sql:Zone.Identifier delete mode 100644 EXTERNAL/Retail/17 DM_TD_EXT_RETAIL_PACK2MARKET.sql delete mode 100644 EXTERNAL/Retail/17 DM_TD_EXT_RETAIL_PACK2MARKET.sql:Zone.Identifier delete mode 100644 EXTERNAL/Retail/18 DM_TD_EXT_DTP_MARKET_RATIO.sql delete mode 100644 EXTERNAL/Retail/18 DM_TD_EXT_DTP_MARKET_RATIO.sql:Zone.Identifier delete mode 100644 EXTERNAL/Retail/18 DM_TD_EXT_RETAIL_MARKET_RATIO.sql delete mode 100644 EXTERNAL/Retail/18 DM_TD_EXT_RETAIL_MARKET_RATIO.sql:Zone.Identifier delete mode 100644 EXTERNAL/Retail/19 DM_TD_EXT_DTP_MARKET_BRAND_RATIO.sql delete mode 100644 EXTERNAL/Retail/19 DM_TD_EXT_DTP_MARKET_BRAND_RATIO.sql:Zone.Identifier delete mode 100644 EXTERNAL/Retail/19 DM_TD_EXT_RETAIL_MARKET_BRAND_RATIO.sql delete mode 100644 EXTERNAL/Retail/19 DM_TD_EXT_RETAIL_MARKET_BRAND_RATIO.sql:Zone.Identifier delete mode 100644 EXTERNAL/Retail/20 DM_TD_EXT_DTP_MARKET_PACK_MAPPING.sql delete mode 100644 EXTERNAL/Retail/20 DM_TD_EXT_DTP_MARKET_PACK_MAPPING.sql:Zone.Identifier delete mode 100644 EXTERNAL/Retail/20 DM_TD_EXT_RETAIL_MARKET_PACK_MAPPING.sql delete mode 100644 EXTERNAL/Retail/20 DM_TD_EXT_RETAIL_MARKET_PACK_MAPPING.sql:Zone.Identifier delete mode 100644 EXTERNAL/Retail/z1 dwd_inc_gnd_ext_retail_nataional_作废.py delete mode 100644 EXTERNAL/Retail/z1 dwd_inc_gnd_ext_retail_nataional_作废.py:Zone.Identifier delete mode 100644 EXTERNAL/Retail/z2 retail_load_data_作废.sql delete mode 100644 EXTERNAL/Retail/z2 retail_load_data_作废.sql:Zone.Identifier delete mode 100644 EXTERNAL/Retail/z3 retail_overview_data_作废.sql delete mode 100644 EXTERNAL/Retail/z3 retail_overview_data_作废.sql:Zone.Identifier delete mode 100644 EXTERNAL/THC/01 dm_thc_pack_property.sql delete mode 100644 EXTERNAL/THC/01 dm_thc_pack_property.sql:Zone.Identifier delete mode 100644 EXTERNAL/THC/02 dm_ext_thc_sales.sql delete mode 100644 EXTERNAL/THC/02 dm_ext_thc_sales.sql:Zone.Identifier delete mode 100644 EXTERNAL/THC/02 dm_ext_thc_sales_bakup_20260327.sql delete mode 100644 EXTERNAL/THC/02 dm_ext_thc_sales_bakup_20260327.sql:Zone.Identifier delete mode 100644 EXTERNAL/THC/03 DM_TF_EXT_THC_MARKET_SALES_CHT.sql delete mode 100644 EXTERNAL/THC/03 DM_TF_EXT_THC_MARKET_SALES_CHT.sql:Zone.Identifier delete mode 100644 EXTERNAL/THC/04 dm_tf_external_sales_thc.sql delete mode 100644 EXTERNAL/THC/04 dm_tf_external_sales_thc.sql:Zone.Identifier delete mode 100644 EXTERNAL/THC/05 DM_TD_EXT_THC_PACK_PROPERTY.sql delete mode 100644 EXTERNAL/THC/05 DM_TD_EXT_THC_PACK_PROPERTY.sql:Zone.Identifier delete mode 100644 EXTERNAL/THC/06 DM_TD_EXT_THC_PACK2MARKET.sql delete mode 100644 EXTERNAL/THC/06 DM_TD_EXT_THC_PACK2MARKET.sql:Zone.Identifier delete mode 100644 EXTERNAL/THC/07 DM_TD_EXT_THC_MARKET_RATIO.sql delete mode 100644 EXTERNAL/THC/07 DM_TD_EXT_THC_MARKET_RATIO.sql:Zone.Identifier delete mode 100644 EXTERNAL/THC/08 DM_TD_EXT_THC_MARKET_BRAND_RATIO.sql delete mode 100644 EXTERNAL/THC/08 DM_TD_EXT_THC_MARKET_BRAND_RATIO.sql:Zone.Identifier delete mode 100644 EXTERNAL/THC/09 DM_TD_EXT_THC_MARKET_PACK_MAPPING.sql delete mode 100644 EXTERNAL/THC/09 DM_TD_EXT_THC_MARKET_PACK_MAPPING.sql:Zone.Identifier delete mode 100644 EXTERNAL/UNIONALL/DM_TD_EXT_UNIONALL_MARKET_PACK_MAPPING.sql delete mode 100644 EXTERNAL/UNIONALL/DM_TD_EXT_UNIONALL_MARKET_PACK_MAPPING.sql:Zone.Identifier delete mode 100644 EXTERNAL/UNIONALL/DM_TD_EXT_UNIONALL_PACKINFO.sql delete mode 100644 EXTERNAL/UNIONALL/DM_TD_EXT_UNIONALL_PACKINFO.sql:Zone.Identifier delete mode 100644 EXTERNAL/UNIONALL/DM_TF_EXT_UNIONALL_MARKET_SALES.sql delete mode 100644 EXTERNAL/UNIONALL/DM_TF_EXT_UNIONALL_MARKET_SALES.sql:Zone.Identifier delete mode 100644 EXTERNAL/UNIONALL/DM_TF_EXT_UNIONALL_MARKET_SALES_v1.0.sql delete mode 100644 EXTERNAL/UNIONALL/DM_TF_EXT_UNIONALL_MARKET_SALES_v1.0.sql:Zone.Identifier delete mode 100644 EXTERNAL/UNIONALL/DM_TF_EXT_UNIONALL_SALES.sql delete mode 100644 EXTERNAL/UNIONALL/DM_TF_EXT_UNIONALL_SALES.sql:Zone.Identifier delete mode 100644 EXTERNAL/UNIONALL/DM_TF_EXT_UNIONALL_SALES_MAPPING.sql delete mode 100644 EXTERNAL/UNIONALL/DM_TF_EXT_UNIONALL_SALES_MAPPING.sql:Zone.Identifier delete mode 100644 EXTERNAL/UNIONALL/DM_TF_EXT_UNIONALL_SALES_MAPPING_NIAD.sql delete mode 100644 EXTERNAL/UNIONALL/DM_TF_EXT_UNIONALL_SALES_MAPPING_NIAD.sql:Zone.Identifier delete mode 100644 EXTERNAL/XIEHE/01 xiehe_blob_to_dwd.py delete mode 100644 EXTERNAL/XIEHE/01 xiehe_blob_to_dwd.py:Zone.Identifier delete mode 100644 EXTERNAL/XIEHE/02 dm_xiehe_pack_property.sql delete mode 100644 EXTERNAL/XIEHE/02 dm_xiehe_pack_property.sql:Zone.Identifier delete mode 100644 EXTERNAL/XIEHE/03 dm_ext_xiehe_geo.sql delete mode 100644 EXTERNAL/XIEHE/03 dm_ext_xiehe_geo.sql:Zone.Identifier delete mode 100644 EXTERNAL/XIEHE/04 dm_ext_xiehe_sales.sql delete mode 100644 EXTERNAL/XIEHE/04 dm_ext_xiehe_sales.sql:Zone.Identifier delete mode 100644 EXTERNAL/XIEHE/05 dm_td_xiehe_core_dept.sql delete mode 100644 EXTERNAL/XIEHE/05 dm_td_xiehe_core_dept.sql:Zone.Identifier delete mode 100644 EXTERNAL/XIEHE/06 DM_TF_EXT_XIEHE_SALES.sql delete mode 100644 EXTERNAL/XIEHE/06 DM_TF_EXT_XIEHE_SALES.sql:Zone.Identifier delete mode 100644 EXTERNAL/XIEHE/07 DM_TD_EXT_XIEHE_PACK_PROPERTY.sql delete mode 100644 EXTERNAL/XIEHE/07 DM_TD_EXT_XIEHE_PACK_PROPERTY.sql:Zone.Identifier delete mode 100644 EXTERNAL/XIEHE/08 DM_TD_EXT_XIEHE_PACK2MARKET.sql delete mode 100644 EXTERNAL/XIEHE/08 DM_TD_EXT_XIEHE_PACK2MARKET.sql:Zone.Identifier delete mode 100644 EXTERNAL/XIEHE/09 DM_TD_EXT_XIEHE_MARKET_RATIO.sql delete mode 100644 EXTERNAL/XIEHE/09 DM_TD_EXT_XIEHE_MARKET_RATIO.sql:Zone.Identifier delete mode 100644 EXTERNAL/XIEHE/10 DM_TD_EXT_XIEHE_MARKET_BRAND_RATIO.sql delete mode 100644 EXTERNAL/XIEHE/10 DM_TD_EXT_XIEHE_MARKET_BRAND_RATIO.sql:Zone.Identifier delete mode 100644 EXTERNAL/XIEHE/11 DM_TD_EXT_XIEHE_MARKET_PACK_MAPPING.sql delete mode 100644 EXTERNAL/XIEHE/11 DM_TD_EXT_XIEHE_MARKET_PACK_MAPPING.sql:Zone.Identifier delete mode 100644 EXTERNAL/XIEHE/bkp_01 xiehe_blob2dwd.py delete mode 100644 EXTERNAL/XIEHE/bkp_01 xiehe_blob2dwd.py:Zone.Identifier delete mode 100644 EXTERNAL/XIEHE/bkp_02 dm_ext_xiehe_sales.sql delete mode 100644 EXTERNAL/XIEHE/bkp_02 dm_ext_xiehe_sales.sql:Zone.Identifier delete mode 100644 EXTERNAL/XIEHE/bkp_03 dm_ext_xiehe_pack_property.sql delete mode 100644 EXTERNAL/XIEHE/bkp_03 dm_ext_xiehe_pack_property.sql:Zone.Identifier delete mode 100644 EXTERNAL/county/01 tmp_ims_county_fact_sales_sum.sql delete mode 100644 EXTERNAL/county/01 tmp_ims_county_fact_sales_sum.sql:Zone.Identifier delete mode 100644 EXTERNAL/county/02 tmp_imscounty_Result.sql delete mode 100644 EXTERNAL/county/02 tmp_imscounty_Result.sql:Zone.Identifier delete mode 100644 EXTERNAL/county/03 dm_ims_td_county_geo.sql delete mode 100644 EXTERNAL/county/03 dm_ims_td_county_geo.sql:Zone.Identifier delete mode 100644 EXTERNAL/county/04 dws_ext_county_tf_sales.sql delete mode 100644 EXTERNAL/county/04 dws_ext_county_tf_sales.sql:Zone.Identifier delete mode 100644 EXTERNAL/county/05 dm_ext_county_td_pack_property.sql delete mode 100644 EXTERNAL/county/05 dm_ext_county_td_pack_property.sql:Zone.Identifier delete mode 100644 EXTERNAL/county/06 dm_td_county_pack_region.sql delete mode 100644 EXTERNAL/county/06 dm_td_county_pack_region.sql:Zone.Identifier delete mode 100644 EXTERNAL/county/07 dm_ext_county_tf_sales_region.sql delete mode 100644 EXTERNAL/county/07 dm_ext_county_tf_sales_region.sql:Zone.Identifier delete mode 100644 EXTERNAL/county/08 DM_TD_EXT_COUNTY_PACK_PROPERTY.sql delete mode 100644 EXTERNAL/county/08 DM_TD_EXT_COUNTY_PACK_PROPERTY.sql:Zone.Identifier delete mode 100644 EXTERNAL/county/09 DM_TF_EXT_COUNTY_SALES.sql delete mode 100644 EXTERNAL/county/09 DM_TF_EXT_COUNTY_SALES.sql:Zone.Identifier delete mode 100644 EXTERNAL/county/10 DM_TD_EXT_COUNTY_PACK2MARKET.sql delete mode 100644 EXTERNAL/county/10 DM_TD_EXT_COUNTY_PACK2MARKET.sql:Zone.Identifier delete mode 100644 EXTERNAL/county/11 DM_TD_EXT_COUNTY_MARKET_RATIO.sql delete mode 100644 EXTERNAL/county/11 DM_TD_EXT_COUNTY_MARKET_RATIO.sql:Zone.Identifier delete mode 100644 EXTERNAL/county/12 DM_TD_EXT_COUNTY_MARKET_BRAND_RATIO.sql delete mode 100644 EXTERNAL/county/12 DM_TD_EXT_COUNTY_MARKET_BRAND_RATIO.sql:Zone.Identifier delete mode 100644 EXTERNAL/county/13 DM_TD_EXT_COUNTY_MARKET_PACK_MAPPING.sql delete mode 100644 EXTERNAL/county/13 DM_TD_EXT_COUNTY_MARKET_PACK_MAPPING.sql:Zone.Identifier delete mode 100644 EXTERNAL/for_AIA_Dashboard/01 dm_td_aia_inst_mkt.sql delete mode 100644 EXTERNAL/for_AIA_Dashboard/01 dm_td_aia_inst_mkt.sql:Zone.Identifier delete mode 100644 EXTERNAL/for_AIA_Dashboard/02 dm_td_aia_auth_sales.sql delete mode 100644 EXTERNAL/for_AIA_Dashboard/02 dm_td_aia_auth_sales.sql:Zone.Identifier delete mode 100644 EXTERNAL/for_AIA_Dashboard/03 dm_td_aia_original_col.sql delete mode 100644 EXTERNAL/for_AIA_Dashboard/03 dm_td_aia_original_col.sql:Zone.Identifier delete mode 100644 EXTERNAL/for_AIA_Dashboard/04 dm_td_aia_nosales_inst.sql delete mode 100644 EXTERNAL/for_AIA_Dashboard/04 dm_td_aia_nosales_inst.sql:Zone.Identifier delete mode 100644 EXTERNAL/for_AIA_Dashboard/05 dm_td_aia_is_eagle_flag.sql delete mode 100644 EXTERNAL/for_AIA_Dashboard/05 dm_td_aia_is_eagle_flag.sql:Zone.Identifier delete mode 100644 EXTERNAL/for_AIA_Dashboard/06 dm_td_aia_rank.sql delete mode 100644 EXTERNAL/for_AIA_Dashboard/06 dm_td_aia_rank.sql:Zone.Identifier delete mode 100644 EXTERNAL/for_AIA_Dashboard/07 dm_ext_aia_data_remove_flag.sql delete mode 100644 EXTERNAL/for_AIA_Dashboard/07 dm_ext_aia_data_remove_flag.sql:Zone.Identifier delete mode 100644 EXTERNAL/for_AIA_Dashboard/07 dm_td_aia_remove_special_ins_bkp.py delete mode 100644 EXTERNAL/for_AIA_Dashboard/07 dm_td_aia_remove_special_ins_bkp.py:Zone.Identifier delete mode 100644 EXTERNAL/for_AIA_Dashboard/08 dm_ext_aia_data_quality_flag.sql delete mode 100644 EXTERNAL/for_AIA_Dashboard/08 dm_ext_aia_data_quality_flag.sql:Zone.Identifier delete mode 100644 EXTERNAL/z 01 dm_tf_external_sales.sql delete mode 100644 EXTERNAL/z 01 dm_tf_external_sales.sql:Zone.Identifier delete mode 100644 EXTERNAL/z 10 dm_td_external_market_pack_mapping_作废.sql delete mode 100644 EXTERNAL/z 10 dm_td_external_market_pack_mapping_作废.sql:Zone.Identifier delete mode 100644 EXTERNAL/z 11 dm_td_external_market_作废.sql delete mode 100644 EXTERNAL/z 11 dm_td_external_market_作废.sql:Zone.Identifier delete mode 100644 EXTERNAL/上线脚本.sql delete mode 100644 EXTERNAL/上线脚本.sql:Zone.Identifier delete mode 100644 EXTERNAL/数据验证.sql delete mode 100644 EXTERNAL/数据验证.sql:Zone.Identifier delete mode 100644 README.md diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 7699118..0000000 --- a/.gitignore +++ /dev/null @@ -1,31 +0,0 @@ -# Python -__pycache__/ -*.py[cod] -*$py.class -*.so -.Python -env/ -venv/ -ENV/ - -# Databricks -.databricks/ -.databricks-bundles/ -*.dbc - -# IDE -.vscode/ -.idea/ -*.swp -*.swo - -# OS -.DS_Store -Thumbs.db - -# Logs -*.log - -# Environment variables -.env -.env.local diff --git a/EXTERNAL/01 dm_tf_external_sales.sql b/EXTERNAL/01 dm_tf_external_sales.sql deleted file mode 100644 index bff2cd2..0000000 --- a/EXTERNAL/01 dm_tf_external_sales.sql +++ /dev/null @@ -1,64 +0,0 @@ --- Databricks notebook source -insert overwrite table dm.dm_tf_external_sales -(YYYYMM, -PACK_COD, -CORP_COD, -AUDIT_COD, -PLATFORM_TYPE, -STORE_NAME, -STORE_TYPE, -REGION_TYPE, -PACK_FLAG, -PROD_FLAG, -DTP_FLAG, -SALES_UNIT_CAL, -SALES_UNIT_CAL_LY, -SALES_VALUE_CAL, -SALES_VALUE_CAL_LY, -CONUTING_UNIT, -CONUTING_UNIT_LY, -DATA_SOURCE, -inst_code, -cmps_flag, -dept_name, -prescription, -prescription_ly, -new_code, -area, -h_level, -reimburse, -reimburse_type, -prescription_source -) -select -YYYYMM, -PACK_CODE AS PACK_COD, -CORP_CODE AS CORP_COD, -AUDIT_CODE AS AUDIT_COD, -PLATFORM_TYPE, -STORE_NAME, -STORE_TYPE, -REGION_TYPE, -PACK_FLAG, -PROD_FLAG, -DTP_FLAG, -SALES_UNIT_CAL, -SALES_UNIT_CAL_LY, -SALES_VALUE_CAL, -SALES_VALUE_CAL_LY, -CONUTING_UNIT, -CONUTING_UNIT_LY, -DATA_SOURCE, -inst_code, -cmps_flag, -dept_name, -prescription, -prescription_ly, -new_code, -area, -h_level, -reimburse, -reimburse_type, -prescription_source -from - dm.DM_TF_EXT_UNIONALL_SALES \ No newline at end of file diff --git a/EXTERNAL/01 dm_tf_external_sales.sql:Zone.Identifier b/EXTERNAL/01 dm_tf_external_sales.sql:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2xdl#JyUFr831@K2x '' THEN 'VBP' - ELSE 'NonVBP' - END VBPFLAG, - A.VALUETYPE, - A.Strategicbrand, - REPLACE(NVL(A.CompatitorMarket, ''), 'null', '') CompatitorMarket, - REPLACE(NVL(A.CompatitorType, ''), 'null', '') CompatitorType, - CASE - WHEN A.TA = 'CV' THEN 2 - WHEN A.TA = 'DM' THEN 1 - WHEN A.TA = 'RD' THEN 3 - WHEN A.TA = 'RE' THEN 4 - WHEN A.TA = 'NEB' THEN 5 - WHEN A.TA = 'GI' THEN 6 - WHEN A.TA = 'ONC' THEN 7 - WHEN A.TA = 'RARE' THEN 8 - END TA_RN, - CASE - when A.DATA_SOURCE = 'IQVIA-County(Quarterly)' THEN 'IQVIA-COUNTY(Quarterly)' - ELSE A.DATA_SOURCE - END DATA_SOURCE - FROM - dm.DM_TD_EXTERNAL_KEYCOMPATITOR A \ No newline at end of file diff --git a/EXTERNAL/03 dm_td_external_brand_market.sql:Zone.Identifier b/EXTERNAL/03 dm_td_external_brand_market.sql:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2x= C.min_yyyymm AND A.yyyymm <=C.yyyymm - THEN A.YYYYMM - ELSE NULL - end as YYYYMM_EXTERNAL_AIA, - case - when A.yyyymm = D.NIAD_MONTH THEN 'R' - else A.yyyymm - end as YYYYMM_EXTERNAL_NIAD, - case - when A.yyyymm = E.MERGED_DATA_MONTH THEN 'R' - when A.yyyymm >= E.MERGED_DATA_MONTH_START AND A.YYYYMM<= E.MERGED_DATA_MONTH THEN A.yyyymm - else null - end as YYYYMM_MERGED_DATA - from - tmp_calendar A - join ( - select - MAX(YYYYMM) YYYYMM - from - external_sales_union - where - SALES_VALUE_CAL <> 0 - ) B - on 1 = 1 - --获得AIA数据的最新月 - cross join ( - select - max(YYYYMM) as YYYYMM,min(yyyymm) AS min_yyyymm - from - dm.dm_tf_ext_unionall_sales - where - DATA_SOURCE = 'AIA(Monthly)' - and SALES_VALUE_CAL <> 0 - ) C - left join retail_niad_sales AS D - left join merged_date_calender as E - WHERE - A.yyyymm >= ( - SELECT - MIN(YYYYMM) - FROM - external_sales_union - ) - AND A.yyyymm <= (LEFT(D.YYYYMM, 4) * 100 + 12) - AND A.day = 1 \ No newline at end of file diff --git a/EXTERNAL/04 dm_td_external_calendar.sql:Zone.Identifier b/EXTERNAL/04 dm_td_external_calendar.sql:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2xdl#JyUFr831@K2x 'Others' -and pack_code <> '' -----避免单独NIAD部分pack不存在于dm.dm_tf_external_sales中 -union all -select distinct -pack_cod, -DATA_SOURCE, -null as PACK_FLAG, -null CORP_COD, -0 as SALES_VALUE_CAL, -'' as dept_name, -'' as new_code, -'' as area, -'' as YYYYMM -from dm.dm_tf_external_sales_niad -where NVL(pack_cod,'Others') <> 'Others' -and pack_cod <> '' - --- COMMAND ---------- - -----------------------------------------------------------为了避免数据量过大只获取了有销量的产品数据--------------------------------- ----------------------------pack code是唯一,不允许重复或为空----------------------------------------------------- -insert overwrite dm.dm_td_external_packinfo_temp ( - PACK_COD, - PACK_DES, - STGH_DES, - PACK_LCH, - 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, - IS_AZ, - AZ_MAIN, - 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, - GEN_RN -) - SELECT - A.PACK_COD, - MAX(B.PACK_DES) PACK_DES, - MAX(B.STGH_DES) STGH_DES, - MAX(B.PACK_LCH) PACK_LCH, - MAX(B.PROD_COD) PROD_COD, - MAX(B.PROD_DES) PROD_DES, - MAX(B.PROD_DES_C) PROD_DES_C, - MAX(B.CMPS_COD) CMPS_COD, - MAX(B.CMPS_DES) CMPS_DES, - MAX(B.CMPS_DES_C) CMPS_DES_C, - MAX(B.ATC1_COD) ATC1_COD, - MAX(B.ATC2_COD) ATC2_COD, - MAX(B.ATC3_COD) ATC3_COD, - MAX(B.ATC4_COD) ATC4_COD, - MAX(B.APP1_COD) APP1_COD, - MAX(B.APP2_COD) APP2_COD, - MAX(B.APP3_COD) APP3_COD, - MAX(B.BIO_DESC) BIO_DESC, - MAX(B.GENE_ORIG_DESC) GENE_ORIG_DESC, - MAX(B.ETH_OTC_DESC) ETH_OTC_DESC, - MAX(B.NRDL_DESC) NRDL_DESC, - MAX(B.NRDL_ENTRY_DATE) NRDL_ENTRY_DATE, - MAX(B.EDL_DESC) EDL_DESC, - MAX(B.TCM_DESC) TCM_DESC, - MAX(B.PAED_DESC) PAED_DESC, - MAX(B.GQCE_DESC) GQCE_DESC, - CASE - WHEN MAX(B.VBP_DESC_V) = 'VBP-IN' THEN 'VBP-IN' - WHEN MAX(B.VBP_DESC_V) LIKE '%VBP%' THEN 'VBP-OUT' - WHEN MAX(B.VBP_DESC_V) IS NOT NULL THEN 'Non VBP' - ELSE NULL - END VBP_DESC, - MAX(B.MANU_COD) MANU_COD, - MAX(B.MANU_DES) MANU_DES, - MAX(B.MANU_DES_C) MANU_DES_C, - MAX(B.MNFL_COD) MNFL_COD, - MAX(B.MNFL_DES) MNFL_DES, - MAX(B.CORP_COD) CORP_COD, - MAX(B.CORP_DES) CORP_DES, - MAX(B.CORP_DES_C) CORP_DES_C, - MAX(B.BRANDTYPE) BRANDTYPE, - MAX(B.IS_AZ) IS_AZ, - MAX(B.AZ_MAIN) AZ_MAIN, - MAX(B.ATC1_DES) ATC1_DES, - MAX(B.ATC1_DES_C) ATC1_DES_C, - MAX(B.ATC2_DES) ATC2_DES, - MAX(B.ATC2_DES_C) ATC2_DES_C, - MAX(B.ATC3_DES) ATC3_DES, - MAX(B.ATC3_DES_C) ATC3_DES_C, - MAX(B.ATC4_DES) ATC4_DES, - MAX(B.ATC4_DES_C) ATC4_DES_C, - MAX(B.APP1_DES) APP1_DES, - MAX(B.APP1_DES_C) APP1_DES_C, - MAX(B.APP2_DES) APP2_DES, - MAX(B.APP2_DES_C) APP2_DES_C, - MAX(B.APP3_DES) APP3_DES, - MAX(B.APP3_DES_C) APP3_DES_C, - CASE - WHEN MAX(B.GENE_ORIG_DESC) = 'ORIG' THEN 1 - WHEN MAX(B.GENE_ORIG_DESC) = 'Branded Gen' THEN 2 - WHEN MAX(B.GENE_ORIG_DESC) = 'Unbranded Gen' THEN 3 - WHEN MAX(B.GENE_ORIG_DESC) = 'TCM' THEN 4 - ELSE 5 - END GEN_RN - FROM - ( - SELECT DISTINCT - PACK_COD - FROM - external_sales_union-- WHERE YYYYMM >= (SELECT CAST((LEFT(MAX(YYYYMM),4)-3)*100+1 AS INT) FROM DM.DM_TF_EXTERNAL_SALES)) A - - ) A - LEFT JOIN DM.DM_IMS_TD_PACK_PROPERTY B - ON B.PACK_COD = A.PACK_COD - WHERE - NVL(A.PACK_COD, '') <> '' - GROUP BY - A.PACK_COD - --- COMMAND ---------- - --------------------------------------------------------------补充COUNTY部分缺失的pack 维度-------------------------------------------------------------------------------------------- ---01 根据主表数据(带多个source)关联chpa的pack_porperty表,取出相关维度 ---02 按照步骤1,chpa中没有的packcode,他的维度字段会被置为空,所以要关联我们自己处理好的维度表,来补充相关维度 -insert overwrite table tmp.tmp_county_dm_td_external_packinfo -with temp as ( -- 临时表补充维度 - SELECT - b.PACK_COD,MAX(B.PACK_DES) PACK_DES,MAX(B.STGH_DES) STGH_DES,MAX(B.PACK_LCH) PACK_LCH,MAX(B.PROD_COD) PROD_COD,MAX(B.PROD_DES) PROD_DES,MAX(B.PROD_DES_C) PROD_DES_C,MAX(B.CMPS_COD) CMPS_COD, -MAX(B.CMPS_DES) CMPS_DES,MAX(B.CMPS_DES) CMPS_DES_C,MAX(B.ATC1_COD) ATC1_COD,MAX(B.ATC2_COD) ATC2_COD,MAX(B.ATC3_COD) ATC3_COD,MAX(B.ATC4_COD) ATC4_COD,MAX(B.APP1_COD) APP1_COD,MAX(B.APP2_COD) APP2_COD, -MAX(B.APP3_COD) APP3_COD,MAX(B.BIO_DESC) BIO_DESC,MAX(B.GENE_ORIG_DESC) GENE_ORIG_DESC,MAX(B.ETH_OTC_DESC) ETH_OTC_DESC,MAX(B.NRDL_DESC) NRDL_DESC,MAX(B.NRDL_ENTRY_DATE) NRDL_ENTRY_DATE,MAX(B.EDL_DESC) EDL_DESC, -MAX(B.TCM_DESC) TCM_DESC,MAX(B.PAED_DESC) PAED_DESC,MAX(B.GQCE_DESC) GQCE_DESC, -CASE WHEN MAX(B.VBP_DESC) = 'VBP-IN' THEN 'VBP-IN' WHEN MAX(B.VBP_DESC) LIKE '%VBP%' THEN 'VBP-OUT' WHEN MAX(B.VBP_DESC) IS NOT NULL THEN 'Non VBP' ELSE NULL END VBP_DESC,MAX(B.MANU_COD) MANU_COD,MAX(B.MANU_DES) MANU_DES,MAX(B.MANU_DES) MANU_DES_C,MAX(B.MNFL_COD) MNFL_COD, -MAX(B.MNFL_DES) MNFL_DES,MAX(B.CORP_COD) CORP_COD,MAX(B.CORP_DES) CORP_DES,MAX(B.CORP_DES_C) CORP_DES_C,MAX(B.BRANDTYPE) BRANDTYPE,MAX(B.IS_AZ) IS_AZ,MAX(B.AZ_MAIN) AZ_MAIN,MAX(B.ATC1_DES) ATC1_DES, -MAX(B.ATC1_DES_C) ATC1_DES_C,MAX(B.ATC2_DES) ATC2_DES,MAX(B.ATC2_DES_C) ATC2_DES_C,MAX(B.ATC3_DES) ATC3_DES,MAX(B.ATC3_DES_C) ATC3_DES_C,MAX(B.ATC4_DES) ATC4_DES,MAX(B.ATC4_DES_C) ATC4_DES_C,MAX(B.APP1_DES) APP1_DES, -MAX(B.APP1_DES_C) APP1_DES_C,MAX(B.APP2_DES) APP2_DES,MAX(B.APP2_DES_C) APP2_DES_C,MAX(B.APP3_DES) APP3_DES,MAX(B.APP3_DES_C) APP3_DES_C, -CASE WHEN MAX(B.GENE_ORIG_DESC) = 'ORIG' THEN 1 WHEN MAX(B.GENE_ORIG_DESC) = 'Branded Gen' THEN 2 WHEN MAX(B.GENE_ORIG_DESC) = 'Unbranded Gen' THEN 3 WHEN MAX(B.GENE_ORIG_DESC) = 'TCM' THEN 4 ELSE 5 END GEN_RN -FROM dm.dm_ext_county_td_pack_property b - GROUP BY b.PACK_COD -) -select - A.PACK_COD - ,case when A.PACK_DES ='' or A.PACK_DES is null then B.PACK_DES else A.PACK_DES end AS PACK_DES - ,case when A.STGH_DES ='' or A.STGH_DES is null then B.STGH_DES else A.STGH_DES end AS STGH_DES - ,case when A.PACK_LCH ='' or A.PACK_LCH is null then B.PACK_LCH else A.PACK_LCH end AS PACK_LCH - ,case when A.PROD_COD ='' or A.PROD_COD is null then B.PROD_COD else A.PROD_COD end AS PROD_COD - ,case when A.PROD_DES ='' or A.PROD_DES is null then B.PROD_DES else A.PROD_DES end AS PROD_DES - ,case when A.PROD_DES_C ='' or A.PROD_DES_C is null then B.PROD_DES_C else A.PROD_DES_C end AS PROD_DES_C - ,case when A.CMPS_COD ='' or A.CMPS_COD is null then B.CMPS_COD else A.CMPS_COD end AS CMPS_COD - ,case when A.CMPS_DES ='' or A.CMPS_DES is null then B.CMPS_DES else A.CMPS_DES end AS CMPS_DES - ,case when A.CMPS_DES_C ='' or A.CMPS_DES_C is null then B.CMPS_DES_C else A.CMPS_DES_C end AS CMPS_DES_C - ,case when A.ATC1_COD ='' or A.ATC1_COD is null then B.ATC1_COD else A.ATC1_COD end AS ATC1_COD - ,case when A.ATC2_COD ='' or A.ATC2_COD is null then B.ATC2_COD else A.ATC2_COD end AS ATC2_COD - ,case when A.ATC3_COD ='' or A.ATC3_COD is null then B.ATC3_COD else A.ATC3_COD end AS ATC3_COD - ,case when A.ATC4_COD ='' or A.ATC4_COD is null then B.ATC4_COD else A.ATC4_COD end AS ATC4_COD - ,case when A.APP1_COD ='' or A.APP1_COD is null then B.APP1_COD else A.APP1_COD end AS APP1_COD - ,case when A.APP2_COD ='' or A.APP2_COD is null then B.APP2_COD else A.APP2_COD end AS APP2_COD - ,case when A.APP3_COD ='' or A.APP3_COD is null then B.APP3_COD else A.APP3_COD end AS APP3_COD - ,case when A.BIO_DESC ='' or A.BIO_DESC is null then B.BIO_DESC else A.BIO_DESC end AS BIO_DESC - ,case when A.GENE_ORIG_DESC ='' or A.GENE_ORIG_DESC is null then B.GENE_ORIG_DESC else A.GENE_ORIG_DESC end AS GENE_ORIG_DESC - ,case when A.ETH_OTC_DESC ='' or A.ETH_OTC_DESC is null then B.ETH_OTC_DESC else A.ETH_OTC_DESC end AS ETH_OTC_DESC - ,case when A.NRDL_DESC ='' or A.NRDL_DESC is null then B.NRDL_DESC else A.NRDL_DESC end AS NRDL_DESC - ,case when A.NRDL_ENTRY_DATE='' or A.NRDL_ENTRY_DATE is null then B.NRDL_ENTRY_DATE else A.NRDL_ENTRY_DATE end AS NRDL_ENTRY_DATE - ,case when A.EDL_DESC ='' or A.EDL_DESC is null then B.EDL_DESC else A.EDL_DESC end AS EDL_DESC - ,case when A.TCM_DESC ='' or A.TCM_DESC is null then B.TCM_DESC else A.TCM_DESC end AS TCM_DESC - ,case when A.PAED_DESC ='' or A.PAED_DESC is null then B.PAED_DESC else A.PAED_DESC end AS PAED_DESC - ,case when A.GQCE_DESC ='' or A.GQCE_DESC is null then B.GQCE_DESC else A.GQCE_DESC end AS GQCE_DESC - ,case when A.VBP_DESC ='' or A.VBP_DESC is null then B.VBP_DESC else A.VBP_DESC end AS VBP_DESC - ,case when A.MANU_COD ='' or A.MANU_COD is null then B.MANU_COD else A.MANU_COD end AS MANU_COD - ,case when A.MANU_DES ='' or A.MANU_DES is null then B.MANU_DES else A.MANU_DES end AS MANU_DES - ,case when A.MANU_DES_C ='' or A.MANU_DES_C is null then B.MANU_DES_C else A.MANU_DES_C end AS MANU_DES_C - ,case when A.MNFL_COD ='' or A.MNFL_COD is null then B.MNFL_COD else A.MNFL_COD end AS MNFL_COD - ,case when A.MNFL_DES ='' or A.MNFL_DES is null then B.MNFL_DES else A.MNFL_DES end AS MNFL_DES - ,case when A.CORP_COD ='' or A.CORP_COD is null then B.CORP_COD else A.CORP_COD end AS CORP_COD -- THC存在CORP_COD 归属不一致问题 - ,REPLACE( case when A.CORP_DES ='' or A.CORP_DES is null then B.CORP_DES else A.CORP_DES end ,' GROUP', '' ) as CORP_DES -- 消除group - ,case when A.CORP_DES_C ='' or A.CORP_DES_C is null then B.CORP_DES_C else A.CORP_DES_C end AS CORP_DES_C - ,case when A.BRANDTYPE ='' or A.BRANDTYPE is null then B.BRANDTYPE else A.BRANDTYPE end AS BRANDTYPE - ,case when A.IS_AZ ='' or A.IS_AZ is null then B.IS_AZ else A.IS_AZ end AS IS_AZ - ,case when A.AZ_MAIN ='' or A.AZ_MAIN is null then B.AZ_MAIN else A.AZ_MAIN end AS AZ_MAIN - ,case when A.ATC1_DES ='' or A.ATC1_DES is null then B.ATC1_DES else A.ATC1_DES end AS ATC1_DES - ,case when A.ATC1_DES_C ='' or A.ATC1_DES_C is null then B.ATC1_DES_C else A.ATC1_DES_C end AS ATC1_DES_C - ,case when A.ATC2_DES ='' or A.ATC2_DES is null then B.ATC2_DES else A.ATC2_DES end AS ATC2_DES - ,case when A.ATC2_DES_C ='' or A.ATC2_DES_C is null then B.ATC2_DES_C else A.ATC2_DES_C end AS ATC2_DES_C - ,case when A.ATC3_DES ='' or A.ATC3_DES is null then B.ATC3_DES else A.ATC3_DES end AS ATC3_DES - ,case when A.ATC3_DES_C ='' or A.ATC3_DES_C is null then B.ATC3_DES_C else A.ATC3_DES_C end AS ATC3_DES_C - ,case when A.ATC4_DES ='' or A.ATC4_DES is null then B.ATC4_DES else A.ATC4_DES end AS ATC4_DES - ,case when A.ATC4_DES_C ='' or A.ATC4_DES_C is null then B.ATC4_DES_C else A.ATC4_DES_C end AS ATC4_DES_C - ,case when A.APP1_DES ='' or A.APP1_DES is null then B.APP1_DES else A.APP1_DES end AS APP1_DES - ,case when A.APP1_DES_C ='' or A.APP1_DES_C is null then B.APP1_DES_C else A.APP1_DES_C end AS APP1_DES_C - ,case when A.APP2_DES ='' or A.APP2_DES is null then B.APP2_DES else A.APP2_DES end AS APP2_DES - ,case when A.APP2_DES_C ='' or A.APP2_DES_C is null then B.APP2_DES_C else A.APP2_DES_C end AS APP2_DES_C - ,case when A.APP3_DES ='' or A.APP3_DES is null then B.APP3_DES else A.APP3_DES end AS APP3_DES - ,case when A.APP3_DES_C ='' or A.APP3_DES_C is null then B.APP3_DES_C else A.APP3_DES_C end AS APP3_DES_C - ,case when A.GEN_RN ='' or A.GEN_RN is null then B.GEN_RN else A.GEN_RN end AS GEN_RN -FROM dm.dm_td_external_packinfo_temp a -LEFT JOIN temp B -ON B.PACK_COD = A.PACK_COD ; - -insert overwrite dm.dm_td_external_packinfo_temp( - PACK_COD ,PACK_DES,STGH_DES,PACK_LCH,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,IS_AZ,AZ_MAIN,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,GEN_RN -) -select * from tmp.tmp_county_dm_td_external_packinfo - --- COMMAND ---------- - --------------------------------------------------------------补充THC部分缺失的pack 维度-------------------------------------------------------------------------------------------- ---01 根据主表数据(带多个source)关联chpa的pack_porperty表,取出相关维度 ---02 按照步骤1,chpa中没有的packcode,他的维度字段会被置为空,所以要关联我们自己处理好的维度表,来补充相关维度 -insert overwrite table tmp.tmp_thc_dm_td_external_packinfo -with temp as ( -- 临时表补充维度 - SELECT - iqvia_pack_code PACK_COD, - MAX(B.PACK_DES) PACK_DES, - MAX(B.STGH_DES) STGH_DES, - MAX(B.PACK_LCH) PACK_LCH, - MAX(B.iqvia_prod_code) PROD_COD, - MAX(B.PROD_DES) PROD_DES, - MAX(B.PROD_DES_C) PROD_DES_C, - MAX(B.CMPS_COD) CMPS_COD, - MAX(B.CMPS_DES) CMPS_DES, - MAX(B.CMPS_DES_C) CMPS_DES_C, - MAX(B.ATC1_COD) ATC1_COD, - MAX(B.ATC2_COD) ATC2_COD, - MAX(B.ATC3_COD) ATC3_COD, - MAX(B.ATC4_COD) ATC4_COD, - MAX(B.APP1_COD) APP1_COD, - MAX(B.APP2_COD) APP2_COD, - MAX(B.APP3_COD) APP3_COD, - MAX(B.BIO_DESC) BIO_DESC, - MAX(B.GENE_ORIG_DESC) GENE_ORIG_DESC, - MAX(B.ETH_OTC_DESC) ETH_OTC_DESC, - MAX(B.NRDL_DESC) NRDL_DESC, - null as NRDL_ENTRY_DATE, - MAX(B.EDL_DESC) EDL_DESC, - MAX(B.TCM_DESC) TCM_DESC, - MAX(B.PAED_DESC) PAED_DESC, - MAX(B.GQCE_DESC) GQCE_DESC, - NULL AS VBP_DESC, - MAX(B.MANU_COD) MANU_COD, - MAX(B.MANU_DES) MANU_DES, - MAX(B.MANU_DES_C) MANU_DES_C, - MAX(B.MNFL_COD) MNFL_COD, - MAX(B.MNFL_DES) MNFL_DES, - max(B.CORP_COD) as CORP_COD, - max(B.CORP_DES) as CORP_DES, - --coalesce(MAX(C.CORP_COD) ,MAX(B.CORP_COD) ) CORP_COD, -- THC存在CORP_COD 归属不一致问题 - --REPLACE( coalesce( MAX(C.CORP_DES) ,MAX(B.CORP_DES) ) , ' GROUP', '' ) as CORP_DES, - MAX(B.CORP_DES_C) CORP_DES_C, - null as BRANDTYPE, - null as IS_AZ, - null as AZ_MAIN, - MAX(B.ATC1_DES) ATC1_DES, - MAX(B.ATC1_DES_C) ATC1_DES_C, - MAX(B.ATC2_DES) ATC2_DES, - MAX(B.ATC2_DES_C) ATC2_DES_C, - MAX(B.ATC3_DES) ATC3_DES, - MAX(B.ATC3_DES_C) ATC3_DES_C, - MAX(B.ATC4_DES) ATC4_DES, - MAX(B.ATC4_DES_C) ATC4_DES_C, - MAX(B.APP1_DES) APP1_DES, - MAX(B.APP1_DES_C) APP1_DES_C, - MAX(B.APP2_DES) APP2_DES, - MAX(B.APP2_DES_C) APP2_DES_C, - MAX(B.APP3_DES) APP3_DES, - MAX(B.APP3_DES_C) APP3_DES_C, - CASE WHEN MAX(B.GENE_ORIG_DESC) = 'ORIG' THEN 1 - WHEN MAX(B.GENE_ORIG_DESC) = 'Branded Gen' THEN 2 - WHEN MAX(B.GENE_ORIG_DESC) = 'Unbranded Gen' THEN 3 - WHEN MAX(B.GENE_ORIG_DESC) = 'TCM' THEN 4 - ELSE 5 -END GEN_RN -FROM dwd.dwd_gnd_ext_thc_pack_property B - GROUP BY B.iqvia_pack_code -) -select - A.PACK_COD - ,case when A.PACK_DES ='' or A.PACK_DES is null then B.PACK_DES else A.PACK_DES end AS PACK_DES - ,case when A.STGH_DES ='' or A.STGH_DES is null then B.STGH_DES else A.STGH_DES end AS STGH_DES - ,case when A.PACK_LCH ='' or A.PACK_LCH is null then B.PACK_LCH else A.PACK_LCH end AS PACK_LCH - ,case when A.PROD_COD ='' or A.PROD_COD is null then B.PROD_COD else A.PROD_COD end AS PROD_COD - ,case when A.PROD_DES ='' or A.PROD_DES is null then B.PROD_DES else A.PROD_DES end AS PROD_DES - ,case when A.PROD_DES_C ='' or A.PROD_DES_C is null then B.PROD_DES_C else A.PROD_DES_C end AS PROD_DES_C - ,case when A.CMPS_COD ='' or A.CMPS_COD is null then B.CMPS_COD else A.CMPS_COD end AS CMPS_COD - ,case when A.CMPS_DES ='' or A.CMPS_DES is null then B.CMPS_DES else A.CMPS_DES end AS CMPS_DES - ,case when A.CMPS_DES_C ='' or A.CMPS_DES_C is null then B.CMPS_DES_C else A.CMPS_DES_C end AS CMPS_DES_C - ,case when A.ATC1_COD ='' or A.ATC1_COD is null then B.ATC1_COD else A.ATC1_COD end AS ATC1_COD - ,case when A.ATC2_COD ='' or A.ATC2_COD is null then B.ATC2_COD else A.ATC2_COD end AS ATC2_COD - ,case when A.ATC3_COD ='' or A.ATC3_COD is null then B.ATC3_COD else A.ATC3_COD end AS ATC3_COD - ,case when A.ATC4_COD ='' or A.ATC4_COD is null then B.ATC4_COD else A.ATC4_COD end AS ATC4_COD - ,case when A.APP1_COD ='' or A.APP1_COD is null then B.APP1_COD else A.APP1_COD end AS APP1_COD - ,case when A.APP2_COD ='' or A.APP2_COD is null then B.APP2_COD else A.APP2_COD end AS APP2_COD - ,case when A.APP3_COD ='' or A.APP3_COD is null then B.APP3_COD else A.APP3_COD end AS APP3_COD - ,case when A.BIO_DESC ='' or A.BIO_DESC is null then B.BIO_DESC else A.BIO_DESC end AS BIO_DESC - ,case when A.GENE_ORIG_DESC ='' or A.GENE_ORIG_DESC is null then B.GENE_ORIG_DESC else A.GENE_ORIG_DESC end AS GENE_ORIG_DESC - ,case when A.ETH_OTC_DESC ='' or A.ETH_OTC_DESC is null then B.ETH_OTC_DESC else A.ETH_OTC_DESC end AS ETH_OTC_DESC - ,case when A.NRDL_DESC ='' or A.NRDL_DESC is null then B.NRDL_DESC else A.NRDL_DESC end AS NRDL_DESC - ,case when A.NRDL_ENTRY_DATE='' or A.NRDL_ENTRY_DATE is null then B.NRDL_ENTRY_DATE else A.NRDL_ENTRY_DATE end AS NRDL_ENTRY_DATE - ,case when A.EDL_DESC ='' or A.EDL_DESC is null then B.EDL_DESC else A.EDL_DESC end AS EDL_DESC - ,case when A.TCM_DESC ='' or A.TCM_DESC is null then B.TCM_DESC else A.TCM_DESC end AS TCM_DESC - ,case when A.PAED_DESC ='' or A.PAED_DESC is null then B.PAED_DESC else A.PAED_DESC end AS PAED_DESC - ,case when A.GQCE_DESC ='' or A.GQCE_DESC is null then B.GQCE_DESC else A.GQCE_DESC end AS GQCE_DESC - ,case when A.VBP_DESC ='' or A.VBP_DESC is null then B.VBP_DESC else A.VBP_DESC end AS VBP_DESC - ,case when A.MANU_COD ='' or A.MANU_COD is null then B.MANU_COD else A.MANU_COD end AS MANU_COD - ,case when A.MANU_DES ='' or A.MANU_DES is null then B.MANU_DES else A.MANU_DES end AS MANU_DES - ,case when A.MANU_DES_C ='' or A.MANU_DES_C is null then B.MANU_DES_C else A.MANU_DES_C end AS MANU_DES_C - ,case when A.MNFL_COD ='' or A.MNFL_COD is null then B.MNFL_COD else A.MNFL_COD end AS MNFL_COD - ,case when A.MNFL_DES ='' or A.MNFL_DES is null then B.MNFL_DES else A.MNFL_DES end AS MNFL_DES - ,case when A.CORP_COD ='' or A.CORP_COD is null then B.CORP_COD else A.CORP_COD end AS CORP_COD -- THC存在CORP_COD 归属不一致问题 - ,REPLACE( case when A.CORP_DES ='' or A.CORP_DES is null then B.CORP_DES else A.CORP_DES end ,' GROUP', '' ) as CORP_DES -- 消除group - ,case when A.CORP_DES_C ='' or A.CORP_DES_C is null then B.CORP_DES_C else A.CORP_DES_C end AS CORP_DES_C - ,case when A.BRANDTYPE ='' or A.BRANDTYPE is null then B.BRANDTYPE else A.BRANDTYPE end AS BRANDTYPE - ,case when A.IS_AZ ='' or A.IS_AZ is null then B.IS_AZ else A.IS_AZ end AS IS_AZ - ,case when A.AZ_MAIN ='' or A.AZ_MAIN is null then B.AZ_MAIN else A.AZ_MAIN end AS AZ_MAIN - ,case when A.ATC1_DES ='' or A.ATC1_DES is null then B.ATC1_DES else A.ATC1_DES end AS ATC1_DES - ,case when A.ATC1_DES_C ='' or A.ATC1_DES_C is null then B.ATC1_DES_C else A.ATC1_DES_C end AS ATC1_DES_C - ,case when A.ATC2_DES ='' or A.ATC2_DES is null then B.ATC2_DES else A.ATC2_DES end AS ATC2_DES - ,case when A.ATC2_DES_C ='' or A.ATC2_DES_C is null then B.ATC2_DES_C else A.ATC2_DES_C end AS ATC2_DES_C - ,case when A.ATC3_DES ='' or A.ATC3_DES is null then B.ATC3_DES else A.ATC3_DES end AS ATC3_DES - ,case when A.ATC3_DES_C ='' or A.ATC3_DES_C is null then B.ATC3_DES_C else A.ATC3_DES_C end AS ATC3_DES_C - ,case when A.ATC4_DES ='' or A.ATC4_DES is null then B.ATC4_DES else A.ATC4_DES end AS ATC4_DES - ,case when A.ATC4_DES_C ='' or A.ATC4_DES_C is null then B.ATC4_DES_C else A.ATC4_DES_C end AS ATC4_DES_C - ,case when A.APP1_DES ='' or A.APP1_DES is null then B.APP1_DES else A.APP1_DES end AS APP1_DES - ,case when A.APP1_DES_C ='' or A.APP1_DES_C is null then B.APP1_DES_C else A.APP1_DES_C end AS APP1_DES_C - ,case when A.APP2_DES ='' or A.APP2_DES is null then B.APP2_DES else A.APP2_DES end AS APP2_DES - ,case when A.APP2_DES_C ='' or A.APP2_DES_C is null then B.APP2_DES_C else A.APP2_DES_C end AS APP2_DES_C - ,case when A.APP3_DES ='' or A.APP3_DES is null then B.APP3_DES else A.APP3_DES end AS APP3_DES - ,case when A.APP3_DES_C ='' or A.APP3_DES_C is null then B.APP3_DES_C else A.APP3_DES_C end AS APP3_DES_C - ,case when A.GEN_RN ='' or A.GEN_RN is null then B.GEN_RN else A.GEN_RN end AS GEN_RN -FROM dm.dm_td_external_packinfo_temp a -LEFT JOIN temp B -ON B.PACK_COD = A.PACK_COD ; - -insert overwrite dm.dm_td_external_packinfo_temp( - PACK_COD ,PACK_DES,STGH_DES,PACK_LCH,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,IS_AZ,AZ_MAIN,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,GEN_RN -) -select * from tmp.tmp_thc_dm_td_external_packinfo - --- COMMAND ---------- - --------------------------------------------------------------补充CHC部分缺失的维度数据-------------------------------------------------------------------------------------------- -insert overwrite table tmp.tmp_chc_dm_td_external_packinfo -with temp as ( -- dm.dm_td_external_packinfo_temp 该表数据 - --01首先是根据主表数据(带多个source)关联chpa的pack_porperty表,取出相关维度 - --02chpa中,没有的code,他的维度字段会被置为空,所以要关联我们自己处理好的维度表,来补充相关维度 - SELECT - iqvia_pack_code PACK_COD, - MAX(B.PACK_DES) PACK_DES, - MAX(B.STGH_DES) STGH_DES, - MAX(B.PACK_LCH) PACK_LCH, - MAX(B.iqvia_prod_code) PROD_COD, - MAX(B.PROD_DES) PROD_DES, - MAX(B.PROD_DES_C) PROD_DES_C, - MAX(B.CMPS_COD) CMPS_COD, - MAX(B.CMPS_DES) CMPS_DES, - MAX(B.CMPS_DES_C) CMPS_DES_C, - MAX(B.ATC1_COD) ATC1_COD, - MAX(B.ATC2_COD) ATC2_COD, - MAX(B.ATC3_COD) ATC3_COD, - MAX(B.ATC4_COD) ATC4_COD, - MAX(B.APP1_COD) APP1_COD, - MAX(B.APP2_COD) APP2_COD, - MAX(B.APP3_COD) APP3_COD, - MAX(B.BIO_DESC) BIO_DESC, - MAX(B.GENE_ORIG_DESC) GENE_ORIG_DESC, - MAX(B.ETH_OTC_DESC) ETH_OTC_DESC, - MAX(B.NRDL_DESC) NRDL_DESC, - null as NRDL_ENTRY_DATE, - MAX(B.EDL_DESC) EDL_DESC, - MAX(B.TCM_DESC) TCM_DESC, - MAX(B.PAED_DESC) PAED_DESC, - MAX(B.GQCE_DESC) GQCE_DESC, - NULL AS VBP_DESC, - MAX(B.MANU_COD) MANU_COD, - MAX(B.MANU_DES) MANU_DES, - MAX(B.MANU_DES_C) MANU_DES_C, - MAX(B.MNFL_COD) MNFL_COD, - MAX(B.MNFL_DES) MNFL_DES, - max(B.CORP_COD) as CORP_COD, - max(B.CORP_DES) as CORP_DES, - -- coalesce(MAX(C.CORP_COD) ,MAX(B.CORP_COD) ) CORP_COD, -- THC存在CORP_COD 归属不一致问题 - -- REPLACE( coalesce( MAX(C.CORP_DES) ,MAX(B.CORP_DES) ) , ' GROUP', '' ) as CORP_DES, - MAX(B.CORP_DES_C) CORP_DES_C, - null as BRANDTYPE, - null as IS_AZ, - null as AZ_MAIN, - MAX(B.ATC1_DES) ATC1_DES, - MAX(B.ATC1_DES_C) ATC1_DES_C, - MAX(B.ATC2_DES) ATC2_DES, - MAX(B.ATC2_DES_C) ATC2_DES_C, - MAX(B.ATC3_DES) ATC3_DES, - MAX(B.ATC3_DES_C) ATC3_DES_C, - MAX(B.ATC4_DES) ATC4_DES, - MAX(B.ATC4_DES_C) ATC4_DES_C, - MAX(B.APP1_DES) APP1_DES, - MAX(B.APP1_DES_C) APP1_DES_C, - MAX(B.APP2_DES) APP2_DES, - MAX(B.APP2_DES_C) APP2_DES_C, - MAX(B.APP3_DES) APP3_DES, - MAX(B.APP3_DES_C) APP3_DES_C, - CASE WHEN MAX(B.GENE_ORIG_DESC) = 'ORIG' THEN 1 - WHEN MAX(B.GENE_ORIG_DESC) = 'Branded Gen' THEN 2 - WHEN MAX(B.GENE_ORIG_DESC) = 'Unbranded Gen' THEN 3 - WHEN MAX(B.GENE_ORIG_DESC) = 'TCM' THEN 4 - ELSE 5 -END GEN_RN -FROM dwd.dwd_gnd_ext_chc_pack_property B -GROUP BY B.iqvia_pack_code -) -select - A.PACK_COD - ,case when A.PACK_DES ='' or A.PACK_DES is null then B.PACK_DES else A.PACK_DES end AS PACK_DES - ,case when A.STGH_DES ='' or A.STGH_DES is null then B.STGH_DES else A.STGH_DES end AS STGH_DES - ,case when A.PACK_LCH ='' or A.PACK_LCH is null then B.PACK_LCH else A.PACK_LCH end AS PACK_LCH - ,case when A.PROD_COD ='' or A.PROD_COD is null then B.PROD_COD else A.PROD_COD end AS PROD_COD - ,case when A.PROD_DES ='' or A.PROD_DES is null then B.PROD_DES else A.PROD_DES end AS PROD_DES - ,case when A.PROD_DES_C ='' or A.PROD_DES_C is null then B.PROD_DES_C else A.PROD_DES_C end AS PROD_DES_C - ,case when A.CMPS_COD ='' or A.CMPS_COD is null then B.CMPS_COD else A.CMPS_COD end AS CMPS_COD - ,case when A.CMPS_DES ='' or A.CMPS_DES is null then B.CMPS_DES else A.CMPS_DES end AS CMPS_DES - ,case when A.CMPS_DES_C ='' or A.CMPS_DES_C is null then B.CMPS_DES_C else A.CMPS_DES_C end AS CMPS_DES_C - ,case when A.ATC1_COD ='' or A.ATC1_COD is null then B.ATC1_COD else A.ATC1_COD end AS ATC1_COD - ,case when A.ATC2_COD ='' or A.ATC2_COD is null then B.ATC2_COD else A.ATC2_COD end AS ATC2_COD - ,case when A.ATC3_COD ='' or A.ATC3_COD is null then B.ATC3_COD else A.ATC3_COD end AS ATC3_COD - ,case when A.ATC4_COD ='' or A.ATC4_COD is null then B.ATC4_COD else A.ATC4_COD end AS ATC4_COD - ,case when A.APP1_COD ='' or A.APP1_COD is null then B.APP1_COD else A.APP1_COD end AS APP1_COD - ,case when A.APP2_COD ='' or A.APP2_COD is null then B.APP2_COD else A.APP2_COD end AS APP2_COD - ,case when A.APP3_COD ='' or A.APP3_COD is null then B.APP3_COD else A.APP3_COD end AS APP3_COD - ,case when A.BIO_DESC ='' or A.BIO_DESC is null then B.BIO_DESC else A.BIO_DESC end AS BIO_DESC - ,case when A.GENE_ORIG_DESC ='' or A.GENE_ORIG_DESC is null then B.GENE_ORIG_DESC else A.GENE_ORIG_DESC end AS GENE_ORIG_DESC - ,case when A.ETH_OTC_DESC ='' or A.ETH_OTC_DESC is null then B.ETH_OTC_DESC else A.ETH_OTC_DESC end AS ETH_OTC_DESC - ,case when A.NRDL_DESC ='' or A.NRDL_DESC is null then B.NRDL_DESC else A.NRDL_DESC end AS NRDL_DESC - ,case when A.NRDL_ENTRY_DATE='' or A.NRDL_ENTRY_DATE is null then B.NRDL_ENTRY_DATE else A.NRDL_ENTRY_DATE end AS NRDL_ENTRY_DATE - ,case when A.EDL_DESC ='' or A.EDL_DESC is null then B.EDL_DESC else A.EDL_DESC end AS EDL_DESC - ,case when A.TCM_DESC ='' or A.TCM_DESC is null then B.TCM_DESC else A.TCM_DESC end AS TCM_DESC - ,case when A.PAED_DESC ='' or A.PAED_DESC is null then B.PAED_DESC else A.PAED_DESC end AS PAED_DESC - ,case when A.GQCE_DESC ='' or A.GQCE_DESC is null then B.GQCE_DESC else A.GQCE_DESC end AS GQCE_DESC - ,case when A.VBP_DESC ='' or A.VBP_DESC is null then B.VBP_DESC else A.VBP_DESC end AS VBP_DESC - ,case when A.MANU_COD ='' or A.MANU_COD is null then B.MANU_COD else A.MANU_COD end AS MANU_COD - ,case when A.MANU_DES ='' or A.MANU_DES is null then B.MANU_DES else A.MANU_DES end AS MANU_DES - ,case when A.MANU_DES_C ='' or A.MANU_DES_C is null then B.MANU_DES_C else A.MANU_DES_C end AS MANU_DES_C - ,case when A.MNFL_COD ='' or A.MNFL_COD is null then B.MNFL_COD else A.MNFL_COD end AS MNFL_COD - ,case when A.MNFL_DES ='' or A.MNFL_DES is null then B.MNFL_DES else A.MNFL_DES end AS MNFL_DES - ,case when A.CORP_COD ='' or A.CORP_COD is null then B.CORP_COD else A.CORP_COD end AS CORP_COD -- THC存在CORP_COD 归属不一致问题 - ,REPLACE( case when A.CORP_DES ='' or A.CORP_DES is null then B.CORP_DES else A.CORP_DES end ,' GROUP', '' ) as CORP_DES -- 消除group - ,case when A.CORP_DES_C ='' or A.CORP_DES_C is null then B.CORP_DES_C else A.CORP_DES_C end AS CORP_DES_C - ,case when A.BRANDTYPE ='' or A.BRANDTYPE is null then B.BRANDTYPE else A.BRANDTYPE end AS BRANDTYPE - ,case when A.IS_AZ ='' or A.IS_AZ is null then B.IS_AZ else A.IS_AZ end AS IS_AZ - ,case when A.AZ_MAIN ='' or A.AZ_MAIN is null then B.AZ_MAIN else A.AZ_MAIN end AS AZ_MAIN - ,case when A.ATC1_DES ='' or A.ATC1_DES is null then B.ATC1_DES else A.ATC1_DES end AS ATC1_DES - ,case when A.ATC1_DES_C ='' or A.ATC1_DES_C is null then B.ATC1_DES_C else A.ATC1_DES_C end AS ATC1_DES_C - ,case when A.ATC2_DES ='' or A.ATC2_DES is null then B.ATC2_DES else A.ATC2_DES end AS ATC2_DES - ,case when A.ATC2_DES_C ='' or A.ATC2_DES_C is null then B.ATC2_DES_C else A.ATC2_DES_C end AS ATC2_DES_C - ,case when A.ATC3_DES ='' or A.ATC3_DES is null then B.ATC3_DES else A.ATC3_DES end AS ATC3_DES - ,case when A.ATC3_DES_C ='' or A.ATC3_DES_C is null then B.ATC3_DES_C else A.ATC3_DES_C end AS ATC3_DES_C - ,case when A.ATC4_DES ='' or A.ATC4_DES is null then B.ATC4_DES else A.ATC4_DES end AS ATC4_DES - ,case when A.ATC4_DES_C ='' or A.ATC4_DES_C is null then B.ATC4_DES_C else A.ATC4_DES_C end AS ATC4_DES_C - ,case when A.APP1_DES ='' or A.APP1_DES is null then B.APP1_DES else A.APP1_DES end AS APP1_DES - ,case when A.APP1_DES_C ='' or A.APP1_DES_C is null then B.APP1_DES_C else A.APP1_DES_C end AS APP1_DES_C - ,case when A.APP2_DES ='' or A.APP2_DES is null then B.APP2_DES else A.APP2_DES end AS APP2_DES - ,case when A.APP2_DES_C ='' or A.APP2_DES_C is null then B.APP2_DES_C else A.APP2_DES_C end AS APP2_DES_C - ,case when A.APP3_DES ='' or A.APP3_DES is null then B.APP3_DES else A.APP3_DES end AS APP3_DES - ,case when A.APP3_DES_C ='' or A.APP3_DES_C is null then B.APP3_DES_C else A.APP3_DES_C end AS APP3_DES_C - ,case when A.GEN_RN ='' or A.GEN_RN is null then B.GEN_RN else A.GEN_RN end AS GEN_RN -FROM dm.dm_td_external_packinfo_temp a -LEFT JOIN temp B -ON B.PACK_COD = A.PACK_COD ; - -insert overwrite dm.dm_td_external_packinfo_temp( - PACK_COD ,PACK_DES,STGH_DES,PACK_LCH,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,IS_AZ,AZ_MAIN,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,GEN_RN -) -select * from tmp.tmp_chc_dm_td_external_packinfo - - - --- COMMAND ---------- - ------------------------------------------------retail 补齐 retail 缺失部分pack 维度------------------------------------------------ --------------将补全数据存入临时表,再写入目标表格---------------- -insert overwrite table tmp.tmp_retail_dm_td_external_packinfo -WITH dm_retail_pack AS ( - SELECT -iqvia_pack_code PACK_COD,MAX(B.PACK_DES) PACK_DES,MAX(B.STGH_DES) STGH_DES,MAX(B.PACK_LCH) PACK_LCH,MAX(B.iqvia_prod_code) PROD_COD,MAX(B.PROD_DES) PROD_DES,MAX(B.PROD_DES_C) PROD_DES_C,MAX(B.CMPS_COD) CMPS_COD, -MAX(B.CMPS_DES) CMPS_DES,MAX(B.CMPS_DES_C) CMPS_DES_C,MAX(B.ATC1_COD) ATC1_COD,MAX(B.ATC2_COD) ATC2_COD,MAX(B.ATC3_COD) ATC3_COD,MAX(B.ATC4_COD) ATC4_COD,MAX(B.APP1_COD) APP1_COD,MAX(B.APP2_COD) APP2_COD, -MAX(B.APP3_COD) APP3_COD,MAX(B.BIO_DESC) BIO_DESC,MAX(B.GENE_ORIG_DESC) GENE_ORIG_DESC,MAX(B.ETH_OTC_DESC) ETH_OTC_DESC,MAX(B.NRDL_DESC) NRDL_DESC,MAX(B.NRDL_ENTRY_DATE) NRDL_ENTRY_DATE,MAX(B.EDL_DESC) EDL_DESC, -MAX(B.TCM_DESC) TCM_DESC,MAX(B.PAED_DESC) PAED_DESC,MAX(B.GQCE_DESC) GQCE_DESC, -case when MAX(B.VBP_DESC) = 'VBP-IN' then 'VBP-IN' when MAX(B.VBP_DESC) LIKE '%VBP%' THEN 'VBP-OUT' WHEN MAX(B.VBP_DESC) IS NOT NULL THEN 'Non VBP' ELSE NULL end as VBP_DESC, -MAX(B.MANU_COD) MANU_COD,MAX(B.MANU_DES) MANU_DES,MAX(B.MANU_DES_C) MANU_DES_C,MAX(B.MNFL_COD) MNFL_COD, -MAX(B.MNFL_DES) MNFL_DES,MAX(B.CORP_COD) CORP_COD,MAX(B.CORP_DES) CORP_DES,MAX(B.CORP_DES_C) CORP_DES_C,MAX(B.BRANDTYPE) BRANDTYPE,MAX(B.IS_AZ) IS_AZ,MAX(B.AZ_MAIN) AZ_MAIN,MAX(B.ATC1_DES) ATC1_DES, -MAX(B.ATC1_DES_C) ATC1_DES_C,MAX(B.ATC2_DES) ATC2_DES,MAX(B.ATC2_DES_C) ATC2_DES_C,MAX(B.ATC3_DES) ATC3_DES,MAX(B.ATC3_DES_C) ATC3_DES_C,MAX(B.ATC4_DES) ATC4_DES,MAX(B.ATC4_DES_C) ATC4_DES_C,MAX(B.APP1_DES) APP1_DES, -MAX(B.APP1_DES_C) APP1_DES_C,MAX(B.APP2_DES) APP2_DES,MAX(B.APP2_DES_C) APP2_DES_C,MAX(B.APP3_DES) APP3_DES,MAX(B.APP3_DES_C) APP3_DES_C, -CASE WHEN MAX(B.GENE_ORIG_DESC) = 'ORIG' THEN 1 WHEN MAX(B.GENE_ORIG_DESC) = 'Branded Gen' THEN 2 WHEN MAX(B.GENE_ORIG_DESC) = 'Unbranded Gen' THEN 3 WHEN MAX(B.GENE_ORIG_DESC) = 'TCM' THEN 4 ELSE 5 END GEN_RN -FROM dm.dm_zk_retail_pack_property B -GROUP BY B.iqvia_pack_code -union - SELECT -B.iqvia_pack_code PACK_COD,MAX(B.PACK_DES) PACK_DES,MAX(B.STGH_DES) STGH_DES,MAX(B.PACK_LCH) PACK_LCH,MAX(B.PROD_COD) PROD_COD,MAX(B.PROD_DES) PROD_DES,MAX(B.PROD_DES_C) PROD_DES_C,MAX(B.CMPS_COD) CMPS_COD, -MAX(B.CMPS_DES) CMPS_DES,MAX(B.CMPS_DES_C) CMPS_DES_C,MAX(B.ATC1_COD) ATC1_COD,MAX(B.ATC2_COD) ATC2_COD,MAX(B.ATC3_COD) ATC3_COD,MAX(B.ATC4_COD) ATC4_COD,MAX(B.APP1_COD) APP1_COD,MAX(B.APP2_COD) APP2_COD, -MAX(B.APP3_COD) APP3_COD,MAX(B.BIO_DESC) BIO_DESC,MAX(B.GENE_ORIG_DESC) GENE_ORIG_DESC,MAX(B.ETH_OTC_DESC) ETH_OTC_DESC,MAX(B.NRDL_DESC) NRDL_DESC,MAX(B.NRDL_ENTRY_DATE) NRDL_ENTRY_DATE,MAX(B.EDL_DESC) EDL_DESC, -MAX(B.TCM_DESC) TCM_DESC,MAX(B.PAED_DESC) PAED_DESC,MAX(B.GQCE_DESC) GQCE_DESC, -case when MAX(B.VBP_DESC) = 'VBP-IN' then 'VBP-IN' when MAX(B.VBP_DESC) LIKE '%VBP%' THEN 'VBP-OUT' WHEN MAX(B.VBP_DESC) IS NOT NULL THEN 'Non VBP' ELSE NULL end as VBP_DESC, -MAX(B.MANU_COD) MANU_COD,MAX(B.MANU_DES) MANU_DES,MAX(B.MANU_DES_C) MANU_DES_C,MAX(B.MNFL_COD) MNFL_COD, -MAX(B.MNFL_DES) MNFL_DES,MAX(B.CORP_COD) CORP_COD,MAX(B.CORP_DES) CORP_DES,MAX(B.CORP_DES_C) CORP_DES_C,MAX(B.BRANDTYPE) BRANDTYPE,MAX(B.IS_AZ) IS_AZ,MAX(B.AZ_MAIN) AZ_MAIN,MAX(B.ATC1_DES) ATC1_DES, -MAX(B.ATC1_DES_C) ATC1_DES_C,MAX(B.ATC2_DES) ATC2_DES,MAX(B.ATC2_DES_C) ATC2_DES_C,MAX(B.ATC3_DES) ATC3_DES,MAX(B.ATC3_DES_C) ATC3_DES_C,MAX(B.ATC4_DES) ATC4_DES,MAX(B.ATC4_DES_C) ATC4_DES_C,MAX(B.APP1_DES) APP1_DES, -MAX(B.APP1_DES_C) APP1_DES_C,MAX(B.APP2_DES) APP2_DES,MAX(B.APP2_DES_C) APP2_DES_C,MAX(B.APP3_DES) APP3_DES,MAX(B.APP3_DES_C) APP3_DES_C, -CASE WHEN MAX(B.GENE_ORIG_DESC) = 'ORIG' THEN 1 WHEN MAX(B.GENE_ORIG_DESC) = 'Branded Gen' THEN 2 WHEN MAX(B.GENE_ORIG_DESC) = 'Unbranded Gen' THEN 3 WHEN MAX(B.GENE_ORIG_DESC) = 'TCM' THEN 4 ELSE 5 END GEN_RN -FROM dm.dm_zk_retail_dtp_pack_property B -GROUP BY B.iqvia_pack_code -) -SELECT - A.PACK_COD - ,case when A.PACK_DES ='' or A.PACK_DES is null then B.PACK_DES else A.PACK_DES end AS PACK_DES - ,case when A.STGH_DES ='' or A.STGH_DES is null then B.STGH_DES else A.STGH_DES end AS STGH_DES - ,case when A.PACK_LCH ='' or A.PACK_LCH is null then B.PACK_LCH else A.PACK_LCH end AS PACK_LCH - ,case when A.PROD_COD ='' or A.PROD_COD is null then B.PROD_COD else A.PROD_COD end AS PROD_COD - ,case when A.PROD_DES ='' or A.PROD_DES is null then B.PROD_DES else A.PROD_DES end AS PROD_DES - ,case when A.PROD_DES_C ='' or A.PROD_DES_C is null then B.PROD_DES_C else A.PROD_DES_C end AS PROD_DES_C - ,case when A.CMPS_COD ='' or A.CMPS_COD is null then B.CMPS_COD else A.CMPS_COD end AS CMPS_COD - ,case when A.CMPS_DES ='' or A.CMPS_DES is null then B.CMPS_DES else A.CMPS_DES end AS CMPS_DES - ,case when A.CMPS_DES_C ='' or A.CMPS_DES_C is null then B.CMPS_DES_C else A.CMPS_DES_C end AS CMPS_DES_C - ,case when A.ATC1_COD ='' or A.ATC1_COD is null then B.ATC1_COD else A.ATC1_COD end AS ATC1_COD - ,case when A.ATC2_COD ='' or A.ATC2_COD is null then B.ATC2_COD else A.ATC2_COD end AS ATC2_COD - ,case when A.ATC3_COD ='' or A.ATC3_COD is null then B.ATC3_COD else A.ATC3_COD end AS ATC3_COD - ,case when A.ATC4_COD ='' or A.ATC4_COD is null then B.ATC4_COD else A.ATC4_COD end AS ATC4_COD - ,case when A.APP1_COD ='' or A.APP1_COD is null then B.APP1_COD else A.APP1_COD end AS APP1_COD - ,case when A.APP2_COD ='' or A.APP2_COD is null then B.APP2_COD else A.APP2_COD end AS APP2_COD - ,case when A.APP3_COD ='' or A.APP3_COD is null then B.APP3_COD else A.APP3_COD end AS APP3_COD - ,case when A.BIO_DESC ='' or A.BIO_DESC is null then B.BIO_DESC else A.BIO_DESC end AS BIO_DESC - ,case when A.GENE_ORIG_DESC ='' or A.GENE_ORIG_DESC is null then B.GENE_ORIG_DESC else A.GENE_ORIG_DESC end AS GENE_ORIG_DESC - ,case when A.ETH_OTC_DESC ='' or A.ETH_OTC_DESC is null then B.ETH_OTC_DESC else A.ETH_OTC_DESC end AS ETH_OTC_DESC - ,case when A.NRDL_DESC ='' or A.NRDL_DESC is null then B.NRDL_DESC else A.NRDL_DESC end AS NRDL_DESC - ,case when A.NRDL_ENTRY_DATE='' or A.NRDL_ENTRY_DATE is null then B.NRDL_ENTRY_DATE else A.NRDL_ENTRY_DATE end AS NRDL_ENTRY_DATE - ,case when A.EDL_DESC ='' or A.EDL_DESC is null then B.EDL_DESC else A.EDL_DESC end AS EDL_DESC - ,case when A.TCM_DESC ='' or A.TCM_DESC is null then B.TCM_DESC else A.TCM_DESC end AS TCM_DESC - ,case when A.PAED_DESC ='' or A.PAED_DESC is null then B.PAED_DESC else A.PAED_DESC end AS PAED_DESC - ,case when A.GQCE_DESC ='' or A.GQCE_DESC is null then B.GQCE_DESC else A.GQCE_DESC end AS GQCE_DESC - ,case when A.VBP_DESC ='' or A.VBP_DESC is null then B.VBP_DESC else A.VBP_DESC end AS VBP_DESC - ,case when A.MANU_COD ='' or A.MANU_COD is null then B.MANU_COD else A.MANU_COD end AS MANU_COD - ,case when A.MANU_DES ='' or A.MANU_DES is null then B.MANU_DES else A.MANU_DES end AS MANU_DES - ,case when A.MANU_DES_C ='' or A.MANU_DES_C is null then B.MANU_DES_C else A.MANU_DES_C end AS MANU_DES_C - ,case when A.MNFL_COD ='' or A.MNFL_COD is null then B.MNFL_COD else A.MNFL_COD end AS MNFL_COD - ,case when A.MNFL_DES ='' or A.MNFL_DES is null then B.MNFL_DES else A.MNFL_DES end AS MNFL_DES - ,case when A.CORP_COD ='' or A.CORP_COD is null then B.CORP_COD else A.CORP_COD end AS CORP_COD - ,REPLACE( case when A.CORP_DES ='' or A.CORP_DES is null then B.CORP_DES else A.CORP_DES end ,' GROUP', '' ) as CORP_DES -- 消除group - ,case when A.CORP_DES_C ='' or A.CORP_DES_C is null then B.CORP_DES_C else A.CORP_DES_C end AS CORP_DES_C - ,case when A.BRANDTYPE ='' or A.BRANDTYPE is null then B.BRANDTYPE else A.BRANDTYPE end AS BRANDTYPE - ,case when A.IS_AZ ='' or A.IS_AZ is null then B.IS_AZ else A.IS_AZ end AS IS_AZ - ,case when A.AZ_MAIN ='' or A.AZ_MAIN is null then B.AZ_MAIN else A.AZ_MAIN end AS AZ_MAIN - ,case when A.ATC1_DES ='' or A.ATC1_DES is null then B.ATC1_DES else A.ATC1_DES end AS ATC1_DES - ,case when A.ATC1_DES_C ='' or A.ATC1_DES_C is null then B.ATC1_DES_C else A.ATC1_DES_C end AS ATC1_DES_C - ,case when A.ATC2_DES ='' or A.ATC2_DES is null then B.ATC2_DES else A.ATC2_DES end AS ATC2_DES - ,case when A.ATC2_DES_C ='' or A.ATC2_DES_C is null then B.ATC2_DES_C else A.ATC2_DES_C end AS ATC2_DES_C - ,case when A.ATC3_DES ='' or A.ATC3_DES is null then B.ATC3_DES else A.ATC3_DES end AS ATC3_DES - ,case when A.ATC3_DES_C ='' or A.ATC3_DES_C is null then B.ATC3_DES_C else A.ATC3_DES_C end AS ATC3_DES_C - ,case when A.ATC4_DES ='' or A.ATC4_DES is null then B.ATC4_DES else A.ATC4_DES end AS ATC4_DES - ,case when A.ATC4_DES_C ='' or A.ATC4_DES_C is null then B.ATC4_DES_C else A.ATC4_DES_C end AS ATC4_DES_C - ,case when A.APP1_DES ='' or A.APP1_DES is null then B.APP1_DES else A.APP1_DES end AS APP1_DES - ,case when A.APP1_DES_C ='' or A.APP1_DES_C is null then B.APP1_DES_C else A.APP1_DES_C end AS APP1_DES_C - ,case when A.APP2_DES ='' or A.APP2_DES is null then B.APP2_DES else A.APP2_DES end AS APP2_DES - ,case when A.APP2_DES_C ='' or A.APP2_DES_C is null then B.APP2_DES_C else A.APP2_DES_C end AS APP2_DES_C - ,case when A.APP3_DES ='' or A.APP3_DES is null then B.APP3_DES else A.APP3_DES end AS APP3_DES - ,case when A.APP3_DES_C ='' or A.APP3_DES_C is null then B.APP3_DES_C else A.APP3_DES_C end AS APP3_DES_C - ,case when A.GEN_RN ='' or A.GEN_RN is null then B.GEN_RN else A.GEN_RN end AS GEN_RN -FROM dm.dm_td_external_packinfo_temp a -LEFT JOIN dm_retail_pack B -ON B.PACK_COD = A.PACK_COD ; -insert overwrite dm.dm_td_external_packinfo_temp( - PACK_COD ,PACK_DES,STGH_DES,PACK_LCH,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,IS_AZ,AZ_MAIN,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,GEN_RN -) -select * from tmp.tmp_retail_dm_td_external_packinfo; - - - --- COMMAND ---------- - - ----------------------------------------------------ec--------------------------------------------------- -insert overwrite table tmp.tmp_ec_dm_td_external_packinfo -WITH dm_ec_pack AS ( -SELECT - iqvia_pack_code PACK_COD, - MAX(B.PACK_DES) PACK_DES, - MAX(B.STGH_DES) STGH_DES, - MAX(B.PACK_LCH) PACK_LCH, - MAX(B.prod_cod) PROD_COD, - MAX(B.PROD_DES) PROD_DES, - MAX(B.PROD_DES_C) PROD_DES_C, - MAX(B.CMPS_COD) CMPS_COD, - MAX(B.CMPS_DES) CMPS_DES, - MAX(B.CMPS_DES_C) CMPS_DES_C, - MAX(B.ATC1_COD) ATC1_COD, - MAX(B.ATC2_COD) ATC2_COD, - MAX(B.ATC3_COD) ATC3_COD, - MAX(B.ATC4_COD) ATC4_COD, - MAX(B.APP1_COD) APP1_COD, - MAX(B.APP2_COD) APP2_COD, - MAX(B.APP3_COD) APP3_COD, - MAX(B.BIO_DESC) BIO_DESC, - MAX(B.GENE_ORIG_DESC) GENE_ORIG_DESC, - MAX(B.ETH_OTC_DESC) ETH_OTC_DESC, - MAX(B.NRDL_DESC) NRDL_DESC, - MAX(B.NRDL_ENTRY_DATE) NRDL_ENTRY_DATE, - MAX(B.EDL_DESC) EDL_DESC, - MAX(B.TCM_DESC) TCM_DESC, - MAX(B.PAED_DESC) PAED_DESC, - MAX(B.GQCE_DESC) GQCE_DESC, - case when MAX(B.VBP_DESC) = 'VBP-IN' then 'VBP-IN' when MAX(B.VBP_DESC) LIKE '%VBP%' THEN 'VBP-OUT' WHEN MAX(B.VBP_DESC) IS NOT NULL THEN 'Non VBP' ELSE NULL end as VBP_DESC, - MAX(B.MANU_COD) MANU_COD, - MAX(B.MANU_DES) MANU_DES, - MAX(B.MANU_DES_C) MANU_DES_C, - MAX(B.MNFL_COD) MNFL_COD, - MAX(B.MNFL_DES) MNFL_DES, - MAX(B.CORP_COD) CORP_COD, - MAX(B.CORP_DES) CORP_DES, - MAX(B.CORP_DES_C) CORP_DES_C, - MAX(B.BRANDTYPE) BRANDTYPE, - MAX(B.IS_AZ) IS_AZ, - MAX(B.AZ_MAIN) AZ_MAIN, - MAX(B.ATC1_DES) ATC1_DES, - MAX(B.ATC1_DES_C) ATC1_DES_C, - MAX(B.ATC2_DES) ATC2_DES, - MAX(B.ATC2_DES_C) ATC2_DES_C, - MAX(B.ATC3_DES) ATC3_DES, - MAX(B.ATC3_DES_C) ATC3_DES_C, - MAX(B.ATC4_DES) ATC4_DES, - MAX(B.ATC4_DES_C) ATC4_DES_C, - MAX(B.APP1_DES) APP1_DES, - MAX(B.APP1_DES_C) APP1_DES_C, - MAX(B.APP2_DES) APP2_DES, - MAX(B.APP2_DES_C) APP2_DES_C, - MAX(B.APP3_DES) APP3_DES, - MAX(B.APP3_DES_C) APP3_DES_C, - CASE - WHEN MAX(B.GENE_ORIG_DESC) = 'ORIG' THEN 1 - WHEN MAX(B.GENE_ORIG_DESC) = 'Branded Gen' THEN 2 - WHEN MAX(B.GENE_ORIG_DESC) = 'Unbranded Gen' THEN 3 - WHEN MAX(B.GENE_ORIG_DESC) = 'TCM' THEN 4 ELSE 5 END GEN_RN -FROM dm.dm_zk_ec_pack_property B -GROUP BY B.iqvia_pack_code -) -SELECT - A.PACK_COD - ,NVL(A.PACK_DES,B.PACK_DES) AS PACK_DES - ,NVL(A.STGH_DES,B.STGH_DES) AS STGH_DES - ,NVL(A.PACK_LCH,B.PACK_LCH) AS PACK_LCH - ,NVL(A.PROD_COD,B.PROD_COD) AS PROD_COD - ,NVL(A.PROD_DES,B.PROD_DES ) AS PROD_DES - ,NVL(A.PROD_DES_C,B.PROD_DES_C ) AS PROD_DES_C - ,NVL(A.CMPS_COD,B.CMPS_COD) AS CMPS_COD - ,NVL(A.CMPS_DES,B.CMPS_DES) AS CMPS_DES - ,NVL(A.CMPS_DES_C,B.CMPS_DES_C) AS CMPS_DES_C - ,NVL(A.ATC1_COD,B.ATC1_COD) AS ATC1_COD - ,NVL(A.ATC2_COD,B.ATC2_COD) AS ATC2_COD - ,NVL(A.ATC3_COD,B.ATC3_COD) AS ATC3_COD - ,NVL(A.ATC4_COD,B.ATC4_COD) AS ATC4_COD - ,NVL(A.APP1_COD,B.APP1_COD) AS APP1_COD - ,NVL(A.APP2_COD,B.APP2_COD) AS APP2_COD - ,NVL(A.APP3_COD,B.APP3_COD) AS APP3_COD - ,NVL(A.BIO_DESC,B.BIO_DESC) AS BIO_DESC - ,NVL(A.GENE_ORIG_DESC,B.GENE_ORIG_DESC) AS GENE_ORIG_DESC - ,NVL(A.ETH_OTC_DESC,B.ETH_OTC_DESC) AS ETH_OTC_DESC - ,NVL(A.NRDL_DESC,B.NRDL_DESC) AS NRDL_DESC - ,NVL(A.NRDL_ENTRY_DATE,B.NRDL_ENTRY_DATE) AS NRDL_ENTRY_DATE - ,NVL(A.EDL_DESC,B.EDL_DESC) AS EDL_DESC - ,NVL(A.TCM_DESC,B.TCM_DESC) AS TCM_DESC - ,NVL(A.PAED_DESC,B.PAED_DESC) AS PAED_DESC - ,NVL(A.GQCE_DESC,B.GQCE_DESC) AS GQCE_DESC - ,NVL(A.VBP_DESC,B.VBP_DESC) AS VBP_DESC - ,NVL(A.MANU_COD,B.MANU_COD) AS MANU_COD - ,NVL(A.MANU_DES,B.MANU_DES) AS MANU_DES - ,NVL(A.MANU_DES_C,B.MANU_DES_C) AS MANU_DES_C - ,NVL(A.MNFL_COD,B.MNFL_COD) AS MNFL_COD - ,NVL(A.MNFL_DES,B.MNFL_DES) AS MNFL_DES - ,NVL(A.CORP_COD,B.CORP_COD) AS CORP_COD - ,NVL(A.CORP_DES,B.CORP_DES) AS CORP_DES - ,NVL(A.CORP_DES_C,B.CORP_DES_C) AS CORP_DES_C - ,NVL(A.BRANDTYPE,B.BRANDTYPE) AS BRANDTYPE - ,NVL(A.IS_AZ,B.IS_AZ) AS IS_AZ - ,NVL(A.AZ_MAIN,B.AZ_MAIN) AS AZ_MAIN - ,NVL(A.ATC1_DES,B.ATC1_DES) AS ATC1_DES - ,NVL(A.ATC1_DES_C,B.ATC1_DES_C) AS ATC1_DES_C - ,NVL(A.ATC2_DES,B.ATC2_DES) AS ATC2_DES - ,NVL(A.ATC2_DES_C,B.ATC2_DES_C) AS ATC2_DES_C - ,NVL(A.ATC3_DES,B.ATC3_DES) AS ATC3_DES - ,NVL(A.ATC3_DES_C,B.ATC3_DES_C) AS ATC3_DES_C - ,NVL(A.ATC4_DES,B.ATC4_DES) AS ATC4_DES - ,NVL(A.ATC4_DES_C,B.ATC4_DES_C) AS ATC4_DES_C - ,NVL(A.APP1_DES,B.APP1_DES) AS APP1_DES - ,NVL(A.APP1_DES_C,B.APP1_DES_C) AS APP1_DES_C - ,NVL(A.APP2_DES,B.APP2_DES) AS APP2_DES - ,NVL(A.APP2_DES_C,B.APP2_DES_C) AS APP2_DES_C - ,NVL(A.APP3_DES,B.APP3_DES) AS APP3_DES - ,NVL(A.APP3_DES_C,B.APP3_DES_C) AS APP3_DES_C - ,NVL(A.GEN_RN,B.GEN_RN) AS GEN_RN -FROM dm.dm_td_external_packinfo_temp a -LEFT JOIN dm_ec_pack B -ON B.PACK_COD = A.PACK_COD ; - -insert overwrite dm.dm_td_external_packinfo_temp( - PACK_COD ,PACK_DES,STGH_DES,PACK_LCH,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,IS_AZ,AZ_MAIN,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,GEN_RN -) -select * from tmp.tmp_ec_dm_td_external_packinfo; - - --- COMMAND ---------- - --- MAGIC %md --- MAGIC # AIA渠道 - --- COMMAND ---------- - - ---PACK_COD是唯一的,不允许重复 -create or replace temporary view aia_external_packinfo_1 as -select - case when PACK_COD like '%OTHERS%' or length(PACK_COD) >= 12 or (not PACK_COD REGEXP '^[0-9]') then PACK_COD - else right(concat('000000000000',PACK_COD),12) - end as PACK_COD, - max(PACK_DES) as PACK_DES, - max(STGH_DES) as STGH_DES, - max(PACK_LCH) as PACK_LCH, - max(PROD_COD) as PROD_COD, - max(PROD_DES) as PROD_DES, - max(PROD_DES_C) as PROD_DES_C, - max(CMPS_COD) as CMPS_COD, - max(CMPS_DES) as CMPS_DES, - max(CMPS_DES_C) as CMPS_DES_C, - max(ATC1_COD) as ATC1_COD, - max(ATC2_COD) as ATC2_COD, - max(ATC3_COD) as ATC3_COD, - max(ATC4_COD) as ATC4_COD, - max(APP1_COD) as APP1_COD, - max(APP2_COD) as APP2_COD, - max(APP3_COD) as APP3_COD, - max(BIO_DESC) as BIO_DESC, - max(GENE_ORIG_DESC) as GENE_ORIG_DESC, - max(ETH_OTC_DESC) as ETH_OTC_DESC, - max(NRDL_DESC) as NRDL_DESC, - max(NRDL_Entry_Date) as NRDL_ENTRY_DATE, - max(EDL_DESC) as EDL_DESC, - max(TCM_DESC) as TCM_DESC, - max(PAED_DESC) as PAED_DESC, - max(GQCE_DESC) as GQCE_DESC, - NULL as VBP_DESC, - max(MANU_COD) as MANU_COD, - max(MANU_DES) as MANU_DES, - max(MANU_DES_C) as MANU_DES_C, - max(MNFL_COD) as MNFL_COD, - max(MNFL_DES) as MNFL_DES, - max(CORP_COD) as CORP_COD, - max(CORP_DES) as CORP_DES, - max(CORP_DES_C) as CORP_DES_C, - max(BrandType) as BRANDTYPE, - max(IS_AZ) as IS_AZ, - max(AZ_MAIN) as AZ_MAIN, - max(ATC1_DES) as ATC1_DES, - max(ATC1_DES_C) as ATC1_DES_C, - max(ATC2_DES) as ATC2_DES, - max(ATC2_DES_C) as ATC2_DES_C, - max(ATC3_DES) as ATC3_DES, - max(ATC3_DES_C) as ATC3_DES_C, - max(ATC4_DES) as ATC4_DES, - max(ATC4_DES_C) as ATC4_DES_C, - max(APP1_DES) as APP1_DES, - max(APP1_DES_C) as APP1_DES_C, - max(APP2_DES) as APP2_DES, - max(APP2_DES_C) as APP2_DES_C, - max(APP3_DES) as APP3_DES, - max(APP3_DES_C) as APP3_DES_C, - CASE WHEN max(GENE_ORIG_DESC) = 'ORIG' THEN 1 - WHEN max(GENE_ORIG_DESC) = 'Branded Gen' THEN 2 - WHEN max(GENE_ORIG_DESC) = 'Unbranded Gen' THEN 3 - WHEN max(GENE_ORIG_DESC) = 'TCM' THEN 4 - ELSE 5 - END as GEN_RN -from dm.dm_aia_pack_property -group by PACK_COD - - --- COMMAND ---------- - - ---补全维度 -insert overwrite table tmp.aia_external_packinfo_2 -select distinct - case when A.PACK_COD like '%OTHERS%' or length(A.PACK_COD) >= 12 or (not A.PACK_COD REGEXP '^[0-9]') then A.PACK_COD - else right(concat('000000000000',A.PACK_COD),12) - end as PACK_COD - ,NVL(A.PACK_DES,B.PACK_DES) AS PACK_DES - ,NVL(A.STGH_DES,B.STGH_DES) AS STGH_DES - ,NVL(A.PACK_LCH,B.PACK_LCH) AS PACK_LCH - ,NVL(A.PROD_COD,B.PROD_COD) AS PROD_COD - ,NVL(A.PROD_DES,B.PROD_DES) AS PROD_DES - ,NVL(A.PROD_DES_C,B.PROD_DES_C) AS PROD_DES_C - ,NVL(A.CMPS_COD,B.CMPS_COD) AS CMPS_COD - ,NVL(A.CMPS_DES,B.CMPS_DES) AS CMPS_DES - ,NVL(A.CMPS_DES_C,B.CMPS_DES_C) AS CMPS_DES_C - ,NVL(A.ATC1_COD,B.ATC1_COD) AS ATC1_COD - ,NVL(A.ATC2_COD,B.ATC2_COD) AS ATC2_COD - ,NVL(A.ATC3_COD,B.ATC3_COD) AS ATC3_COD - ,NVL(A.ATC4_COD,B.ATC4_COD) AS ATC4_COD - ,NVL(A.APP1_COD,B.APP1_COD) AS APP1_COD - ,NVL(A.APP2_COD,B.APP2_COD) AS APP2_COD - ,NVL(A.APP3_COD,B.APP3_COD) AS APP3_COD - ,NVL(A.BIO_DESC,B.BIO_DESC) AS BIO_DESC - ,NVL(A.GENE_ORIG_DESC,B.GENE_ORIG_DESC) AS GENE_ORIG_DESC - ,NVL(A.ETH_OTC_DESC,B.ETH_OTC_DESC) AS ETH_OTC_DESC - ,NVL(A.NRDL_DESC,B.NRDL_DESC) AS NRDL_DESC - ,NVL(A.NRDL_ENTRY_DATE,B.NRDL_ENTRY_DATE) AS NRDL_ENTRY_DATE - ,NVL(A.EDL_DESC,B.EDL_DESC) AS EDL_DESC - ,NVL(A.TCM_DESC,B.TCM_DESC) AS TCM_DESC - ,NVL(A.PAED_DESC,B.PAED_DESC) AS PAED_DESC - ,NVL(A.GQCE_DESC,B.GQCE_DESC) AS GQCE_DESC - ,NVL(A.VBP_DESC,B.VBP_DESC) AS VBP_DESC - ,NVL(A.MANU_COD,B.MANU_COD) AS MANU_COD - ,NVL(A.MANU_DES,B.MANU_DES) AS MANU_DES - ,NVL(A.MANU_DES_C,B.MANU_DES_C) AS MANU_DES_C - ,NVL(A.MNFL_COD,B.MNFL_COD) AS MNFL_COD - ,NVL(A.MNFL_DES,B.MNFL_DES) AS MNFL_DES - ,NVL(A.CORP_COD,B.CORP_COD) AS CORP_COD - ,REPLACE( NVL(A.CORP_DES,B.CORP_DES) ,' GROUP', '' ) as CORP_DES -- 消除group - ,NVL(A.CORP_DES_C,B.CORP_DES_C) AS CORP_DES_C - ,NVL(A.BRANDTYPE,B.BRANDTYPE) AS BRANDTYPE - ,NVL(A.IS_AZ,B.IS_AZ) AS IS_AZ - ,NVL(A.AZ_MAIN,B.AZ_MAIN) AS AZ_MAIN - ,NVL(A.ATC1_DES,B.ATC1_DES) AS ATC1_DES - ,NVL(A.ATC1_DES_C,B.ATC1_DES_C) AS ATC1_DES_C - ,NVL(A.ATC2_DES,B.ATC2_DES) AS ATC2_DES - ,NVL(A.ATC2_DES_C,B.ATC2_DES_C) AS ATC2_DES_C - ,NVL(A.ATC3_DES,B.ATC3_DES) AS ATC3_DES - ,NVL(A.ATC3_DES_C,B.ATC3_DES_C) AS ATC3_DES_C - ,NVL(A.ATC4_DES,B.ATC4_DES) AS ATC4_DES - ,NVL(A.ATC4_DES_C,B.ATC4_DES_C) AS ATC4_DES_C - ,NVL(A.APP1_DES,B.APP1_DES) AS APP1_DES - ,NVL(A.APP1_DES_C,B.APP1_DES_C) AS APP1_DES_C - ,NVL(A.APP2_DES,B.APP2_DES) AS APP2_DES - ,NVL(A.APP2_DES_C,B.APP2_DES_C) AS APP2_DES_C - ,NVL(A.APP3_DES,B.APP3_DES) AS APP3_DES - ,NVL(A.APP3_DES_C,B.APP3_DES_C) AS APP3_DES_C - ,NVL(A.GEN_RN,B.GEN_RN) AS GEN_RN -FROM dm.dm_td_external_packinfo_temp A -LEFT JOIN aia_external_packinfo_1 B -ON case when A.PACK_COD like '%OTHERS%' or length(A.PACK_COD) >= 12 or (not A.PACK_COD REGEXP '^[0-9]') then A.PACK_COD else right(concat('000000000000',A.PACK_COD),12) end - = B.PACK_COD - - --- COMMAND ---------- - - ---更新dm.dm_td_external_packinfo_temp -insert overwrite dm.dm_td_external_packinfo_temp ( -PACK_COD, -PACK_DES, -STGH_DES, -PACK_LCH, -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, -IS_AZ, -AZ_MAIN, -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, -GEN_RN -) -select -PACK_COD, -PACK_DES, -STGH_DES, -PACK_LCH, -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, -IS_AZ, -AZ_MAIN, -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, -GEN_RN -from tmp.aia_external_packinfo_2 - - --- COMMAND ---------- - --- MAGIC %md --- MAGIC # XIEHE渠道 - --- COMMAND ---------- - - ---PACK_COD是唯一的,不允许重复 -create or replace temporary view xiehe_external_packinfo_1 as -select - A.PACK_COD, - max(A.PACK_DES) as PACK_DES, - max(A.STGH_DES) as STGH_DES, - max(A.PACK_LCH) as PACK_LCH, - max(A.PROD_COD) as PROD_COD, - max(A.PROD_DES) as PROD_DES, - max(A.PROD_DES_C) as PROD_DES_C, - max(A.CMPS_COD) as CMPS_COD, - max(A.CMPS_DES) as CMPS_DES, - max(A.CMPS_DES_C) as CMPS_DES_C, - max(A.ATC1_COD) as ATC1_COD, - max(A.ATC2_COD) as ATC2_COD, - max(A.ATC3_COD) as ATC3_COD, - max(A.ATC4_COD) as ATC4_COD, - max(A.APP1_COD) as APP1_COD, - max(A.APP2_COD) as APP2_COD, - max(A.APP3_COD) as APP3_COD, - max(A.BIO_DESC) as BIO_DESC, - max(A.GENE_ORIG_DESC) as GENE_ORIG_DESC, - max(A.ETH_OTC_DESC) as ETH_OTC_DESC, - max(A.NRDL_DESC) as NRDL_DESC, - max(A.NRDL_Entry_Date) as NRDL_ENTRY_DATE, - max(A.EDL_DESC) as EDL_DESC, - max(A.TCM_DESC) as TCM_DESC, - max(A.PAED_DESC) as PAED_DESC, - max(A.GQCE_DESC) as GQCE_DESC, - NULL as VBP_DESC, - max(A.MANU_COD) as MANU_COD, - max(A.MANU_DES) as MANU_DES, - max(A.MANU_DES_C) as MANU_DES_C, - max(A.MNFL_COD) as MNFL_COD, - max(A.MNFL_DES) as MNFL_DES, - max(A.CORP_COD) as CORP_COD, - max(A.CORP_DES) as CORP_DES, - max(A.CORP_DES_C) as CORP_DES_C, - max(A.BrandType) as BRANDTYPE, - max(A.IS_AZ) as IS_AZ, - max(A.AZ_MAIN) as AZ_MAIN, - max(A.ATC1_DES) as ATC1_DES, - max(A.ATC1_DES_C) as ATC1_DES_C, - max(A.ATC2_DES) as ATC2_DES, - max(A.ATC2_DES_C) as ATC2_DES_C, - max(A.ATC3_DES) as ATC3_DES, - max(A.ATC3_DES_C) as ATC3_DES_C, - max(A.ATC4_DES) as ATC4_DES, - max(A.ATC4_DES_C) as ATC4_DES_C, - max(A.APP1_DES) as APP1_DES, - max(A.APP1_DES_C) as APP1_DES_C, - max(A.APP2_DES) as APP2_DES, - max(A.APP2_DES_C) as APP2_DES_C, - max(A.APP3_DES) as APP3_DES, - max(A.APP3_DES_C) as APP3_DES_C, - CASE WHEN max(A.GENE_ORIG_DESC) = 'ORIG' THEN 1 - WHEN max(A.GENE_ORIG_DESC) = 'Branded Gen' THEN 2 - WHEN max(A.GENE_ORIG_DESC) = 'Unbranded Gen' THEN 3 - WHEN max(A.GENE_ORIG_DESC) = 'TCM' THEN 4 - ELSE 5 - END as GEN_RN -from dm.dm_xiehe_pack_property a -group by A.PACK_COD - - --- COMMAND ---------- - - ---补全维度 -insert overwrite table tmp.xiehe_external_packinfo_2 -select distinct - A.PACK_COD - ,NVL(A.PACK_DES,B.PACK_DES) AS PACK_DES - ,NVL(A.STGH_DES,B.STGH_DES) AS STGH_DES - ,NVL(A.PACK_LCH,B.PACK_LCH) AS PACK_LCH - ,NVL(A.PROD_COD,B.PROD_COD) AS PROD_COD - ,NVL(A.PROD_DES,B.PROD_DES) AS PROD_DES - ,NVL(A.PROD_DES_C,B.PROD_DES_C) AS PROD_DES_C - ,NVL(A.CMPS_COD,B.CMPS_COD) AS CMPS_COD - ,NVL(A.CMPS_DES,B.CMPS_DES) AS CMPS_DES - ,NVL(A.CMPS_DES_C,B.CMPS_DES_C) AS CMPS_DES_C - ,NVL(A.ATC1_COD,B.ATC1_COD) AS ATC1_COD - ,NVL(A.ATC2_COD,B.ATC2_COD) AS ATC2_COD - ,NVL(A.ATC3_COD,B.ATC3_COD) AS ATC3_COD - ,NVL(A.ATC4_COD,B.ATC4_COD) AS ATC4_COD - ,NVL(A.APP1_COD,B.APP1_COD) AS APP1_COD - ,NVL(A.APP2_COD,B.APP2_COD) AS APP2_COD - ,NVL(A.APP3_COD,B.APP3_COD) AS APP3_COD - ,NVL(A.BIO_DESC,B.BIO_DESC) AS BIO_DESC - ,NVL(A.GENE_ORIG_DESC,B.GENE_ORIG_DESC) AS GENE_ORIG_DESC - ,NVL(A.ETH_OTC_DESC,B.ETH_OTC_DESC) AS ETH_OTC_DESC - ,NVL(A.NRDL_DESC,B.NRDL_DESC) AS NRDL_DESC - ,NVL(A.NRDL_ENTRY_DATE,B.NRDL_ENTRY_DATE) AS NRDL_ENTRY_DATE - ,NVL(A.EDL_DESC,B.EDL_DESC) AS EDL_DESC - ,NVL(A.TCM_DESC,B.TCM_DESC) AS TCM_DESC - ,NVL(A.PAED_DESC,B.PAED_DESC) AS PAED_DESC - ,NVL(A.GQCE_DESC,B.GQCE_DESC) AS GQCE_DESC - ,NVL(A.VBP_DESC,B.VBP_DESC) AS VBP_DESC - ,NVL(A.MANU_COD,B.MANU_COD) AS MANU_COD - ,NVL(A.MANU_DES,B.MANU_DES) AS MANU_DES - ,NVL(A.MANU_DES_C,B.MANU_DES_C) AS MANU_DES_C - ,NVL(A.MNFL_COD,B.MNFL_COD) AS MNFL_COD - ,NVL(A.MNFL_DES,B.MNFL_DES) AS MNFL_DES - ,NVL(A.CORP_COD,B.CORP_COD) AS CORP_COD - ,REPLACE( NVL(A.CORP_DES,B.CORP_DES) ,' GROUP', '' ) as CORP_DES -- 消除group - ,NVL(A.CORP_DES_C,B.CORP_DES_C) AS CORP_DES_C - ,NVL(A.BRANDTYPE,B.BRANDTYPE) AS BRANDTYPE - ,NVL(A.IS_AZ,B.IS_AZ) AS IS_AZ - ,NVL(A.AZ_MAIN,B.AZ_MAIN) AS AZ_MAIN - ,NVL(A.ATC1_DES,B.ATC1_DES) AS ATC1_DES - ,NVL(A.ATC1_DES_C,B.ATC1_DES_C) AS ATC1_DES_C - ,NVL(A.ATC2_DES,B.ATC2_DES) AS ATC2_DES - ,NVL(A.ATC2_DES_C,B.ATC2_DES_C) AS ATC2_DES_C - ,NVL(A.ATC3_DES,B.ATC3_DES) AS ATC3_DES - ,NVL(A.ATC3_DES_C,B.ATC3_DES_C) AS ATC3_DES_C - ,NVL(A.ATC4_DES,B.ATC4_DES) AS ATC4_DES - ,NVL(A.ATC4_DES_C,B.ATC4_DES_C) AS ATC4_DES_C - ,NVL(A.APP1_DES,B.APP1_DES) AS APP1_DES - ,NVL(A.APP1_DES_C,B.APP1_DES_C) AS APP1_DES_C - ,NVL(A.APP2_DES,B.APP2_DES) AS APP2_DES - ,NVL(A.APP2_DES_C,B.APP2_DES_C) AS APP2_DES_C - ,NVL(A.APP3_DES,B.APP3_DES) AS APP3_DES - ,NVL(A.APP3_DES_C,B.APP3_DES_C) AS APP3_DES_C - ,NVL(A.GEN_RN,B.GEN_RN) AS GEN_RN -FROM dm.dm_td_external_packinfo_temp A -LEFT JOIN xiehe_external_packinfo_1 B -ON A.PACK_COD = B.PACK_COD - - --- COMMAND ---------- - ---更新dm.dm_td_external_packinfo_temp -insert overwrite dm.dm_td_external_packinfo_temp ( -PACK_COD, -PACK_DES, -STGH_DES, -PACK_LCH, -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, -IS_AZ, -AZ_MAIN, -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, -GEN_RN -) -select -PACK_COD, -PACK_DES, -STGH_DES, -PACK_LCH, -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, -IS_AZ, -AZ_MAIN, -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, -GEN_RN -from tmp.xiehe_external_packinfo_2 - - --- COMMAND ---------- - ------------------------------------------------------------------------------------ ---修改时间:20240827 ---修改人:FanXujia ---修改内容: ---有一部分pack的商品名、公司名为空,这两不能为空,将他们设置成OTHERS ------------------------------------------------------------------------------------ -update dm.dm_td_external_packinfo_temp -set PROD_DES = 'OTHERS' -where PROD_DES is null; - -update dm.dm_td_external_packinfo_temp -set PROD_DES_C = 'OTHERS' -where PROD_DES_C is null; - -update dm.dm_td_external_packinfo_temp -set CORP_DES = 'OTHERS' -where CORP_DES is null or CORP_DES=''; - -update dm.dm_td_external_packinfo_temp -set CORP_DES_C = 'OTHERS' -where CORP_DES_C is null or CORP_DES_C=''; - - --- COMMAND ---------- - --- MAGIC %md --- MAGIC # 增加data_source字段 - --- COMMAND ---------- - ---增加DATA_SOURCE字段 -insert overwrite table dm.dm_td_external_packinfo_temp2 ( -PACK_COD, -PACK_DES, -STGH_DES, -PACK_LCH, -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, -IS_AZ, -AZ_MAIN, -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, -GEN_RN, -DATA_SOURCE, -area, -h_level, -dept_name, -reimburse, -reimburse_type, -prescription_source, -atc, -new_code, -common_name, -product_name, -manu_des_xiehe, -pack_des_xiehe, -drug_delivery_route, -nfc, -LaunchTime, --- ,Family_Code, --- Family_Name -VBP_BATCH, -VBP_IMPLEMENTING_TIME -) -select -case when t1.PACK_COD is null or t1.PACK_COD = '' then concat('PACK_COD_',t2.DATA_SOURCE) - else t1.PACK_COD end as PACK_COD, -PACK_DES, -STGH_DES, -PACK_LCH, -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, -case when CORP_COD is null or CORP_COD = '' then concat('CORP_COD_',t2.DATA_SOURCE) - else CORP_COD end as CORP_COD, -CORP_DES, -CORP_DES_C, -BRANDTYPE, -IS_AZ, -AZ_MAIN, -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, -GEN_RN, -t2.DATA_SOURCE, -'' as area, -null as h_level, -'' as dept_name, -null as reimburse, -null as reimburse_type, -null as prescription_source, -null as atc, -'' as new_code, -null as common_name, -null as product_name, -null as manu_des_xiehe, -null as pack_des_xiehe, -null as drug_delivery_route, -null as nfc, -null as LaunchTime, --- ,null as Family_Code, --- null as Family_Name -'' as VBP_BATCH, -'' as VBP_IMPLEMENTING_TIME -from dm.dm_td_external_packinfo_temp t1 -inner join (select distinct pack_cod,DATA_SOURCE from external_sales_union where NVL(PACK_FLAG,'1') <> 0) t2 -on t1.PACK_COD = t2.pack_cod -union all -select -case when t1.PACK_COD is null or t1.PACK_COD = '' then concat('PACK_COD_',t2.DATA_SOURCE) - else t1.PACK_COD end as PACK_COD, -PACK_DES, -STGH_DES, -PACK_LCH, -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, -null as VBP_DESC, -MANU_COD, -MANU_DES, -MANU_DES_C, -MNFL_COD, -MNFL_DES, -case when CORP_COD is null or CORP_COD = '' then concat('CORP_COD_',t2.DATA_SOURCE) - else CORP_COD end as CORP_COD, -CORP_DES, -CORP_DES_C, -BRANDTYPE, -IS_AZ, -AZ_MAIN, -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, -GEN_RN, -t2.DATA_SOURCE, -'' as area, -null as h_level, -'' as dept_name, -null as reimburse, -null as reimburse_type, -null as prescription_source, -null as atc, -'' as new_code, -null as common_name, -null as product_name, -null as manu_des_xiehe, -null as pack_des_xiehe, -null as drug_delivery_route, -null as nfc, -null as LaunchTime, --- ,null as Family_Code, --- null as Family_Name -'' as VBP_BATCH, -'' as VBP_IMPLEMENTING_TIME -from dm.dm_td_external_packinfo_temp t1 -inner join (select distinct pack_cod,DATA_SOURCE from external_sales_union where PACK_FLAG = 0) t2 -on t1.PACK_COD = t2.pack_cod - --- COMMAND ---------- - ------------------------------------------------------------------------------------------------------ ---修改时间:20240829 ---修改人:FanXujia ---修改内容: ---增加协和相关产品属性值 ------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------ ---修改时间:20250621 ---修改人:chenwu ---修改内容: ---xiehe数据源变更格式故重写部分逻辑 ------------------------------------------------------------------------------------------------------- -with raw_data as ( ---一个pack_cod对应多个科室信息,也全部显示出来 -select distinct -NVL(new_code,'') new_code, -NVL(province,'') area, -max(h_level) h_level, -NVL(dept_name,'') dept_name, -max(reimburse) reimburse, -max(reimburse_type) reimburse_type, -max(prescription_source) prescription_source, -max(atc) atc, -max(common_name) common_name, -max(product_name) product_name, -max(manu_des) manu_des, -max(pack_des) pack_des, -max(drug_delivery_route) drug_delivery_route, -max(nfc) nfc, -max(iqvia_pack_code) iqvia_pack_code -from dm.dm_ext_xiehe_sales--dwd.dwd_gnd_ext_xiehe_raw_data_new -group by new_code,dept_name,area -) -,packinfo as ( -select -t1.PACK_COD, -t1.PACK_DES, -t1.STGH_DES, -t1.PACK_LCH, -t1.PROD_COD, -t1.PROD_DES, -t1.PROD_DES_C, -t1.CMPS_COD, -t1.CMPS_DES, -t1.CMPS_DES_C, -t1.ATC1_COD, -t1.ATC2_COD, -t1.ATC3_COD, -t1.ATC4_COD, -t1.APP1_COD, -t1.APP2_COD, -t1.APP3_COD, -t1.BIO_DESC, -t1.GENE_ORIG_DESC, -t1.ETH_OTC_DESC, -t1.NRDL_DESC, -t1.NRDL_ENTRY_DATE, -t1.EDL_DESC, -t1.TCM_DESC, -t1.PAED_DESC, -t1.GQCE_DESC, -t1.VBP_DESC, -t1.MANU_COD, -t1.MANU_DES, -t1.MANU_DES_C, -t1.MNFL_COD, -t1.MNFL_DES, -t1.CORP_COD, -t1.CORP_DES, -t1.CORP_DES_C, -t1.BRANDTYPE, -t1.IS_AZ, -t1.AZ_MAIN, -t1.ATC1_DES, -t1.ATC1_DES_C, -t1.ATC2_DES, -t1.ATC2_DES_C, -t1.ATC3_DES, -t1.ATC3_DES_C, -t1.ATC4_DES, -t1.ATC4_DES_C, -t1.APP1_DES, -t1.APP1_DES_C, -t1.APP2_DES, -t1.APP2_DES_C, -t1.APP3_DES, -t1.APP3_DES_C, -t1.GEN_RN, -t1.DATA_SOURCE, -t3.area, -t3.h_level, -t3.dept_name, -t3.reimburse, -t3.reimburse_type, -t3.prescription_source, -t3.atc, -t3.new_code, -t3.common_name, -t3.product_name, -t3.manu_des manu_des_xiehe, -t3.pack_des pack_des_xiehe, -t3.drug_delivery_route, -t3.nfc, -null as LaunchTime, --- ,null as Family_Code, --- null as Family_Name -'' as VBP_BATCH, -'' as VBP_IMPLEMENTING_TIME -from dm.dm_td_external_packinfo_temp2 t1 -left join raw_data t3 -on upper(t1.pack_cod) = upper(t3.iqvia_pack_code) -where t1.DATA_SOURCE = 'XH Data(Quarterly)' -union all -select -* -from dm.dm_td_external_packinfo_temp2 -where DATA_SOURCE <> 'XH Data(Quarterly)' -) - - -insert overwrite table dm.dm_td_external_packinfo_temp2 ( -PACK_COD, -PACK_DES, -STGH_DES, -PACK_LCH, -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, -IS_AZ, -AZ_MAIN, -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, -GEN_RN, -DATA_SOURCE, -area, -h_level, -dept_name, -reimburse, -reimburse_type, -prescription_source, -atc, -new_code, -common_name, -product_name, -manu_des_xiehe, -pack_des_xiehe, -drug_delivery_route, -nfc, -LaunchTime, --- ,Family_Code, --- Family_Name -VBP_BATCH, -VBP_IMPLEMENTING_TIME -) -select * -from packinfo; - --- COMMAND ---------- - ------------------------------------------------------------------------------------------------------ ---修改时间:20240902 ---修改人:FanXujia ---修改内容: ---增加CHPA的维度信息 ------------------------------------------------------------------------------------------------------- -with PACK_launchtime as ( -select PACK.Pack_Code,max(PACK.launchtime) launchtime -from dwd.dwd_ims_td_pack PACK -group by PACK.Pack_Code -) --- ,Family as ( --- select PACK_COD,max(Family_Code) Family_Code,max(Family_Name) Family_Name --- from DM.DM_IMS_TD_PACK_PROPERTY --- where MARKET = 'IMS ALL Market' --- group by PACK_COD --- ) -,packinfo as ( -select -t1.PACK_COD, -t1.PACK_DES, -t1.STGH_DES, -t1.PACK_LCH, -t1.PROD_COD, -t1.PROD_DES, -t1.PROD_DES_C, -t1.CMPS_COD, -t1.CMPS_DES, -t1.CMPS_DES_C, -t1.ATC1_COD, -t1.ATC2_COD, -t1.ATC3_COD, -t1.ATC4_COD, -t1.APP1_COD, -t1.APP2_COD, -t1.APP3_COD, -t1.BIO_DESC, -t1.GENE_ORIG_DESC, -t1.ETH_OTC_DESC, -t1.NRDL_DESC, -t1.NRDL_ENTRY_DATE, -t1.EDL_DESC, -t1.TCM_DESC, -t1.PAED_DESC, -t1.GQCE_DESC, -t1.VBP_DESC, -t1.MANU_COD, -t1.MANU_DES, -t1.MANU_DES_C, -t1.MNFL_COD, -t1.MNFL_DES, -t1.CORP_COD, -t1.CORP_DES, -t1.CORP_DES_C, -t1.BRANDTYPE, -t1.IS_AZ, -t1.AZ_MAIN, -t1.ATC1_DES, -t1.ATC1_DES_C, -t1.ATC2_DES, -t1.ATC2_DES_C, -t1.ATC3_DES, -t1.ATC3_DES_C, -t1.ATC4_DES, -t1.ATC4_DES_C, -t1.APP1_DES, -t1.APP1_DES_C, -t1.APP2_DES, -t1.APP2_DES_C, -t1.APP3_DES, -t1.APP3_DES_C, -t1.GEN_RN, -t1.DATA_SOURCE, -t1.area, -t1.h_level, -NVL(t1.dept_name,'') dept_name, -t1.reimburse, -t1.reimburse_type, -t1.prescription_source, -t1.atc, -t1.new_code, -t1.common_name, -t1.product_name, -t1.manu_des_xiehe, -t1.pack_des_xiehe, -t1.drug_delivery_route, -t1.nfc, -t2.LaunchTime, --- ,t3.Family_Code, --- t3.Family_Name -t1.VBP_BATCH, -t1.VBP_IMPLEMENTING_TIME -from dm.dm_td_external_packinfo_temp2 t1 -left join PACK_launchtime t2 -on t1.PACK_COD = t2.Pack_Code --- left join Family t3 --- on t1.PACK_COD = t3.PACK_COD -where t1.DATA_SOURCE = 'IQVIA-CHPA(Monthly)' -union all -select * -from dm.dm_td_external_packinfo_temp2 -where DATA_SOURCE <> 'IQVIA-CHPA(Monthly)' -) - - - -insert overwrite table dm.dm_td_external_packinfo_temp2 ( -PACK_COD, -PACK_DES, -STGH_DES, -PACK_LCH, -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, -IS_AZ, -AZ_MAIN, -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, -GEN_RN, -DATA_SOURCE, -area, -h_level, -dept_name, -reimburse, -reimburse_type, -prescription_source, -atc, -new_code, -common_name, -product_name, -manu_des_xiehe, -pack_des_xiehe, -drug_delivery_route, -nfc, -LaunchTime, --- ,Family_Code, --- Family_Name -VBP_BATCH, -VBP_IMPLEMENTING_TIME -) -select * -from packinfo; - --- COMMAND ---------- - ---修改时间:20240808 ---修改人:FanXuJia ---修改背景: ---事实表与维度表来自于不同手工表,目前存在一部分pack_cod在事实表有销量,但是在维度表没有这个pack_cod,导致销量缺失。 ---因此需要从事实表补全这部分pack_cod -with raw_data as ( ---一个pack_cod对应多个科室信息,也全部显示出来 -select distinct -NVL(new_code,'') new_code, -NVL(province,'') area, -max(h_level) h_level, -NVL(dept_name,'') dept_name, -max(reimburse) reimburse, -max(reimburse_type) reimburse_type, -max(prescription_source) prescription_source, -max(atc) atc, -max(common_name) common_name, -max(product_name) product_name, -max(manu_des) manu_des, -max(pack_des) pack_des, -max(drug_delivery_route) drug_delivery_route, -max(nfc) nfc, -max(iqvia_pack_code) iqvia_pack_code -from dm.dm_ext_xiehe_sales--dwd.dwd_gnd_ext_xiehe_raw_data_new -group by new_code,dept_name,area -) -,PACK_launchtime as ( -select PACK.Pack_Code,max(PACK.launchtime) launchtime -from dwd.dwd_ims_td_pack PACK -group by PACK.Pack_Code -) --- ,Family as ( --- select PACK_COD,max(Family_Code) Family_Code,max(Family_Name) Family_Name --- from DM.DM_IMS_TD_PACK_PROPERTY --- where MARKET = 'IMS ALL Market' --- group by PACK_COD --- ) -,tmp_packinfo as ( -select distinct - t1.PACK_COD,t1.CORP_COD,t1.DATA_SOURCE,nvl(t3.CORP_DES,'OTHERS') CORP_DES,nvl(t3.CORP_DES_C,'OTHERS') CORP_DES_C, -t5.area, -t5.h_level, -t5.dept_name, -t5.reimburse, -t5.reimburse_type, -t5.prescription_source, -t5.atc, -t5.new_code, -t5.common_name, -t5.product_name, -t5.manu_des manu_des_xiehe, -t5.pack_des pack_des_xiehe, -t5.drug_delivery_route, -t5.nfc -,null as launchtime --- ,null as Family_Code --- ,null as Family_Name -from external_sales_union t1 -left join dm.dm_td_external_packinfo_temp2 t2 -on t1.PACK_COD = t2.PACK_COD -and t1.DATA_SOURCE = t2.DATA_SOURCE -left join (select CORP_COD,max(CORP_DES) CORP_DES,max(CORP_DES_C) CORP_DES_C - from dm.dm_td_external_packinfo_temp2 group by CORP_COD) t3 -on t1.CORP_COD = t3.CORP_COD --- left join pack_code_info t4 --- on t1.PACK_COD = t4.IQVIA_PACK_CODE -left join raw_data t5 -on upper(t1.pack_cod) = upper(t5.iqvia_pack_code) -where t2.PACK_COD is null -and t1.DATA_SOURCE = 'XH Data(Quarterly)' -union all -select distinct - t1.PACK_COD,t1.CORP_COD,t1.DATA_SOURCE,nvl(t3.CORP_DES,'OTHERS') CORP_DES,nvl(t3.CORP_DES_C,'OTHERS') CORP_DES_C, -'' as area, -null as h_level, -'' as dept_name, -null as reimburse, -null as reimburse_type, -null as prescription_source, -null as atc, -'' as new_code, -null as common_name, -null as product_name, -null as manu_des_xiehe, -null as pack_des_xiehe, -null as drug_delivery_route, -null as nfc, -t4.launchtime --- ,t5.Family_Code --- ,t5.Family_Name -from external_sales_union t1 -left join dm.dm_td_external_packinfo_temp2 t2 -on t1.PACK_COD = t2.PACK_COD -and t1.DATA_SOURCE = t2.DATA_SOURCE -left join (select CORP_COD,max(CORP_DES) CORP_DES,max(CORP_DES_C) CORP_DES_C - from dm.dm_td_external_packinfo_temp2 group by CORP_COD) t3 -on t1.CORP_COD = t3.CORP_COD -left join PACK_launchtime t4 -on t1.PACK_COD = t4.Pack_Code --- left join Family t5 --- on t1.PACK_COD = t5.PACK_COD -where t2.PACK_COD is null -and t1.DATA_SOURCE = 'IQVIA-CHPA(Monthly)' -union all -select distinct - t1.PACK_COD,t1.CORP_COD,t1.DATA_SOURCE,nvl(t3.CORP_DES,'OTHERS') CORP_DES,nvl(t3.CORP_DES_C,'OTHERS') CORP_DES_C, -'' as area, -null as h_level, -'' as dept_name, -null as reimburse, -null as reimburse_type, -null as prescription_source, -null as atc, -'' as new_code, -null as common_name, -null as product_name, -null as manu_des_xiehe, -null as pack_des_xiehe, -null as drug_delivery_route, -null as nfc, -null as launchtime --- ,null as Family_Code --- ,null as Family_Name -from external_sales_union t1 -left join dm.dm_td_external_packinfo_temp2 t2 -on t1.PACK_COD = t2.PACK_COD -and t1.DATA_SOURCE = t2.DATA_SOURCE -left join (select CORP_COD,max(CORP_DES) CORP_DES,max(CORP_DES_C) CORP_DES_C - from dm.dm_td_external_packinfo_temp2 group by CORP_COD) t3 -on t1.CORP_COD = t3.CORP_COD -where t2.PACK_COD is null -and t1.DATA_SOURCE not in ('XH Data(Quarterly)','IQVIA-CHPA(Monthly)') -) - -insert into table dm.dm_td_external_packinfo_temp2 ( -PACK_COD, -PACK_DES, -STGH_DES, -PACK_LCH, -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, -IS_AZ, -AZ_MAIN, -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, -GEN_RN, -DATA_SOURCE, -area, -h_level, -dept_name, -reimburse, -reimburse_type, -prescription_source, -atc, -new_code, -common_name, -product_name, -manu_des_xiehe, -pack_des_xiehe, -drug_delivery_route, -nfc, -LaunchTime, --- ,Family_Code, --- Family_Name -VBP_BATCH, -VBP_IMPLEMENTING_TIME -) -select distinct -PACK_COD, -null as PACK_DES, -null as STGH_DES, -null as PACK_LCH, -null as PROD_COD, -null as PROD_DES, -null as PROD_DES_C, -null as CMPS_COD, -null as CMPS_DES, -null as CMPS_DES_C, -null as ATC1_COD, -null as ATC2_COD, -null as ATC3_COD, -null as ATC4_COD, -null as APP1_COD, -null as APP2_COD, -null as APP3_COD, -null as BIO_DESC, -null as GENE_ORIG_DESC, -null as ETH_OTC_DESC, -null as NRDL_DESC, -null as NRDL_ENTRY_DATE, -null as EDL_DESC, -null as TCM_DESC, -null as PAED_DESC, -null as GQCE_DESC, -null as VBP_DESC, -null as MANU_COD, -null as MANU_DES, -null as MANU_DES_C, -null as MNFL_COD, -null as MNFL_DES, -CORP_COD, -CORP_DES, -CORP_DES_C, -null as BRANDTYPE, -null as IS_AZ, -null as AZ_MAIN, -null as ATC1_DES, -null as ATC1_DES_C, -null as ATC2_DES, -null as ATC2_DES_C, -null as ATC3_DES, -null as ATC3_DES_C, -null as ATC4_DES, -null as ATC4_DES_C, -null as APP1_DES, -null as APP1_DES_C, -null as APP2_DES, -null as APP2_DES_C, -null as APP3_DES, -null as APP3_DES_C, -null as GEN_RN, -DATA_SOURCE, -area, -h_level, -dept_name, -reimburse, -reimburse_type, -prescription_source, -atc, -new_code, -common_name, -product_name, -manu_des_xiehe, -pack_des_xiehe, -drug_delivery_route, -nfc, -LaunchTime, --- ,null as Family_Code, --- null as Family_Name -'' as VBP_BATCH, -'' as VBP_IMPLEMENTING_TIME -from tmp_packinfo - - --- COMMAND ---------- - ------------------------------------------------------------------------------------------------- ---修改时间:20240923 ---修改人:FanXujia ---修改内容: ---增加VBP信息 ------------------------------------------------------------------------------------------------- -with tmp as ( -select t1.PACK_COD, -t1.PACK_DES, -t1.STGH_DES, -t1.PACK_LCH, -t1.PROD_COD, -t1.PROD_DES, -t1.PROD_DES_C, -t1.CMPS_COD, -t1.CMPS_DES, -t1.CMPS_DES_C, -t1.ATC1_COD, -t1.ATC2_COD, -t1.ATC3_COD, -t1.ATC4_COD, -t1.APP1_COD, -t1.APP2_COD, -t1.APP3_COD, -t1.BIO_DESC, -t1.GENE_ORIG_DESC, -t1.ETH_OTC_DESC, -t1.NRDL_DESC, -t1.NRDL_ENTRY_DATE, -t1.EDL_DESC, -t1.TCM_DESC, -t1.PAED_DESC, -t1.GQCE_DESC, -NVL(t1.VBP_DESC,'Non VBP') AS VBP_DESC, -t1.MANU_COD, -t1.MANU_DES, -t1.MANU_DES_C, -t1.MNFL_COD, -t1.MNFL_DES, -t1.CORP_COD, -t1.CORP_DES, -t1.CORP_DES_C, -t1.BRANDTYPE, -t1.IS_AZ, -t1.AZ_MAIN, -t1.ATC1_DES, -t1.ATC1_DES_C, -t1.ATC2_DES, -t1.ATC2_DES_C, -t1.ATC3_DES, -t1.ATC3_DES_C, -t1.ATC4_DES, -t1.ATC4_DES_C, -t1.APP1_DES, -t1.APP1_DES_C, -t1.APP2_DES, -t1.APP2_DES_C, -t1.APP3_DES, -t1.APP3_DES_C, -t1.GEN_RN, -t1.DATA_SOURCE, -t1.area, -t1.h_level, -t1.dept_name, -t1.reimburse, -t1.reimburse_type, -t1.prescription_source, -t1.atc, -t1.new_code, -t1.common_name, -t1.product_name, -t1.manu_des_xiehe, -t1.pack_des_xiehe, -t1.drug_delivery_route, -t1.nfc, -t1.LaunchTime, -NVL(t2.VBP_BATCH,'') VBP_BATCH, -NVL(t2.VBP_IMPLEMENTING_TIME,'') VBP_IMPLEMENTING_TIME -from dm.dm_td_external_packinfo_temp2 t1 -left join dwd.dwd_gnd_ims_vbp_information t2 -on t1.PACK_COD = t2.PACK_CODE -) - -insert overwrite table dm.dm_td_external_packinfo_temp2 -select * from tmp - --- COMMAND ---------- - -------------------------------------------------------------------------------------------------- ---修改时间:20240906 ---修改人:FanXujia ---修改内容: ---按主键去重 -------------------------------------------------------------------------------------------------- -with tmp as ( -select -PACK_COD, -max(PACK_DES) PACK_DES, -max(STGH_DES) STGH_DES, -max(PACK_LCH) PACK_LCH, -max(PROD_COD) PROD_COD, -max(PROD_DES) PROD_DES, -COALESCE(max(PROD_DES_C),'') PROD_DES_C, -max(CMPS_COD) CMPS_COD, -max(CMPS_DES) CMPS_DES, -max(CMPS_DES_C) CMPS_DES_C, -max(ATC1_COD) ATC1_COD, -max(ATC2_COD) ATC2_COD, -max(ATC3_COD) ATC3_COD, -max(ATC4_COD) ATC4_COD, -max(APP1_COD) APP1_COD, -max(APP2_COD) APP2_COD, -max(APP3_COD) APP3_COD, -max(BIO_DESC) BIO_DESC, -max(GENE_ORIG_DESC) GENE_ORIG_DESC, -max(ETH_OTC_DESC) ETH_OTC_DESC, -max(NRDL_DESC) NRDL_DESC, -max(NRDL_ENTRY_DATE) NRDL_ENTRY_DATE, -max(EDL_DESC) EDL_DESC, -max(TCM_DESC) TCM_DESC, -max(PAED_DESC) PAED_DESC, -max(GQCE_DESC) GQCE_DESC, -max(VBP_DESC) VBP_DESC, -max(MANU_COD) MANU_COD, -max(MANU_DES) MANU_DES, -max(MANU_DES_C) MANU_DES_C, -max(MNFL_COD) MNFL_COD, -max(MNFL_DES) MNFL_DES, -max(CORP_COD) CORP_COD, -max(CORP_DES) CORP_DES, -max(CORP_DES_C) CORP_DES_C, -max(BRANDTYPE) BRANDTYPE, -max(IS_AZ) IS_AZ, -max(AZ_MAIN) AZ_MAIN, -max(ATC1_DES) ATC1_DES, -max(ATC1_DES_C) ATC1_DES_C, -max(ATC2_DES) ATC2_DES, -max(ATC2_DES_C) ATC2_DES_C, -max(ATC3_DES) ATC3_DES, -max(ATC3_DES_C) ATC3_DES_C, -max(ATC4_DES) ATC4_DES, -max(ATC4_DES_C) ATC4_DES_C, -max(APP1_DES) APP1_DES, -max(APP1_DES_C) APP1_DES_C, -max(APP2_DES) APP2_DES, -max(APP2_DES_C) APP2_DES_C, -max(APP3_DES) APP3_DES, -max(APP3_DES_C) APP3_DES_C, -max(GEN_RN) GEN_RN, -DATA_SOURCE, -area, -max(h_level) h_level, -dept_name, -max(reimburse) reimburse, -max(reimburse_type) reimburse_type, -max(prescription_source) prescription_source, -max(atc) atc, -new_code, -max(common_name) common_name, -max(product_name) product_name, -max(manu_des_xiehe) manu_des_xiehe, -max(pack_des_xiehe) pack_des_xiehe, -max(drug_delivery_route) drug_delivery_route, -max(nfc) nfc, -max(LaunchTime) LaunchTime, -max(VBP_BATCH) VBP_BATCH, -max(VBP_IMPLEMENTING_TIME) VBP_IMPLEMENTING_TIME -from dm.dm_td_external_packinfo_temp2 -group by DATA_SOURCE,PACK_COD,dept_name,new_code,area -) - -insert overwrite dm.dm_td_external_packinfo_temp2 -select * from tmp; - --- COMMAND ---------- - ------------------------------------------------------------------------------------------- ---修改时间:20241104 ---修改人:Fanxujia ---修改内容: ---CHPA有个分子式英文名:TRADITIONAL CHINESE MEDICINE,对应的中文名是取自另一个表tblProdCN的namec字段,每个产品的中文名目前是不同的。 ---用户想要让中文名统一显示成“传统中药” ---因此通过hardcoding的方式,把中文名修改成传统中药。 ---另外,本改动不局限于CHPA渠道,全部渠道一起修改。 -------------------------------------------------------------------------------------------- -update dm.dm_td_external_packinfo_temp2 -set CMPS_DES_C = '传统中药' -where upper(CMPS_DES) = 'TRADITIONAL CHINESE MEDICINE' -; - --- COMMAND ---------- - --------------------------------------------------------------------------------- ---修改时间:20241025 ---修改人:Fanxujia ---修改内容: ---外部数据报告优化,将PBI的逻辑搬到DBR --------------------------------------------------------------------------------- -insert overwrite table dm.dm_td_external_packinfo -( -PACK_COD, -PACK_DES, -PACK_LCH, -PROD_COD, -PROD_DES, -PROD_DES_C, -CMPS_COD, -CMPS_DES, -CMPS_DES_C, -VBP_BATCH, -VBP_IMPLEMENTING_TIME, -STGH_DES, -BIO_DESC, -ETH_OTC_DESC, -NRDL_DESC, -NRDL_ENTRY_DATE, -EDL_DESC, -TCM_DESC, -PAED_DESC, -GQCE_DESC, -MANU_COD, -MANU_DES, -MNFL_COD, -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, -APP1_COD, -APP1_DES, -APP1_DES_C, -APP2_COD, -APP2_DES, -APP2_DES_C, -APP3_COD, -APP3_DES, -APP3_DES_C, -GENE_ORIG_DESC, -VBP_DESC, -CORP_COD, -GEN_RN, -CORP_DES, -CORP_DES_C, -PACK_RN, -PROD_RN, -CMPS_RN, -DATA_SOURCE, -ATC, -NEW_CODE, -COMMON_NAME, -PRODUCT_NAME, -MANU_DES_XIEHE, -PACK_DES_XIEHE, -DRUG_DELIVERY_ROUTE, -NFC, -CORP_TYPE, -LAUNCHTIME, -VBP_BRAND -) - -with CHPA_PACK_SALES as ( - SELECT - upper(A.PACK_DES) PACK_DES, - upper(A.PROD_DES_C) PROD_DES_C, - upper(A.CORP_DES_C) CORP_DES_C, - SUM(B.SALES_VALUE_CAL) SALES_VALUE_CAL - FROM - DM.dm_td_external_packinfo_temp2 A - INNER JOIN external_sales_union B ON A.PACK_COD = B.PACK_COD - and A.dept_name = B.dept_name - and A.new_code = B.new_code - and A.area = B.area - and A.DATA_SOURCE = B.DATA_SOURCE - WHERE - B.YYYYMM >= ( - SELECT - LEFT(MAX(YYYYMM), 4) * 100 + 1 - FROM - external_sales_union - WHERE - DATA_SOURCE = 'IQVIA-CHPA(Monthly)' - ) - AND B.DATA_SOURCE = 'IQVIA-CHPA(Monthly)' - GROUP BY - upper(A.PACK_DES), - upper(A.CORP_DES_C), - upper(A.PROD_DES_C) -) -,pack_N as ( - SELECT - PACK_DES, - PROD_DES_C, - CORP_DES_C, - row_number() OVER( - PARTITION BY 1 - ORDER BY - ( - CASE - WHEN PACK_DES = '' - OR PROD_DES_C = '' - OR CORP_DES_C = '' THEN 2 - ELSE 1 - END - ) ASC, - sum(SALES_VALUE_CAL) OVER(PARTITION BY PROD_DES_C, CORP_DES_C) DESC, - SALES_VALUE_CAL DESC - ) RN - FROM - CHPA_PACK_SALES -) - -,CHPA_BRAND_SALES as ( - SELECT - upper(A.PROD_DES_C) PROD_DES_C, - upper(A.CORP_DES_C) CORP_DES_C, - SUM(B.SALES_VALUE_CAL) SALES_VALUE_CAL - FROM - DM.dm_td_external_packinfo_temp2 A - INNER JOIN external_sales_union B ON A.PACK_COD = B.PACK_COD - and A.dept_name = B.dept_name - and A.new_code = B.new_code - and A.area = B.area - and A.DATA_SOURCE = B.DATA_SOURCE - WHERE - B.YYYYMM >= ( - SELECT - LEFT(MAX(YYYYMM), 4) * 100 + 1 - FROM - external_sales_union - WHERE - DATA_SOURCE = 'IQVIA-CHPA(Monthly)' - ) - AND B.DATA_SOURCE = 'IQVIA-CHPA(Monthly)' - GROUP BY - upper(A.CORP_DES_C), - upper(A.PROD_DES_C) -) -,brand_N as ( - SELECT - PROD_DES_C, - CORP_DES_C, - row_number() OVER( - PARTITION BY 1 - ORDER BY - ( - CASE - WHEN PROD_DES_C = '' - OR CORP_DES_C = '' THEN 2 - ELSE 1 - END - ) ASC, - SALES_VALUE_CAL DESC - ) RN - FROM - CHPA_BRAND_SALES -) - -,CHPA_MOLE_SALES as ( - SELECT - upper(A.CMPS_DES) CMPS_DES, - upper(A.CMPS_DES_C) CMPS_DES_C, - SUM(B.SALES_VALUE_CAL) SALES_VALUE_CAL - FROM - DM.dm_td_external_packinfo_temp2 A - INNER JOIN external_sales_union B ON A.PACK_COD = B.PACK_COD - and A.dept_name = B.dept_name - and A.new_code = B.new_code - and A.area = B.area - and A.DATA_SOURCE = B.DATA_SOURCE - WHERE - B.YYYYMM >= ( - SELECT - LEFT(MAX(YYYYMM), 4) * 100 + 1 - FROM - external_sales_union - WHERE - DATA_SOURCE = 'IQVIA-CHPA(Monthly)' - ) - AND B.DATA_SOURCE = 'IQVIA-CHPA(Monthly)' - GROUP BY - upper(A.CMPS_DES), - upper(A.CMPS_DES_C) -) -,mole_N as ( - SELECT - CMPS_DES, - CMPS_DES_C, - row_number() OVER( - PARTITION BY 1 - ORDER BY - ( - CASE - WHEN CMPS_DES = '' - OR CMPS_DES_C = '' THEN 2 - ELSE 1 - END - ) ASC, - SALES_VALUE_CAL DESC - ) RN - FROM - CHPA_MOLE_SALES -) - ------------------------------------------------------------------------------- ---修改时间:20241209 ---修改人:Fanxujia ---修改内容: ---调整VBP_BRAND的逻辑 ---一个Brand对应多个pack,每个pack会有不同的VBP_DESC ---有以下几种情况 ---1:一个Brand下面的所有pack的VBP_DESC都一样,VBP_BRAND = VBP_DESC的值 ---2:一个Brand下面的VBP_DESC存在VBP-IN、VBP-OUT两种情况,VBP_BRAND = VBP-IN/OUT ---3:一个Brand下面的VBP_DESC存在VBP-IN、Non VBP两种情况,VBP_BRAND = VBP-IN/Non VBP ---4:一个Brand下面的VBP_DESC存在VBP-OUT、Non VBP两种情况,VBP_BRAND = VBP-OUT/Non VBP ---5:一个Brand下面的VBP_DESC存在VBP-IN、VBP-OUT、Non VBP三种情况,VBP_BRAND = VBP-IN/OUT/Non VBP ------------------------------------------------------------------------------- --- ,vbp_brand as ( --- select PROD_DES_C,DATA_SOURCE,max(VBP_DESC) VBP_BRAND --- from DM.dm_td_external_packinfo_temp2 --- group by PROD_DES_C,DATA_SOURCE --- ) -,vbp_brand_1 as ( -select distinct -PROD_DES_C, -DATA_SOURCE, -case when VBP_DESC = 'VBP-IN' then 1 - when VBP_DESC = 'VBP-OUT' then 2 - when VBP_DESC = 'Non VBP' then 4 - else 99 -end as VBP_FLAG -from dm.dm_td_external_packinfo_temp2 -) -,vbp_brand as ( -select -PROD_DES_C, -DATA_SOURCE, -case ---单独一个VBP-IN(1) - when sum(VBP_FLAG) = 1 then 'VBP-IN' ---单独一个VBP-OUT(2) - when sum(VBP_FLAG) = 2 then 'VBP-OUT' ---单独一个Non VBP(4) - when sum(VBP_FLAG) = 4 then 'Non VBP' ---同时存在VBP-IN(1) + VBP-OUT(2) = 3 - when sum(VBP_FLAG) = 3 then 'VBP-IN/OUT' ---同时存在VBP-IN(1) + Non VBP(4) = 5 - when sum(VBP_FLAG) = 5 then 'VBP-IN/Non VBP' ---同时存在VBP-OUT(2) + Non VBP(4) = 6 - when sum(VBP_FLAG) = 6 then 'VBP-OUT/Non VBP' ---同时存在VBP-IN(1) + VBP-OUT(2) + Non VBP(4) = 7 - when sum(VBP_FLAG) = 7 then 'VBP-IN/OUT/Non VBP' - else '' -end as VBP_BRAND -from vbp_brand_1 -group by PROD_DES_C,DATA_SOURCE -) - - -SELECT - A.PACK_COD, - upper(max(A.PACK_DES)) PACK_DES, - max(A.PACK_LCH) PACK_LCH, - max(A.PROD_COD) PROD_COD, - max(A.PROD_DES) PROD_DES, - upper(max(A.PROD_DES_C)) PROD_DES_C, - max(A.CMPS_COD) CMPS_COD, - upper(max(A.CMPS_DES)) CMPS_DES, - upper(max(A.CMPS_DES_C)) CMPS_DES_C, - max(A.VBP_BATCH) VBP_BATCH, - max(A.VBP_IMPLEMENTING_TIME) VBP_IMPLEMENTING_TIME, - max(A.STGH_DES) STGH_DES, - max(A.BIO_DESC) BIO_DESC, - max(A.ETH_OTC_DESC) ETH_OTC_DESC, - max(A.NRDL_DESC) NRDL_DESC, - max(A.NRDL_ENTRY_DATE) NRDL_ENTRY_DATE, - max(A.EDL_DESC) EDL_DESC, - max(A.TCM_DESC) TCM_DESC, - max(A.PAED_DESC) PAED_DESC, - max(A.GQCE_DESC) GQCE_DESC, - max(A.MANU_COD) MANU_COD, - max(A.MANU_DES) MANU_DES, - max(A.MNFL_COD) MNFL_COD, - max(A.ATC1_COD) ATC1_COD, - max(A.ATC1_DES) ATC1_DES, - max(A.ATC1_DES_C) ATC1_DES_C, - max(A.ATC2_COD) ATC2_COD, - max(A.ATC2_DES) ATC2_DES, - max(A.ATC2_DES_C) ATC2_DES_C, - max(A.ATC3_COD) ATC3_COD, - max(A.ATC3_DES) ATC3_DES, - max(A.ATC3_DES_C) ATC3_DES_C, - max(A.ATC4_COD) ATC4_COD, - max(A.ATC4_DES) ATC4_DES, - max(A.ATC4_DES_C) ATC4_DES_C, - max(A.APP1_COD) APP1_COD, - max(A.APP1_DES) APP1_DES, - max(A.APP1_DES_C) APP1_DES_C, - max(A.APP2_COD) APP2_COD, - max(A.APP2_DES) APP2_DES, - max(A.APP2_DES_C) APP2_DES_C, - max(A.APP3_COD) APP3_COD, - max(A.APP3_DES) APP3_DES, - max(A.APP3_DES_C) APP3_DES_C, - max(A.GENE_ORIG_DESC) GENE_ORIG_DESC, - max(A.VBP_DESC) VBP_DESC, - max(A.CORP_COD) CORP_COD, - max(A.GEN_RN) GEN_RN, - max(A.CORP_DES) CORP_DES, - upper(max(A.CORP_DES_C)) CORP_DES_C, - NVL(max(PN.RN), 9999999) PACK_RN, - NVL(max(BN.RN), 9999999) PROD_RN, - NVL(max(MN.RN), 9999999) CMPS_RN, - A.DATA_SOURCE, - max(A.ATC) ATC, - A.NEW_CODE, - max(A.COMMON_NAME) COMMON_NAME, - max(A.PRODUCT_NAME) PRODUCT_NAME, - max(A.MANU_DES_XIEHE) MANU_DES_XIEHE, - max(A.PACK_DES_XIEHE) PACK_DES_XIEHE, - max(A.DRUG_DELIVERY_ROUTE) DRUG_DELIVERY_ROUTE, - max(A.NFC) NFC, - case when max(upper(A.MNFL_DES)) = 'LOCAL' then 'LOCAL' - else 'MNC' - end as CORP_TYPE, - max(A.LAUNCHTIME) LAUNCHTIME, - max(VBP.VBP_BRAND) VBP_BRAND -FROM - DM.dm_td_external_packinfo_temp2 A - LEFT JOIN pack_N PN ON upper(A.PACK_DES) = PN.PACK_DES - AND upper(A.PROD_DES_C) = PN.PROD_DES_C - AND upper(A.CORP_DES_C) = PN.CORP_DES_C - LEFT JOIN brand_N BN ON upper(A.PROD_DES_C) = BN.PROD_DES_C - AND upper(A.CORP_DES_C) = BN.CORP_DES_C - LEFT JOIN mole_N MN ON upper(A.CMPS_DES) = MN.CMPS_DES - AND upper(A.CMPS_DES_C) = MN.CMPS_DES_C - left join vbp_brand VBP on VBP.PROD_DES_C = A.PROD_DES_C - and VBP.DATA_SOURCE = A.DATA_SOURCE -group by A.PACK_COD,A.NEW_CODE,A.DATA_SOURCE - --- COMMAND ---------- - --- DBTITLE 1,找出多个中文名或英文名的PROD -insert overwrite table dm.dm_td_exchange_packinfo_m_prod -with -base_table as ( - select - PROD_DES_C - ,PROD_COD - ,CMPS_COD - ,CMPS_DES_C - ,DATA_SOURCE - from DM.DM_TD_EXTERNAL_PACKINFO - where PROD_COD is not null - group by 1,2,3,4,5 -) -select distinct - t1.prod_cod,t1.cmps_cod,t1.data_source -from base_table t1 - left join (select PROD_DES_C,DATA_SOURCE from base_table - group by 1,2 - having count(distinct PROD_COD)>1 - ) t2 -on t1.prod_des_c = t2.prod_des_c and t1.data_source = t2.data_source -left join (select CMPS_DES_C,DATA_SOURCE from base_table - group by 1,2 - having count(distinct cmps_cod)>1 - ) t3 -on t1.CMPS_DES_C = t3.CMPS_DES_C and t1.data_source = t3.data_source -where t2.prod_des_c is not null or t3.cmps_des_c is not null \ No newline at end of file diff --git a/EXTERNAL/07 dm_td_external_packinfo.sql:Zone.Identifier b/EXTERNAL/07 dm_td_external_packinfo.sql:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2x 'Others' -and pack_code <> '' -) - ---只存放有外部数据的公司信息数据 -INSERT OVERWRITE dm.dm_td_external_corp(CORP_COD,CORP_DES,CORP_DES_C,CORP_TYPE) -SELECT A.CORP_COD,CASE WHEN MAX(CORP_DES) LIKE 'ASTRAZENECA%' THEN 'ASTRAZENECA' ELSE MAX(CORP_DES) END CORP_DES,MAX(CORP_DES_C) CORP_DES_C, -CASE WHEN MAX(UPPER(MNFL_DES)) = 'LOCAL' THEN 'LOCAL' -WHEN UPPER(A.CORP_COD) LIKE '%CORP_COD%' OR UPPER(A.CORP_COD) LIKE '%OTHERS%' THEN '' -ELSE 'MNC' END CORP_TYPE -FROM (select distinct PACK_COD,CORP_COD,CORP_DES,CORP_DES_C,MNFL_DES from DM.dm_td_external_packinfo_temp2) A -INNER JOIN external_sales B ON A.PACK_COD = B.PACK_COD -WHERE A.CORP_COD IS NOT NULL -GROUP BY A.CORP_COD - --- COMMAND ---------- - - -------------ec补充缺少的Corp信息 -insert into dm.dm_td_external_corp(CORP_COD,CORP_DES,CORP_DES_C,CORP_TYPE) -select - case when CORP_COD is null or CORP_COD = '' then 'CORP_COD_EC(Monthly)' - else CORP_COD end as CORP_COD, - max(CORP_DES) CORP_DES, - max(CORP_DES_C) CORP_DES, - max(case when upper(MNFL_DES) = 'LOCAL' then 'LOCAL' else 'MNC' end) CORP_TYPE -from dwd.dwd_inc_gnd_retail_b2c_label_total -where CORP_COD in ( - select distinct - a.CORP_COD - from (select distinct corp_cod from dm.dm_zk_ec_sales_kpi ) a - where not exists( - select 1 from dm.dm_td_external_corp b - where a.CORP_COD = b.CORP_COD - ) -) -group by 1 - - --- COMMAND ---------- - - -------------Retail补充缺少的Corp信息 -insert into dm.dm_td_external_corp(CORP_COD,CORP_DES,CORP_DES_C,CORP_TYPE) -select distinct - case when CORP_COD is null or CORP_COD = '' then 'CORP_COD_Retail(Quarterly)' - else CORP_COD end as CORP_COD, - max(CORP_DES) CORP_DES, - max(CORP_DES_C) CORP_DES, - max(case when upper(MNFL_DES) = 'LOCAL' then 'LOCAL' else 'MNC' end) CORP_TYPE -from dwd.dwd_inc_gnd_retail_b2c_label_total -where CORP_COD in ( - select distinct - a.CORP_COD - from (select distinct corp_cod from dm.dm_zk_retail_sales_kpi ) a - where not exists( - select 1 from dm.dm_td_external_corp b - where a.CORP_COD = b.CORP_COD - ) -) -group by 1 \ No newline at end of file diff --git a/EXTERNAL/08 dm_td_external_corp.sql:Zone.Identifier b/EXTERNAL/08 dm_td_external_corp.sql:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2x= ( - SELECT - LEFT(MAX(YYYYMM), 4) * 100 + 1 - FROM - dm.dm_zk_retail_sales - ) - AND YYYYMM <= ( - SELECT - MAX(YYYYMM) - FROM - dm.dm_zk_retail_sales - ) - AND AUDIT_COD != 'ROC' - GROUP BY - T2.province_code - ) - ) C - ON A.PROVINCE_CODE = C.province_code -WHERE - geo_key != 'CHT' - --- COMMAND ---------- - --- DBTITLE 1,DTP -CREATE OR REPLACE TEMPORARY VIEW V_DTP_GEO -AS -SELECT - geo_key AS AUDIT_COD, - city_name_en AS CITY, - CASE - WHEN A.city_c IN ('Other Low Tiers', 'OTHER LOW TIERS') THEN 'ROC' - ELSE A.city_c - END city_c, - city_type, - city_tier, - AZ_City_tier, - province_name_en AS PROVINCE, - CASE - WHEN A.province_name IN ('Other Low Tiers', 'OTHER LOW TIERS') THEN 'ROC' - when A.province_name = '福厦泉' then '福建' - ELSE A.province_name - END AS PROVINCE_C, - NVL(a.province_code, GEO_KEY) province_code, - CASE - WHEN A.city_map IN ('Other Low Tiers', 'OTHER LOW TIERS') THEN 'ROC' - ELSE A.city_map - END city_map, - CASE - WHEN A.province_map IN ('Other Low Tiers', 'OTHER LOW TIERS') THEN 'ROC' - ELSE A.province_map - END province_map, - area_code AS REGION_CENTER, - CASE - WHEN A.city_c IN ('Other Low Tiers', 'OTHER LOW TIERS') THEN 999 - ELSE C.PROVINCE_RN - END PROVINCE_RN, - null CITY_RN, - 'DTP(Quarterly)' DATA_SOURCE -FROM - DM.dm_zk_retail_geo A - LEFT JOIN ( - SELECT - province_code, - ROW_NUMBER() OVER (ORDER BY SALES_VALUE DESC) PROVINCE_RN - FROM - ( - SELECT - T2.province_code, - SUM(T1.sales_value) SALES_VALUE - FROM - dm.dm_zk_retail_sales T1 - INNER JOIN dm.dm_zk_retail_geo T2 - ON T1.AUDIT_COD = T2.geo_key - WHERE - YYYYMM >= ( - SELECT - LEFT(MAX(YYYYMM), 4) * 100 + 1 - FROM - dm.dm_zk_retail_sales - ) - AND YYYYMM <= ( - SELECT - MAX(YYYYMM) - FROM - dm.dm_zk_retail_sales - ) - AND AUDIT_COD != 'ROC' - GROUP BY - T2.province_code - ) - ) C - ON A.PROVINCE_CODE = C.province_code -WHERE - geo_key != 'CHT' - --- COMMAND ---------- - --- DBTITLE 1,THC -CREATE OR REPLACE TEMPORARY VIEW V_THC_GEO -AS -select -case when t1.province_c = '全国' then 'CHT' - when t2.geo_key is null then t1.province_e - else t2.geo_key -end as AUDIT_COD, -t1.city_e as CITY, -t1.city_c, -'Province' as CITY_TYPE, -t3.city_tier, -t3.AZ_City_tier, -t1.province_e as province, -t1.province_c, -case when t1.province_c = '全国' then 'CHT' - when t2.province_code is null then t1.province_e - else t2.province_code -end as PROVINCE_CODE, -NVL(t2.city_name,'') as CITY_MAP, -case when t1.province_c = '全国' then '全国' - when t2.province_code in ('TJ','CQ','BJ','SH') then concat(t2.province_name,'市') - when t2.province_code in ('SC','YN','LN','SA','GZ', - 'HN','HL','SX','ZJ','JS', - 'SD','JL','FJ','GD','HU', - 'AH','GS','HE','JX','HB', - 'HA','QH','TW') - then concat(t2.province_name,'省') - when t2.province_code = 'GX' then concat(t2.province_name,'壮族自治区') - when t2.province_code = 'NX' then concat(t2.province_name,'回族自治区') - when t2.province_code in ('IM','XZ') then concat(t2.province_name,'自治区') - when t2.province_code in ('HK','MC') then concat(t2.province_name,'特别行政区') - when t2.province_code in ('XJ') then concat(t2.province_name,'维吾尔自治区') - ELSE coalesce(t2.province_name,t1.province_c) -end as province_map, -case when t1.province_c = '全国' then 'National' - else t2.area_code -end as REGION_CENTER, -1 as PROVINCE_RN, -1 as CITY_RN, -'THC(Quarterly)' as DATA_SOURCE -from dwd.dwd_gnd_ext_thc_geo t1 -left join dm.dm_td_geography t2 ---THC最细到省,用省关联 -on t1.province_c = t2.province_name -and t2.geo_key = t2.province_code -left join dws.dws_ims_td_geo t3 -on t1.province_c = replace(t3.AUDIT_DES_C,'市','') - --- COMMAND ---------- - --- DBTITLE 1,AIA -CREATE OR REPLACE TEMPORARY VIEW V_AIA_GEO -AS -select distinct upper(nvl(t2.inst_code,t1.ins_cd)) as AUDIT_COD, - COALESCE(t3.city_name_en,t4.city) as city, - CASE WHEN COALESCE(t3.city_name,t4.CITY_C) IN ('Other Low Tiers','OTHER LOW TIERS') THEN 'ROC' - ELSE COALESCE(t3.city_name,t4.CITY_C) - END as CITY_C, - COALESCE(t3.city_type_desc,t4.CITY_TYPE) as CITY_TYPE, - t4.CITY_TIER, - t4.AZ_CITY_TIER, - COALESCE(t3.province_name_en,t4.PROVINCE) as PROVINCE, - CASE WHEN COALESCE(t3.province_name,t4.PROVINCE_C) IN ('Other Low Tiers','OTHER LOW TIERS') THEN 'ROC' - when COALESCE(t3.province_name,t4.PROVINCE_C) = '福厦泉' then '福建' - ELSE COALESCE(t3.province_name,t4.PROVINCE_C) - END as province_c, - COALESCE(t3.province_code,t4.PROVINCE_CODE,t4.AUDIT_COD) as PROVINCE_CODE, - CASE WHEN COALESCE(t3.city_name,t4.CITY_MAP) IN ('Other Low Tiers','OTHER LOW TIERS') THEN 'ROC' - ELSE COALESCE(t3.city_name,t4.CITY_MAP) - END as CITY_MAP, - CASE WHEN t3.province_code in ('TJ','CQ','BJ','SH') then concat(t3.province_name,'市') - when t3.province_code in ('SC','YN','LN','SA','GZ','HN','HL','SX','ZJ','JS','SD','JL','FJ','GD','HU','AH','GS','HE','JX','HB') then concat(t3.province_name,'省') - when t3.province_code = 'GX' then concat(t3.province_name,'壮族自治区') - when t3.province_code ='IM' then concat(t3.province_name,'自治区') - when t4.PROVINCE_MAP IN ('Other Low Tiers','OTHER LOW TIERS') THEN 'ROC' - ELSE COALESCE(t3.province_name,t4.PROVINCE_MAP) - END as PROVINCE_MAP, - case when t3.area_code = 'SOUTH' then 'South' - when t3.area_code = 'WEST' then 'West' - when t3.area_code = 'CENTRAL' then 'Central' - when t3.area_code = 'NORTH' then 'North' - when t3.area_code = 'EAST' then 'East' - else t4.REGION_CENTER - end as REGION_CENTER, - 1 as PROVINCE_RN, - 1 as CITY_RN, - 'AIA(Monthly)' as DATA_SOURCE - -from (select distinct case when ins_cd is not null and length(ins_cd) < 7 then right(concat('0000000',ins_cd),7) else ins_cd end as ins_cd - from dwd.dwd_gnd_aia_rawdata) t1 -left join ( -select distinct -case when length(cpa_hospital_code) < 7 then right(concat('0000000',cpa_hospital_code),7) else cpa_hospital_code end as cpa_hospital_code, -ins_cd_nl as inst_code -from dwd.dwd_gnd_hospital_not_provided -) t2 -on NVL(t1.ins_cd,'') = t2.cpa_hospital_code -left join dm.dm_td_institution t3 -on t2.inst_code = t3.inst_code -left join dm.dm_ims_td_geo t4 -on t3.city_name_en = t4.city - --- COMMAND ---------- - --- DBTITLE 1,CHC -CREATE OR REPLACE TEMPORARY VIEW V_CHC_GEO -AS -select - upper( nvl(t2.AUDIT_COD ,t1.city_e) ) as AUDIT_COD, - t1.city_e as city, - CASE WHEN t1.city_c IN ('Other Low Tiers','OTHER LOW TIERS') THEN 'ROC' - when t1.city_c = '福厦泉' then '福建' ELSE t1.city_c END city_c, - case - when t1.city_e='Suzhou'then 'City' - when t1.city_e='Wuxi' then 'City' - when t1.city_e = 'Fuzhou' then 'City' - else t2.CITY_TYPE - end CITY_TYPE, - case - when t1.city_e='Suzhou'then '5' - when t1.city_e='Wuxi' then '5' - when t1.city_e = 'Fuzhou' then '5' - else t2.CITY_TIER - end CITY_TIER, - case - when t1.city_e='Suzhou'then '2' - when t1.city_e='Wuxi' then '2' - when t1.city_e = 'Fuzhou' then '2' - else t2.AZ_CITY_TIER - end AZ_CITY_TIER, - t1.province_e as province, - CASE WHEN t1.province_c IN ('Other Low Tiers','OTHER LOW TIERS') THEN 'ROC' - when t1.province_c = '福厦泉' then '福建' ELSE t1.province_c END province_c, - case - when t1.city_e='Suzhou'then 'JS' - when t1.city_e='Wuxi' then 'JS' - when t1.city_e = 'Fuzhou' then 'FJ' - else t2.PROVINCE_CODE - end PROVINCE_CODE, - case - when t1.city_e='Suzhou'then '苏锡' - when t1.city_e='Wuxi' then '苏锡' - when t1.city_e = 'Fuzhou' then '福厦泉' - when t1.city_e IN ('Other Low Tiers','OTHER LOW TIERS') THEN 'ROC' - when t2.CITY_MAP IN ('Other Low Tiers','OTHER LOW TIERS') THEN 'ROC' - else t2.CITY_MAP - end CITY_MAP, - case - when t1.city_e='Suzhou'then '江苏省' - when t1.city_e='Wuxi' then '江苏省' - when t1.city_e = 'Fuzhou' then '福建省' - when t1.city_e IN ('Other Low Tiers','OTHER LOW TIERS') THEN 'ROC' - when t2.PROVINCE_MAP IN ('Other Low Tiers','OTHER LOW TIERS') THEN 'ROC' - else t2.PROVINCE_MAP - end PROVINCE_MAP, - case - when t1.city_e='Suzhou'then 'Central' - when t1.city_e='Wuxi' then 'Central' - when t1.city_e = 'Fuzhou' then 'East' - else t2.REGION_CENTER - end REGION_CENTER, - 1 as PROVINCE_RN, - 1 as CITY_RN, - 'CHC(Quarterly)' as DATA_SOURCE -from dwd.dwd_gnd_ext_chc_geo t1 -left join dm.dm_ims_td_geo t2 -on t1.city_e = t2.CITY - --- COMMAND ---------- - --- DBTITLE 1,EC -CREATE OR REPLACE TEMPORARY VIEW V_EC_GEO -AS -select - audit_cod, - city_e as CITY, - CASE WHEN t1.CITY_C IN ('Other Low Tiers','OTHER LOW TIERS') THEN 'ROC' ELSE t1.CITY_C END CITY_C, - 'Province' as CITY_TYPE, - '0' as CITY_TIER, - '0' as AZ_CITY_TIER, - province_e as PROVINCE, - CASE WHEN t1.PROVINCE_C IN ('Other Low Tiers','OTHER LOW TIERS') THEN 'ROC' when t1.PROVINCE_C = '福厦泉' then '福建' ELSE t1.PROVINCE_C END PROVINCE_C, - 'National' as PROVINCE_CODE, - '' as CITY_MAP, - '全国' as PROVINCE_MAP, - 'National' as REGION_CENTER, - 1 as PROVINCE_RN, - 1 AS CITY_RN, - 'EC(Monthly)' as DATA_SOURCE -from dm.dm_zk_ec_geo T1 - --- COMMAND ---------- - --- DBTITLE 1,XIE HE -create or replace temporary view V_xiehe_geo -as -with --- 计算 province, city 的rank -xiehe_sales( - select - city - ,province - ,yyyymm - ,sum(sales_value) sales_value - from dm.dm_ext_xiehe_sales - group by 1,2,3 -) -,thisyear ( - select - city - ,province - ,sum(sales_value) sales_value - from xiehe_sales a - left join (select LEFT(MAX(YYYYMM), 4) * 100 + 1 as start_ym,MAX(YYYYMM) as end_ym from xiehe_sales) b - where yyyymm>=b.start_ym and yyyymm <=b.end_ym - group by 1,2 -) -,otheryear ( - select - city - ,province - ,sum(sales_value) sales_value - from xiehe_sales a - left join (select LEFT(MAX(YYYYMM), 4) * 100 + 1 as start_ym from xiehe_sales) b - where yyyymm<=start_ym and concat(a.city,a.province) not in (select concat(city,province) from thisyear) - group by 1,2 -) ---city 部分的排序,考虑不在今年范围内的机构排序 -,city_rn ( -select - city - ,province - ,row_number() over( order by sales_value) CITY_RN -from thisyear -union all -select - city - ,province - ,(row_number() over( order by sales_value) + b.this_c) CITY_RN -from otheryear a -left join (select count(1) this_c from thisyear) b -) ---province部分的排序,考虑不在今年范围内的机构排序 -,province_rn ( -select - province - ,row_number() over( order by sum(sales_value)) PROVINCE_RN -from thisyear -group by 1 -union all -select - province - ,(row_number() over( order by sum(sales_value)) + b.this_c) PROVINCE_RN -from otheryear a -left join (select count(distinct province) this_c from thisyear) b -group by province,b.this_c -) - -SELECT - A.AUDIT_COD, - A.CITY, - A.CITY_C, - A.city_type, - A.AZ_City_tier city_tier, - AZ_City_tier, - A.PROVINCE, - A.PROVINCE_C, - NVL(A.PROVINCE_CODE, A.AUDIT_COD) PROVINCE_CODE, - A.CITY_MAP, - A.PROVINCE_MAP, - A.REGION_CENTER, - CASE WHEN B.CITY_RN is null then 60+ row_number() over( order by a.CITY) else B.CITY_RN end as CITY_RN, - CASE WHEN C.PROVINCE_RN is null then 40+ row_number() over( order by a.PROVINCE) else C.PROVINCE_RN end as PROVINCE_RN, - 'XH Data(Quarterly)' DATA_SOURCE -FROM - dm.dm_ext_xiehe_geo A -LEFT JOIN city_rn B ON B.city = A.city_c -LEFT JOIN province_rn C ON C.province = A.province_c - --- COMMAND ---------- - --- MAGIC %md --- MAGIC ## RESULT - --- COMMAND ---------- - -INSERT OVERWRITE dm.dm_td_external_geo_temp ( - AUDIT_COD, - CITY, - CITY_C, - CITY_TYPE, - CITY_TIER, - AZ_CITY_TIER, - PROVINCE, - PROVINCE_C, - PROVINCE_CODE, - CITY_MAP, - PROVINCE_MAP, - REGION_CENTER, - PROVINCE_RN, - CITY_RN, - DATA_SOURCE -) -SELECT - AUDIT_COD, - CITY, - CITY_C, - CITY_TYPE, - CITY_TIER, - AZ_CITY_TIER, - PROVINCE, - PROVINCE_C, - PROVINCE_CODE, - CITY_MAP, - PROVINCE_MAP, - REGION_CENTER, - PROVINCE_RN, - CITY_RN, - DATA_SOURCE -FROM - V_CHPA_GEO -UNION ALL -SELECT - AUDIT_COD, - CITY, - CITY_C, - CITY_TYPE, - CITY_TIER, - AZ_CITY_TIER, - PROVINCE, - PROVINCE_C, - PROVINCE_CODE, - CITY_MAP, - PROVINCE_MAP, - REGION_CENTER, - PROVINCE_RN, - CITY_RN, - DATA_SOURCE -FROM - V_CHC_GEO -UNION ALL -SELECT - AUDIT_COD, - CITY, - CITY_C, - CITY_TYPE, - CITY_TIER, - AZ_CITY_TIER, - PROVINCE, - PROVINCE_C, - PROVINCE_CODE, - CITY_MAP, - PROVINCE_MAP, - REGION_CENTER, - PROVINCE_RN, - CITY_RN, - DATA_SOURCE -FROM - V_RETAIL_GEO -UNION ALL -SELECT - AUDIT_COD, - CITY, - CITY_C, - CITY_TYPE, - CITY_TIER, - AZ_CITY_TIER, - PROVINCE, - PROVINCE_C, - PROVINCE_CODE, - CITY_MAP, - PROVINCE_MAP, - REGION_CENTER, - PROVINCE_RN, - CITY_RN, - DATA_SOURCE -FROM - V_DTP_GEO -UNION ALL -SELECT - AUDIT_COD, - CITY, - CITY_C, - CITY_TYPE, - CITY_TIER, - AZ_CITY_TIER, - PROVINCE, - PROVINCE_C, - PROVINCE_CODE, - CITY_MAP, - PROVINCE_MAP, - REGION_CENTER, - PROVINCE_RN, - CITY_RN, - DATA_SOURCE -FROM - V_THC_GEO -UNION ALL -SELECT - AUDIT_COD, - CITY, - CITY_C, - CITY_TYPE, - CITY_TIER, - AZ_CITY_TIER, - PROVINCE, - PROVINCE_C, - PROVINCE_CODE, - CITY_MAP, - PROVINCE_MAP, - REGION_CENTER, - PROVINCE_RN, - CITY_RN, - DATA_SOURCE -FROM - V_EC_GEO -UNION ALL -SELECT - AUDIT_COD, - CITY, - CITY_C, - CITY_TYPE, - CITY_TIER, - AZ_CITY_TIER, - PROVINCE, - PROVINCE_C, - PROVINCE_CODE, - CITY_MAP, - PROVINCE_MAP, - REGION_CENTER, - PROVINCE_RN, - CITY_RN, - DATA_SOURCE -FROM - V_xiehe_geo -UNION ALL -SELECT - AUDIT_COD, - CITY, - CITY_C, - CITY_TYPE, - CITY_TIER, - AZ_CITY_TIER, - PROVINCE, - PROVINCE_C, - PROVINCE_CODE, - CITY_MAP, - PROVINCE_MAP, - REGION_CENTER, - PROVINCE_RN, - CITY_RN, - DATA_SOURCE -FROM - V_COUNTY_GEO -UNION ALL -SELECT - AUDIT_COD, - CITY, - CITY_C, - CITY_TYPE, - CITY_TIER, - AZ_CITY_TIER, - PROVINCE, - PROVINCE_C, - PROVINCE_CODE, - CITY_MAP, - PROVINCE_MAP, - REGION_CENTER, - PROVINCE_RN, - CITY_RN, - DATA_SOURCE -FROM - V_AIA_GEO - --- COMMAND ---------- - --- MAGIC %md --- MAGIC # TEMPORARY VIEW dm_td_external_geo_type_temp - --- COMMAND ---------- - --- MAGIC %md --- MAGIC ## 各数据源逻辑 - --- COMMAND ---------- - --- DBTITLE 1,CHPA --------------------------------------------------CHPA 城--------------------------------------------------------------- -CREATE OR REPLACE TEMPORARY VIEW CHPA_geo_type_temp -AS -SELECT DISTINCT - A.DATA_SOURCE, - A.AUDIT_COD, - B.PACK_COD, - CASE - WHEN - A.PROVINCE_C IN ( - 'BBU_OtherProv', 'OBU_OtherProv', 'Others', 'ROC', 'Other Low Tiers', 'OTHER LOW TIERS' - ) - OR A.PROVINCE_C IS NULL - THEN - 'ROC' - ELSE A.PROVINCE_C - END PROVINCE_C, - B.REGION_TYPE, - A.PROVINCE_MAP, - NVL( - A.CITY_C, - CASE - WHEN - A.PROVINCE_C IN ( - 'BBU_OtherProv', 'OBU_OtherProv', 'Others', 'ROC', 'Other Low Tiers', 'OTHER LOW TIERS' - ) - OR A.PROVINCE_C IS NULL - THEN - 'ROC' - ELSE A.CITY_C - END - ) CITY_C, - A.AZ_CITY_TIER, - 3 RN -FROM - DM.dm_td_external_geo_temp A - INNER JOIN DM.dm_tf_external_sales B - ON A.DATA_SOURCE = B.DATA_SOURCE - AND A.AUDIT_COD = B.AUDIT_COD -WHERE - A.DATA_SOURCE = 'IQVIA-CHPA(Monthly)' -UNION ALL -SELECT DISTINCT - A.DATA_SOURCE, - A.AUDIT_COD, - A.PACK_COD, - '全国' PROVINCE_C, - A.REGION_TYPE, - '全国' PROVINCE_MAP, - '全国' CITY_C, - NULL AZ_CITY_TIER, - 1 RN -FROM - DM.dm_tf_external_sales A -WHERE - A.DATA_SOURCE = 'IQVIA-CHPA(Monthly)' -UNION ALL -SELECT DISTINCT - A.DATA_SOURCE, - A.AUDIT_COD, - A.PACK_COD, - C.ProvinceGroup PROVINCE_C, - A.REGION_TYPE, - '' PROVINCE_MAP, - C.ProvinceGroup CITY_C, - NULL AZ_CITY_TIER, - 2 RN -FROM - DM.dm_tf_external_sales A - INNER JOIN ( - select - a.ProvinceGroup, - b.AUDIT_COD - from - dwd.dwd_gnd_province_group_city a - inner join dm.dm_td_external_geo_temp b - on ( - a.AUDIT_CD = b.AUDIT_COD - or a.AUDIT_CD = b.PROVINCE_CODE - ) - WHERE - B.CITY_TYPE = 'City' - and b.DATA_SOURCE = 'IQVIA-CHPA(Monthly)' - ) C - ON C.AUDIT_COD = a.AUDIT_COD -WHERE - A.DATA_SOURCE = 'IQVIA-CHPA(Monthly)' - --- COMMAND ---------- - --- DBTITLE 1,county_mapping -CREATE OR REPLACE TEMPORARY VIEW county_mapping -AS -SELECT 'bbu_bu_county_obu_East5' as original_name,'BBU_BU_COUNTY' as display_name -union ALL -SELECT 'bbu_bu_county_obu_East5' as original_name,'OBU East5' as display_name -union ALL -SELECT 'bbu_bu_county_obu_nonEast5' as original_name,'BBU_BU_COUNTY' as display_name -union ALL -SELECT 'bbu_bu_county_obu_nonEast5' as original_name,'OBU NonEast5' as display_name -union ALL -SELECT 'bbu_county_obu_nonEast5' as original_name,'BBU County' as display_name -union ALL -SELECT 'bbu_county_obu_nonEast5' as original_name,'OBU NonEast5' as display_name - --- COMMAND ---------- - --- DBTITLE 1,COUNTY -------------------------------------------------COUNTY 省------------------------------------------------------------ -CREATE OR REPLACE TEMPORARY VIEW COUNTY_geo_type_temp -AS -SELECT - DATA_SOURCE, - AUDIT_COD, - PACK_COD, - PROVINCE_C, - REGION_TYPE, - PROVINCE_MAP, - CITY_C, - AZ_CITY_TIER, - RN -FROM - ( - SELECT DISTINCT - 'IQVIA-COUNTY(Quarterly)' DATA_SOURCE, - A.AUDIT_COD, - B.PACK_COD, - CASE - WHEN A.PROVINCE_C IN ( - 'BBU_OtherProv', - 'OBU_OtherProv', - 'Others', - 'ROC', - 'Other Low Tiers', - 'OTHER LOW TIERS' - --,'OBU_BU_County','OBU County','OBU_BU_COUNTY','OBU COUNTY' - ) - OR A.PROVINCE_C IS NULL THEN 'ROC' - ELSE A.PROVINCE_C - END PROVINCE_C, - NVL (B.REGION_TYPE, '') as REGION_TYPE, - A.PROVINCE_MAP, - CASE - WHEN A.PROVINCE_C IN ( - 'BBU_OtherProv', - 'OBU_OtherProv', - 'Others', - 'ROC', - 'OTHER LOW TIERS', - 'Other Low Tiers' --,'OBU_BU_County','OBU County','OBU_BU_COUNTY','OBU COUNTY' - ) - OR A.PROVINCE_C IS NULL THEN 'ROC' - ELSE A.PROVINCE_C - END CITY_C, - NULL AZ_CITY_TIER, - 3 RN - FROM - DM.dm_ims_td_county_geo A - INNER JOIN DM.dm_ext_county_tf_sales_region B ON A.REGION_COD = B.REGION_COD - UNION ALL - SELECT DISTINCT - 'IQVIA-COUNTY(Quarterly)' DATA_SOURCE, - A.AUDIT_COD, - A.PACK_COD, - '全国' PROVINCE_C, - NVL (A.REGION_TYPE, '') REGION_TYPE, - '全国' PROVINCE_MAP, - '全国' CITY_C, - NULL AZ_CITY_TIER, - 1 RN - FROM - DM.dm_ext_county_tf_sales_region A - UNION ALL - SELECT DISTINCT - 'IQVIA-COUNTY(Quarterly)' DATA_SOURCE, - A.AUDIT_COD, - A.PACK_COD, - COALESCE(f1.display_name, A.REGION_TYPE, '') PROVINCE_C, - NVL (A.REGION_TYPE, '') REGION_TYPE, - '' PROVINCE_MAP, - COALESCE(f1.display_name, A.REGION_TYPE, '') CITY_C, - NULL AZ_CITY_TIER, - 2 RN - FROM - DM.dm_ext_county_tf_sales_region A - left join county_mapping f1 on A.REGION_TYPE = f1.original_name - WHERE - A.REGION_TYPE IS NOT NULL - UNION ALL - SELECT DISTINCT - 'IQVIA-COUNTY(Quarterly)' DATA_SOURCE, - A.AUDIT_COD, - A.PACK_COD, - C.ProvinceGroup PROVINCE_C, - NVL (A.REGION_TYPE, '') REGION_TYPE, - '' PROVINCE_MAP, - C.ProvinceGroup CITY_C, - NULL AZ_CITY_TIER, - 2 RN - FROM - DM.dm_ext_county_tf_sales_region A - INNER JOIN ( - select - a.ProvinceGroup, - b.AUDIT_COD - from - dwd.dwd_gnd_province_group_city a - inner join dm.dm_td_external_geo_temp b on ( - a.AUDIT_CD = b.AUDIT_COD - or a.AUDIT_CD = b.PROVINCE_CODE - ) - WHERE - B.CITY_TYPE = 'City' - and b.DATA_SOURCE = 'IQVIA-COUNTY(Quarterly)' - AND upper(A.ProvinceGroup) NOT IN ( - 'OBU EAST5', - 'BBU County', - 'BBU_BU_COUNTY', - 'OBU NONEAST5' - ) - ) C ON C.AUDIT_COD = a.AUDIT_COD - ) T -WHERE - T.PROVINCE_C <> 'Other Low Tiers' - --- COMMAND ---------- - --- DBTITLE 1,RETAIL -------------------------------------------------RETAIL 省------------------------------------------------------------ ----,AUDIT_COD,PACK_COD,PROVINCE_C,REGION_TYPE,PROVINCE_MAP,CITY_C,AZ_CITY_TIER,RN -CREATE OR REPLACE TEMPORARY VIEW RETAIL_geo_type_temp -AS -SELECT DISTINCT - 'Retail(Quarterly)' DATA_SOURCE, - A.AUDIT_COD, - A.iqvia_pack_code PACK_COD, - CASE - WHEN A.province_city IN ( - 'BBU_OtherProv', - 'OBU_OtherProv', - 'Others', - 'ROC', - 'Other Low Tiers', - 'OTHER LOW TIERS' - ) - OR A.province_city IS NULL THEN 'ROC' - WHEN A.province_city = '福厦泉' THEN '福建' - ELSE A.province_city - END PROVINCE_C, - '' REGION_TYPE, - C.PROVINCE_MAP, - CASE - WHEN A.province_city IN ( - 'BBU_OtherProv', - 'OBU_OtherProv', - 'Others', - 'ROC', - 'Other Low Tiers', - 'OTHER LOW TIERS' - ) - OR A.province_city IS NULL THEN 'ROC' - WHEN A.province_city = '福厦泉' THEN '福建' - ELSE A.province_city - END CITY_C, - NULL AZ_CITY_TIER, - 3 RN -FROM - DM.dm_zk_retail_sales A - LEFT JOIN DM.dm_zk_retail_geo C ON A.AUDIT_COD = C.geo_key -UNION ALL -SELECT DISTINCT - 'Retail(Quarterly)' DATA_SOURCE, - A.AUDIT_COD, - A.iqvia_pack_code PACK_COD, - '全国' PROVINCE_C, - '' REGION_TYPE, - '全国' PROVINCE_MAP, - '全国' CITY_C, - NULL AZ_CITY_TIER, - 1 RN -FROM - DM.dm_zk_retail_sales A -UNION ALL -SELECT DISTINCT - 'Retail(Quarterly)' DATA_SOURCE, - A.AUDIT_COD, - A.iqvia_pack_code, - c.ProvinceGroup PROVINCE_C, - '' REGION_TYPE, - '' PROVINCE_MAP, - c.ProvinceGroup CITY_C, - NULL AZ_CITY_TIER, - 2 RN -FROM - DM.dm_zk_retail_sales A - INNER JOIN ( - select - a.ProvinceGroup, - b.AUDIT_COD - from - dwd.dwd_gnd_province_group_city a - inner join dm.dm_td_external_geo_temp b on ( - a.AUDIT_CD = b.AUDIT_COD - or a.AUDIT_CD = b.PROVINCE_CODE - ) - WHERE - B.CITY_TYPE = 'City' - and b.DATA_SOURCE = 'Retail(Quarterly)' - ) C ON C.AUDIT_COD = a.AUDIT_COD - --DTP -UNION all -select - 'DTP(Quarterly)' DATA_SOURCE, - AUDIT_COD, - PACK_COD, - C.province_city, - '' REGION_TYPE, - C.province_map, - C.province_city CITY_C, - NULL AZ_CITY_TIER, - 3 RN -from - ( - select - iqvia_pack_code PACK_COD, - case - when AUDIT_COD = 'CHT' then 'ROC' - else AUDIT_COD - end AUDIT_COD - from - dm.dm_zk_retail_dtp_sales a - group by - 1, - 2 - ) A - LEFT JOIN DM.dm_zk_retail_geo C ON A.AUDIT_COD = C.geo_key - --- COMMAND ---------- - --- DBTITLE 1,THC -CREATE OR REPLACE TEMPORARY VIEW THC_geo_type_temp -AS -SELECT DISTINCT - A.DATA_SOURCE, - A.AUDIT_COD, - A.PACK_COD, - C.ProvinceGroup PROVINCE_C, - A.REGION_TYPE, - '' PROVINCE_MAP, - C.ProvinceGroup CITY_C, - NULL AZ_CITY_TIER, - 2 RN -FROM - dm.dm_tf_external_sales A - INNER JOIN ( - select - a.ProvinceGroup, - b.AUDIT_COD - from - dwd.dwd_gnd_province_group_city a - inner join dm.dm_td_external_geo_temp b on ( - a.city = b.province_c - or a.province = b.province_c - ) - WHERE - B.CITY_TYPE = 'Province' - and b.DATA_SOURCE = 'THC(Quarterly)' - ) C ON C.AUDIT_COD = a.AUDIT_COD -WHERE - A.DATA_SOURCE = 'THC(Quarterly)' -UNION ALL -SELECT DISTINCT - A.DATA_SOURCE, - A.AUDIT_COD, - B.PACK_COD, - A.PROVINCE_C, - B.REGION_TYPE, - A.PROVINCE_MAP, - A.CITY_C, - A.AZ_CITY_TIER, - 3 as RN -FROM - DM.dm_td_external_geo_temp A - INNER JOIN ( - --补充所有的geo维度,保证全国的数据和省份的数据都有对应的维度。 - select - PACK_COD, - REGION_TYPE, - DATA_SOURCE, - AUDIT_COD - from - dm.dm_tf_external_sales - WHERE - DATA_SOURCE = 'THC(Quarterly)' - union - select - PACK_COD, - '' REGION_TYPE, - 'THC(Quarterly)' DATA_SOURCE, - AUDIT_COD - from - dm.dm_tf_external_sales_thc - -- - ) B ON A.DATA_SOURCE = B.DATA_SOURCE - AND A.AUDIT_COD = B.AUDIT_COD -WHERE - A.DATA_SOURCE = 'THC(Quarterly)' - --- COMMAND ---------- - --- DBTITLE 1,AIA -------------------------------------------------AIA------------------------------------------------------------ -CREATE OR REPLACE TEMPORARY VIEW AIA_geo_type_temp -AS -select distinct - A.DATA_SOURCE, - A.AUDIT_COD, - A.PACK_COD, - '全国' as PROVINCE_C, - A.REGION_TYPE, - '全国' as PROVINCE_MAP, - '全国' as CITY_C, - NULL as AZ_CITY_TIER, - 1 as RN -from - dm.dm_tf_external_sales A -where - A.DATA_SOURCE = 'AIA(Monthly)' -union all -select distinct - A.DATA_SOURCE, - A.AUDIT_COD, - A.PACK_COD, - B.ProvinceGroup as PROVINCE_C, - A.REGION_TYPE, - '' as PROVINCE_MAP, - B.ProvinceGroup as CITY_C, - null as AZ_CITY_TIER, - 2 as RN -from - dm.dm_tf_external_sales A - inner join ( - select - t1.ProvinceGroup, - t2.AUDIT_COD - from - dwd.dwd_gnd_province_group_city t1 - inner join dm.dm_td_external_geo_temp t2 on t1.AUDIT_CD = t2.AUDIT_COD - or t1.AUDIT_CD = t2.PROVINCE_CODE - WHERE - t2.CITY_TYPE = 'City' - and t2.DATA_SOURCE = 'AIA(Monthly)' - ) B ON A.AUDIT_COD = B.AUDIT_COD -WHERE - A.DATA_SOURCE = 'AIA(Monthly)' -union all -select distinct - A.DATA_SOURCE, - A.AUDIT_COD, - B.PACK_COD, - case - when A.PROVINCE_C IN ( - 'BBU_OtherProv', - 'OBU_OtherProv', - 'Others', - 'ROC', - 'Other Low Tiers', - 'OTHER LOW TIERS' - ) - or A.PROVINCE_C IS NULL then 'ROC' - else A.PROVINCE_C - END as PROVINCE_C, - B.REGION_TYPE, - A.PROVINCE_MAP, - case - when A.CITY_C is not null then A.CITY_C - when A.PROVINCE_C IN ( - 'BBU_OtherProv', - 'OBU_OtherProv', - 'Others', - 'ROC', - 'Other Low Tiers', - 'OTHER LOW TIERS' - ) - or A.PROVINCE_C IS NULL THEN 'ROC' - else A.PROVINCE_C - END as CITY_C, - A.AZ_CITY_TIER, - 3 as RN -from - dm.dm_td_external_geo_temp A - inner join dm.dm_tf_external_sales B on A.DATA_SOURCE = B.DATA_SOURCE - and A.AUDIT_COD = B.AUDIT_COD -where - A.DATA_SOURCE = 'AIA(Monthly)' - --- COMMAND ---------- - --- DBTITLE 1,CHC --------------------------------------------------CHC城--------------------------------------------------------------- -CREATE OR REPLACE TEMPORARY VIEW CHC_geo_type_temp -AS -SELECT DISTINCT - A.DATA_SOURCE, - A.AUDIT_COD, - B.PACK_COD, - CASE - WHEN A.PROVINCE_C IN ( - 'BBU_OtherProv', - 'OBU_OtherProv', - 'Others', - 'ROC', - 'Other Low Tiers', - 'OTHER LOW TIERS' - ) - OR A.PROVINCE_C IS NULL THEN 'ROC' - ELSE A.PROVINCE_C - END PROVINCE_C, - B.REGION_TYPE, - A.PROVINCE_MAP, - NVL ( - A.CITY_C, - CASE - WHEN A.PROVINCE_C IN ( - 'BBU_OtherProv', - 'OBU_OtherProv', - 'Others', - 'ROC', - 'Other Low Tiers', - 'OTHER LOW TIERS' - ) - OR A.PROVINCE_C IS NULL THEN 'ROC' - ELSE A.PROVINCE_C - END - ) CITY_C, - A.AZ_CITY_TIER, - 3 RN -FROM - DM.dm_td_external_geo_temp A - INNER JOIN DM.dm_tf_external_sales B ON A.DATA_SOURCE = B.DATA_SOURCE - AND A.AUDIT_COD = B.AUDIT_COD -WHERE - A.DATA_SOURCE = 'CHC(Quarterly)' -UNION ALL -SELECT DISTINCT - A.DATA_SOURCE, - A.AUDIT_COD, - A.PACK_COD, - '全国' PROVINCE_C, - A.REGION_TYPE, - '全国' PROVINCE_MAP, - '全国' CITY_C, - NULL AZ_CITY_TIER, - 1 RN -FROM - DM.dm_tf_external_sales A -WHERE - A.DATA_SOURCE = 'CHC(Quarterly)' -UNION ALL -SELECT DISTINCT - A.DATA_SOURCE, - A.AUDIT_COD, - A.PACK_COD, - C.ProvinceGroup PROVINCE_C, - A.REGION_TYPE, - '' PROVINCE_MAP, - C.ProvinceGroup CITY_C, - NULL AZ_CITY_TIER, - 2 RN -FROM - DM.dm_tf_external_sales A - INNER JOIN ( - select - a.ProvinceGroup, - b.AUDIT_COD - from - dwd.dwd_gnd_province_group_city a - inner join dm.dm_td_external_geo_temp b on ( - a.AUDIT_CD = b.AUDIT_COD - or a.AUDIT_CD = b.PROVINCE_CODE - ) - WHERE - B.CITY_TYPE = 'City' - and b.DATA_SOURCE = 'CHC(Quarterly)' - ) C ON C.AUDIT_COD = a.AUDIT_COD -WHERE - A.DATA_SOURCE = 'CHC(Quarterly)' - --- COMMAND ---------- - --- DBTITLE 1,EC ----------------------------------------------------EC 全国--------------------------------------------------- -CREATE OR REPLACE TEMPORARY VIEW EC_geo_type_temp -AS -select distinct - a.DATA_SOURCE, - a.AUDIT_COD, - b.PACK_COD, - a.PROVINCE_C, - b.REGION_TYPE, - a.PROVINCE_MAP, - a.CITY_C, - a.AZ_CITY_TIER, - 1 RN -from - dm.dm_td_external_geo_temp a - left join dm.dm_tf_external_sales b on a.audit_cod = b.AUDIT_COD -where - a.DATA_SOURCE = 'EC(Monthly)' - and b.DATA_SOURCE = 'EC(Monthly)' - --- COMMAND ---------- - --- DBTITLE 1,XIE HE ------------------------------------------------XIEHE------------------- -CREATE OR REPLACE TEMPORARY VIEW XH_geo_type_temp -AS -select distinct - A.DATA_SOURCE, - A.AUDIT_COD, - A.PACK_COD, - '全国' as PROVINCE_C, - A.REGION_TYPE, - '全国' as PROVINCE_MAP, - '全国' as CITY_C, - NULL as AZ_CITY_TIER, - 1 as RN -from - dm.dm_tf_external_sales A -where - A.DATA_SOURCE = 'XH Data(Quarterly)' -union all -select distinct - A.DATA_SOURCE, - A.AUDIT_COD, - B.PACK_COD, - case - when A.PROVINCE_C IN ( - 'BBU_OtherProv', - 'OBU_OtherProv', - 'Others', - 'ROC', - 'Other Low Tiers', - 'OTHER LOW TIERS' - ) - or A.PROVINCE_C IS NULL then 'ROC' - else A.PROVINCE_C - END as PROVINCE_C, - B.REGION_TYPE, - A.PROVINCE_MAP, - case - when A.CITY_C is not null then A.CITY_C - when A.PROVINCE_C IN ( - 'BBU_OtherProv', - 'OBU_OtherProv', - 'Others', - 'ROC', - 'Other Low Tiers', - 'OTHER LOW TIERS' - ) - or A.PROVINCE_C IS NULL THEN 'ROC' - else A.PROVINCE_C - END as CITY_C, - A.AZ_CITY_TIER, - 3 as RN -from - dm.dm_td_external_geo_temp A - inner join dm.dm_tf_external_sales B on A.DATA_SOURCE = B.DATA_SOURCE - and A.AUDIT_COD = B.AUDIT_COD -where - A.DATA_SOURCE = 'XH Data(Quarterly)' - --- COMMAND ---------- - --- MAGIC %md --- MAGIC ## RESULT - --- COMMAND ---------- - --- -----------------------此处需要注意,若源头数据只有全国,需要转化成ROC,否则下面的sql脚本跑出来的数据全国是错误的。--------------------------------------------- --- insert overwrite dm.dm_td_external_geo_type_temp( --- DATA_SOURCE,AUDIT_COD,PACK_COD,PROVINCE_C,REGION_TYPE,PROVINCE_MAP,CITY_C,AZ_CITY_TIER,RN --- ) -create or replace temporary view dm_td_external_geo_type_temp -as -select -DATA_SOURCE,AUDIT_COD,PACK_COD,PROVINCE_C,REGION_TYPE,PROVINCE_MAP,CITY_C,AZ_CITY_TIER,RN -from -CHPA_geo_type_temp -union all -select -DATA_SOURCE,AUDIT_COD,PACK_COD,PROVINCE_C,REGION_TYPE,PROVINCE_MAP,CITY_C,AZ_CITY_TIER,RN -from -COUNTY_geo_type_temp -union all -select -DATA_SOURCE,AUDIT_COD,PACK_COD,PROVINCE_C,REGION_TYPE,PROVINCE_MAP,CITY_C,AZ_CITY_TIER,RN -from -RETAIL_geo_type_temp -union all -select -DATA_SOURCE,AUDIT_COD,PACK_COD,PROVINCE_C,REGION_TYPE,PROVINCE_MAP,CITY_C,AZ_CITY_TIER,RN -from -THC_geo_type_temp -union all -select -DATA_SOURCE,AUDIT_COD,PACK_COD,PROVINCE_C,REGION_TYPE,PROVINCE_MAP,CITY_C,AZ_CITY_TIER,RN -from -AIA_geo_type_temp -union all -select -DATA_SOURCE,AUDIT_COD,PACK_COD,PROVINCE_C,REGION_TYPE,PROVINCE_MAP,CITY_C,AZ_CITY_TIER,RN -from -CHC_geo_type_temp -union all -select -DATA_SOURCE,AUDIT_COD,PACK_COD,PROVINCE_C,REGION_TYPE,PROVINCE_MAP,CITY_C,AZ_CITY_TIER,RN -from -EC_geo_type_temp -union all -select -DATA_SOURCE,AUDIT_COD,PACK_COD,PROVINCE_C,REGION_TYPE,PROVINCE_MAP,CITY_C,AZ_CITY_TIER,RN -from -XH_geo_type_temp - --- COMMAND ---------- - --- MAGIC %md --- MAGIC # dm.dm_td_external_geo - --- COMMAND ---------- - --- MAGIC %md --- MAGIC ## 各临时表 - --- COMMAND ---------- - --- DBTITLE 1,pmt --- --省长信息 --- pmt as ( --- select distinct area_name,area_head_name --- from dm.dm_pmt_td_area_head --- where rmt_pmt = 'PMT' --- ) ---pmt_region -create or replace temporary view pmt -as -select distinct PROVINCE_CODE,province_name,AREA_NAME_EN -from dm.dm_td_geography -where PROVINCE_CODE <> '' - --- COMMAND ---------- - --- DBTITLE 1,TEMP -create or replace temporary view TEMP -as - SELECT - DISTINCT t1.DATA_SOURCE, - t1.AUDIT_COD, - CASE - WHEN t1.AUDIT_COD IN ('CHT', 'ROC') THEN 'ROC' - ELSE t1.PROVINCE_C - END PROVINCE_C, - CASE - WHEN t1.AUDIT_COD IN ('CHT', 'ROC') THEN 'ROC' - ELSE t1.PROVINCE_MAP - END PROVINCE_MAP, - CASE - WHEN t1.AUDIT_COD IN ('CHT', 'ROC') THEN 'ROC' - ELSE t1.CITY_C - END CITY_C, - CASE - WHEN t1.AUDIT_COD NOT IN ('CHT', 'ROC') THEN t1.AZ_CITY_TIER - END AZ_CITY_TIER, - t1.REGION_TYPE, - t1.AUDIT_COD as inst_code, - NVL(t2.inst_name,'') as inst_name, - NVL(t3.PROVINCE_CODE,'') as PROVINCE_CODE, - NVL(t4.AUDIT_COD,'') as CITY_CODE, - NVL(t2.county_name,'') as county_name, - NVL(t2.county_tier_desc,'') as county_tier, - -- NVL(t5.area_head_name,'') as pmt_region, - NVL(t5.AREA_NAME_EN,'') as pmt_region, - NVL(t2.inst_sub_type,'') as inst_sub_type, - NVL(t2.ins_level,'') as ins_level - FROM - dm_td_external_geo_type_temp t1 - left join (select distinct inst_code,inst_name,province_name,city_name,county_name,city_tier_desc,county_tier_desc,inst_sub_type,org_level_desc as ins_level, - case when city_name = '深圳市' then '深圳' else province_name end as pmt_key from dm.dm_td_institution) t2 - on t1.AUDIT_COD = t2.inst_code - left join dm.dm_td_external_geo_temp t3 - on t1.AUDIT_COD = t3.AUDIT_COD - and t1.DATA_SOURCE = t3.DATA_SOURCE - left join dm.dm_ims_td_geo t4 - on t1.CITY_C = t4.CITY_C - left join pmt t5 - -- on t2.pmt_key = t5.area_name - on t3.PROVINCE_CODE = t5.PROVINCE_CODE - where t1.DATA_SOURCE = 'AIA(Monthly)' - union all - SELECT - DISTINCT t1.DATA_SOURCE, - t1.AUDIT_COD, - CASE - WHEN t1.AUDIT_COD IN ('CHT', 'ROC') THEN 'ROC' - ELSE t1.PROVINCE_C - END PROVINCE_C, - CASE - WHEN t1.AUDIT_COD IN ('CHT', 'ROC') THEN 'ROC' - ELSE t1.PROVINCE_MAP - END PROVINCE_MAP, - CASE - WHEN t1.AUDIT_COD IN ('CHT', 'ROC') THEN 'ROC' - ELSE t1.CITY_C - END CITY_C, - CASE - WHEN t1.AUDIT_COD NOT IN ('CHT', 'ROC') THEN t1.AZ_CITY_TIER - END AZ_CITY_TIER, - t1.REGION_TYPE, - '' as inst_code, - '' as inst_name, - NVL(t3.PROVINCE_CODE,'') as PROVINCE_CODE, - NVL(t4.AUDIT_COD,'') as CITY_CODE, - '' as county_name, - '' as county_tier, - NVL(t5.AREA_NAME_EN,'') as pmt_region, - '' as inst_sub_type, - '' as ins_level - FROM - dm_td_external_geo_type_temp t1 - left join dm.dm_td_external_geo_temp t3 - on t1.AUDIT_COD = t3.AUDIT_COD - and t1.DATA_SOURCE = t3.DATA_SOURCE - left join dm.dm_ims_td_geo t4 - on t1.CITY_C = t4.CITY_C - left join pmt t5 - on t1.PROVINCE_C = t5.province_name - where t1.DATA_SOURCE <> 'AIA(Monthly)' - --- COMMAND ---------- - --- DBTITLE 1,province_sales -create or replace temporary view province_sales -as - SELECT - A.PROVINCE_C, - SUM(B.SALES_VALUE_CAL) SALES_VALUE_CAL - FROM - TEMP A - INNER JOIN DM.DM_TF_EXTERNAL_SALES B ON A.AUDIT_COD = B.AUDIT_COD - AND A.DATA_SOURCE = B.DATA_SOURCE - AND A.REGION_TYPE = B.REGION_TYPE - and A.DATA_SOURCE = B.DATA_SOURCE - WHERE - B.YYYYMM >= ( - SELECT - LEFT(MAX(YYYYMM), 4) * 100 + 1 - FROM - DM.DM_TF_EXTERNAL_SALES - WHERE - DATA_SOURCE = 'IQVIA-CHPA(Monthly)' - ) - AND B.DATA_SOURCE = 'IQVIA-CHPA(Monthly)' - GROUP BY - A.PROVINCE_C - - --- COMMAND ---------- - --- DBTITLE 1,Province_N -create or replace temporary view Province_N -as - SELECT - PROVINCE_C, - row_number() OVER( - PARTITION BY 1 - ORDER BY - ( - CASE - WHEN PROVINCE_C = 'ROC' THEN 2 - ELSE 1 - END - ) ASC, - SALES_VALUE_CAL DESC - ) RN_PROV - FROM - province_sales - - --- COMMAND ---------- - --- DBTITLE 1,city_sales -create or replace temporary view city_sales -as - SELECT - A.CITY_C, - SUM(B.SALES_VALUE_CAL) SALES_VALUE_CAL - FROM - TEMP A - INNER JOIN DM.DM_TF_EXTERNAL_SALES B ON A.AUDIT_COD = B.AUDIT_COD - AND A.DATA_SOURCE = B.DATA_SOURCE - AND A.REGION_TYPE = B.REGION_TYPE - and A.DATA_SOURCE = B.DATA_SOURCE - WHERE - B.YYYYMM >= ( - SELECT - LEFT(MAX(YYYYMM), 4) * 100 + 1 - FROM - DM.DM_TF_EXTERNAL_SALES - WHERE - DATA_SOURCE = 'IQVIA-CHPA(Monthly)' - ) - AND B.DATA_SOURCE = 'IQVIA-CHPA(Monthly)' - GROUP BY - A.CITY_C - --- COMMAND ---------- - --- DBTITLE 1,city_N -create or replace temporary view city_N -as - SELECT - CITY_C, - row_number() OVER( - PARTITION BY 1 - ORDER BY - ( - CASE - WHEN CITY_C = 'ROC' THEN 2 - ELSE 1 - END - ) ASC, - SALES_VALUE_CAL DESC - ) RN_CITY - FROM - city_sales - --- COMMAND ---------- - --- MAGIC %md --- MAGIC ## RESULT - --- COMMAND ---------- - --------------------------------------------------------------------------------- ---修改时间:20241025 ---修改人:Fanxujia ---修改内容: ---外部数据报告优化,将PBI的逻辑搬到DBR --------------------------------------------------------------------------------- --------------------------------------------------------------------------------- ---修改时间:20241105 ---修改人:Fanxujia ---修改内容: ---for AIA Dashboard:增加county、pmt_region等字段 --------------------------------------------------------------------------------- --------------------------------------------------------------------------------- ---修改时间:20241209 ---修改人:Fanxujia ---修改内容: ---其他渠道仿照AIA Dashboard增加一个pmt_region字段 --------------------------------------------------------------------------------- -insert overwrite table dm.dm_td_external_geo -( -DATA_SOURCE, -AUDIT_COD, -REGION_TYPE, -PROVINCE_C, -CITY_C, -AZ_CITY_TIER, -PROV_RN, -CITY_RN, -PROVINCE_MAP, -inst_code, -inst_name, -PROVINCE_CODE, -CITY_CODE, -county_name, -county_tier, -pmt_region, -inst_sub_type, -ins_level -) -SELECT - A.DATA_SOURCE, - A.AUDIT_COD, - A.REGION_TYPE, - CASE - WHEN A.DATA_SOURCE = 'EC(Monthly)' THEN '全国' - WHEN A.DATA_SOURCE = 'THC(Quarterly)' AND A.AUDIT_COD = 'CHT' THEN '全国' - ELSE MAX(A.PROVINCE_C) - END PROVINCE_C, - CASE - WHEN A.DATA_SOURCE = 'EC(Monthly)' THEN '全国' - WHEN A.DATA_SOURCE = 'THC(Quarterly)' AND A.AUDIT_COD = 'CHT' THEN '全国' - ELSE MAX(A.CITY_C) - END CITY_C, - MAX(A.AZ_CITY_TIER) AZ_CITY_TIER, - NVL(MAX(PN.RN_PROV), 999) PROV_RN, - NVL(MAX(CN.RN_CITY), 999) CITY_RN, - case when A.DATA_SOURCE = 'THC(Quarterly)' AND A.AUDIT_COD = 'CHT' then '全国' - else MAX(A.PROVINCE_MAP) - end as PROVINCE_MAP, - A.inst_code, - A.inst_name, - case when A.AUDIT_COD = 'CHT' and A.PROVINCE_CODE = '' then 'CHT' else A.PROVINCE_CODE end as PROVINCE_CODE, - case when A.AUDIT_COD = 'CHT' and A.CITY_CODE = '' then 'CHT' - when A.AUDIT_COD <> A.PROVINCE_CODE and A.AUDIT_COD <> A.CITY_CODE and A.AUDIT_COD <> A.inst_code and A.CITY_CODE = '' then A.AUDIT_COD - else A.CITY_CODE - end as CITY_CODE, - A.county_name, - A.county_tier, - A.pmt_region, - A.inst_sub_type, - A.ins_level -FROM - TEMP A - LEFT JOIN Province_N PN ON A.PROVINCE_C = PN.PROVINCE_C - LEFT JOIN city_N CN ON A.CITY_C = CN.CITY_C -WHERE - A.PROVINCE_C NOT IN ( - SELECT - DISTINCT provincegroup - FROM - DWD.dwd_gnd_province_group_city - UNION ALL - SELECT - '全国' - UNION ALL - SELECT - 'BBU_BU_COUNTY' - ) - GROUP BY A.AUDIT_COD,A.REGION_TYPE,A.DATA_SOURCE,10,11,12,13,14,15,16,17,18 - --- COMMAND ---------- - --- MAGIC %md --- MAGIC # dm.dm_td_external_geo_type - --- COMMAND ---------- - --- MAGIC %md --- MAGIC ## 各临时表 - --- COMMAND ---------- - --- DBTITLE 1,TEMP -create or replace temporary view TEMP -as - SELECT - DISTINCT DATA_SOURCE, - AUDIT_COD, - PROVINCE_C, - PROVINCE_MAP, - CITY_C, - AZ_CITY_TIER, - RN, - REGION_TYPE, - CASE - WHEN PROVINCE_C <> 'Other Low Tiers' - AND ( - DATA_SOURCE = 'IQVIA-COUNTY(Quarterly)' - OR ( - DATA_SOURCE <> 'IQVIA-COUNTY(Quarterly)' - AND PROVINCE_C NOT IN ( - 'BBU_BU_COUNTY', - 'OBU_BU_COUNTY', - 'OBU COUNTY', - 'BBU COUNTY' - ) - ) - ) THEN 1 - ELSE 0 - END GEO_FLAG - FROM - dm_td_external_geo_type_temp - WHERE - PROVINCE_C <> 'ROC' - --- COMMAND ---------- - --- MAGIC %md --- MAGIC ## RESULT - --- COMMAND ---------- - --------------------------------------------------------------------------------- ---修改时间:20241025 ---修改人:Fanxujia ---修改内容: ---外部数据报告优化,将PBI的逻辑搬到DBR --------------------------------------------------------------------------------- -insert overwrite table dm.dm_td_external_geo_type -( -DATA_SOURCE, -AUDIT_COD, -REGION_TYPE, -PROVINCE_GROUP -) -SELECT - DISTINCT DATA_SOURCE, - AUDIT_COD, - REGION_TYPE, - A.PROVINCE_C PROVINCE_GROUP -FROM - TEMP A -WHERE - A.PROVINCE_C IN ( - SELECT - DISTINCT provincegroup - FROM - DWD.dwd_gnd_province_group_city - UNION ALL - SELECT - '全国' - ) \ No newline at end of file diff --git a/EXTERNAL/09 dm_td_external_geo_type.sql:Zone.Identifier b/EXTERNAL/09 dm_td_external_geo_type.sql:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2x 999 - - UNION ALL - - SELECT - 'ALL Market' AS MARKET, - 'ALL' AS TA, - -1 AS TA_ORDER -), - --- ------------------------------------------------------------ --- AZ_RELATED_info:从临时映射表取市场-数据源-AZ关联关系(已去重) --- ------------------------------------------------------------ -AZ_RELATED_info AS ( - SELECT DISTINCT - MARKET, - TA AS AZ_RELATED, - DATA_SOURCE - FROM tmp.tmp_td_ext_unionall_market_ta_mapping -) - --- ------------------------------------------------------------ --- 主查询:以 market_info 为驱动表,依次关联 TA、AZ关联、隐藏标志 --- hide_flag 为小维表,添加 BROADCAST hint 避免 shuffle --- PRD_FLAG=1 表示市场在隐藏标志表中存在(需隐藏/特殊处理) --- ------------------------------------------------------------ -SELECT /*+ BROADCAST(t4) */ -DISTINCT - t1.MARKET, - t1.DATA_SOURCE, - t2.TA, - t3.AZ_RELATED, - t1.MARKET_DESC, - t2.TA_ORDER AS TA_RN, - IF(t4.MARKET IS NULL, 0, 1) AS PRD_FLAG, - FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(), 'UTC+8') AS ETL_INSERT_DT, - FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(), 'UTC+8') AS ETL_UPDATE_DT -FROM market_info t1 -LEFT JOIN TA_info t2 - ON t1.MARKET = t2.MARKET -LEFT JOIN AZ_RELATED_info t3 - ON t1.MARKET = t3.MARKET - AND t1.DATA_SOURCE = t3.DATA_SOURCE -LEFT JOIN - tmp.tmp_td_ext_market_hide_flag t4 - ON t1.MARKET = t4.MARKET - AND t1.DATA_SOURCE = t4.DATA_SOURCE - --- COMMAND ---------- - -insert overwrite dm.dm_td_ext_unionall_market_ta ( - MARKET, DATA_SOURCE, TA, TA_RN, MARKET_DESC, ETL_INSERT_DT, ETL_UPDATE_DT -) - SELECT - MARKET, - DATA_SOURCE, - AZ_RELATED TA, - TA_RN, - MARKET_DESC, - FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(), 'UTC+8') AS ETL_INSERT_DT, - FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(), 'UTC+8') AS ETL_UPDATE_DT - FROM - DM.dm_td_ext_unionall_market - -- WHERE MARKET NOT LIKE '%ALL Market%' and MARKET <>'Retail All Market' - -- UNION all - -- SELECT - -- MARKET, - -- DATA_SOURCE, - -- 'CVRM' TA, - -- 0 TA_RN, - -- MARKET_DESC, - -- FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(), 'UTC+8') AS ETL_INSERT_DT, - -- FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(), 'UTC+8') AS ETL_UPDATE_DT - -- FROM - -- DM.dm_td_ext_unionall_market - -- WHERE - -- MARKET = 'CVRM Market' - --- COMMAND ---------- - ------------------------------------------------------------------------------------ ---修改时间:20240822 ---修改人:FanXujia ---修改内容: ---Retail、EC渠道,新增NIAD这个TA。数据与DM相同 ------------------------------------------------------------------------------------ -insert into dm.dm_td_ext_unionall_market_ta ( - MARKET, DATA_SOURCE, TA, TA_RN, MARKET_DESC, ETL_INSERT_DT, ETL_UPDATE_DT -) - select - market, - DATA_SOURCE, - 'NIAD' as TA, - 7 as TA_RN, - MARKET_DESC, - FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(), 'UTC+8') AS ETL_INSERT_DT, - FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(), 'UTC+8') AS ETL_UPDATE_DT - from - dm.dm_td_ext_unionall_market_ta - where - DATA_SOURCE = 'Retail(Quarterly)' - and ta = 'DM' - union all - select - market, - DATA_SOURCE, - 'NIAD' as TA, - 7 as TA_RN, - MARKET_DESC, - FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(), 'UTC+8') AS ETL_INSERT_DT, - FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(), 'UTC+8') AS ETL_UPDATE_DT - from - dm.dm_td_ext_unionall_market_ta - where - DATA_SOURCE = 'EC(Monthly)' - and ta = 'DM' - --20250701 chenwu 新增RARE = ONCO的Soliris Related Market - union all - select - market, - DATA_SOURCE, - 'RARE' as TA, - 8 as TA_RN, - MARKET_DESC, - FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(), 'UTC+8') AS ETL_INSERT_DT, - FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(), 'UTC+8') AS ETL_UPDATE_DT - from - dm.dm_td_ext_unionall_market_ta - where - DATA_SOURCE = 'DTP(Quarterly)' - and ta = 'ONCO' - and MARKET = 'Soliris Related Market'; - --- COMMAND ---------- - --- log 20250226 auth:庄伟 --- 对market_ta表中市场进行补全,并依据手工文件维护的 market 与 ta 映射,匹配出完整市场对应的TA_NAME -insert overwrite table dm.dm_td_ext_unionall_market_ta ( - MARKET, DATA_SOURCE, TA, TA_MAP, TA_RN, MARKET_DESC, ETL_INSERT_DT, ETL_UPDATE_DT -) - -----找出在market维度表中不存在的market列表 - with temp_ma_ext_market as (select distinct - MARKET, - DATA_SOURCE - from - dm.dm_td_ext_unionall_market - where - MARKET NOT IN ( - select distinct - MARKET - from - dm.dm_td_ext_unionall_market_ta - ) - ) - ------补充完整的market列表,并通过market匹配手工文件维护的market对应的TA - select - distinct - dim_mkt_ta.MARKET, - DATA_SOURCE, - dim_mkt_ta.TA, - case - when dim_mkt_ta.MARKET = 'ALL Market' then 'ALL' - else nvl(mkt_property.ta, mkt_property_key.TA) - end as TA_MAP, - dim_mkt_ta.TA_RN, - dim_mkt_ta.MARKET_DESC, - FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(), 'UTC+8') AS ETL_INSERT_DT, - FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(), 'UTC+8') AS ETL_UPDATE_DT - from - ( - select - MARKET, - DATA_SOURCE, - TA, - TA_RN, - MARKET_DESC - from - dm.dm_td_ext_unionall_market_ta - ) dim_mkt_ta - left join dm.dm_ims_td_market_property mkt_property - on dim_mkt_ta.market = mkt_property.market - left join dm.dm_ims_td_market_property mkt_property_key - on dim_mkt_ta.MARKET = mkt_property_key.MARKET_KEY - union all - select - ext_market.MARKET, - ext_market.DATA_SOURCE, - null TA, - mkt_property.TA TA_MAP, - '99' as TA_RN, - null MARKET_DESC, - FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(), 'UTC+8') AS ETL_INSERT_DT, - FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(), 'UTC+8') AS ETL_UPDATE_DT - from - temp_ma_ext_market ext_market - left join dm.dm_ims_td_market_property mkt_property - on ext_market.market = mkt_property.MARKET - where - nvl(mkt_property.TA, '') <> ''; \ No newline at end of file diff --git a/EXTERNAL/11 DM_TD_EXTERNAL_MARKET_NEW.sql:Zone.Identifier b/EXTERNAL/11 DM_TD_EXTERNAL_MARKET_NEW.sql:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2xdl#JyUFr831@K2x= '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.nsd_kcode = 'ND_EC0001_V' then 'KSGX559' else p2.nsd_kcode end nsd_kcode - ,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 - ,p2.rsm_kcode,p2.rc_code,p2.rc_name_en,p2.region_code,p2.region_name_en,BU_CATEGORY,yyyymm,mr_trty_code - ,mr_kcode,dsm_trty_code,rsm_trty_code,dsm_kcode,rsd_trty_code -FROM DM.dm_td_org P2 - --- COMMAND ---------- - -------销售权限 ----从C月辖区中提取USER与TA映射 -drop view if exists tmp_auth_sales_user_ta_mapping; -create temporary view tmp_auth_sales_user_ta_mapping -as -( -select -bu_active_list.bm_name, -org.bu_code, -org.bu_name, -org.sub_bu_code, -org.sub_bu_name, -org.dsm_trty_code, -org.dsm_kcode, -org.rsm_trty_code, -org.rsm_kcode, -org.rsd_trty_code, -org.rsd_kcode, -org.nsd_trty_code, -org.nsd_kcode, -org.rc_code, -prod.ta_code, -case when prod.ta_name ='ONC' then 'ONCO' else prod.ta_name end ta_name -from -( -select distinct -yyyymm, -trty_code, -family_code -from dm.dm_td_sd_territory_indication -where yyyymm in( -select key_value as yyyymm -from dm.dm_td_date_config -where key_code = 'pfmc_cvh' -) and bu not in ('CUBE','KA') and family_code not in ('RTRT','ECEC') -and key_hp<>3 --chenwu 20250904 排除双考影响 -)trty_ind_c -left join dm.dm_td_product prod -on trty_ind_c.family_code = prod.prd_key -left join dm_td_org_temp org -on trty_ind_c.yyyymm = org.yyyymm and trty_ind_c.trty_code = org.mr_trty_code -left join dws.dws_td_bu_active bu_active_list -on org.bu_name =bu_active_list.bu_name -); - --- COMMAND ---------- - -insert overwrite table dm.dm_auth_sales_ta -select -bu_name, -user_trty_code, -user_kcode, -ta, -role, -data_source, -concat(ta,data_source) ta_source, -from_utc_timestamp(current_timestamp,'UTC+8') as etl_insert_dt, -from_utc_timestamp(current_timestamp,'UTC+8') as etl_update_dt -from -( -----chpa 1 -select -bu_name, -user_trty_code, -user_kcode, -ta, -role, -'IQVIA-CHPA(Monthly)' data_source -from -( ---dsm -select -bu_name, -dsm_trty_code user_trty_code, -dsm_kcode user_kcode, -ta_name ta, -'dsm' role -from tmp_auth_sales_user_ta_mapping -union ---rsm -select -bu_name, -rsm_trty_code user_trty_code, -rsm_kcode user_kcode, -ta_name ta, -'rsm' role -from tmp_auth_sales_user_ta_mapping -union ---rsd -select -bu_name, -rsd_trty_code user_trty_code, -rsd_kcode user_kcode, -ta_name ta, -'rsd' role -from tmp_auth_sales_user_ta_mapping -union ---nsd -select -bu_name, -nsd_trty_code user_trty_code, -nsd_kcode user_kcode, -ta_name ta, -'nsd' role -from tmp_auth_sales_user_ta_mapping -)auth_chpa -----county 2 -union -select -bu_name, -user_trty_code, -user_kcode, -ta, -role, -'IQVIA-COUNTY(Quarterly)' data_source -from -( ---dsm -select -bu_name, -dsm_trty_code user_trty_code, -dsm_kcode user_kcode, -ta_name ta, -'dsm' role -from tmp_auth_sales_user_ta_mapping -where --- bu_name not in ('EC') -not (bu_name in ('Retail') and rc_code in ('RC198')) --架构中 EC 合并到 Retail 调整 20260127 -union ---rsm -select -bu_name, -rsm_trty_code user_trty_code, -rsm_kcode user_kcode, -ta_name ta, -'rsm' role -from tmp_auth_sales_user_ta_mapping -where --- bu_name not in ('EC') -not (bu_name in ('Retail') and rc_code in ('RC198')) --架构中 EC 合并到 Retail 调整 20260127 -union ---rsd -select -bu_name, -rsd_trty_code user_trty_code, -rsd_kcode user_kcode, -ta_name ta, -'rsd' role -from tmp_auth_sales_user_ta_mapping -where --- bu_name not in ('EC') -not (bu_name in ('Retail') and rc_code in ('RC198')) --架构中 EC 合并到 Retail 调整 20260127 -union ---nsd -select -bu_name, -nsd_trty_code user_trty_code, -nsd_kcode user_kcode, -ta_name ta, -'nsd' role -from tmp_auth_sales_user_ta_mapping -where --- bu_name not in ('EC') -not (bu_name in ('Retail') and rc_code in ('RC198')) --架构中 EC 合并到 Retail 调整 20260127 -)auth_county -----chc 3 -union -select -bu_name, -user_trty_code, -user_kcode, -ta, -role, -'CHC(Quarterly)' data_source -from -( ---dsm -select -bu_name, -dsm_trty_code user_trty_code, -dsm_kcode user_kcode, -ta_name ta, -'dsm' role -from tmp_auth_sales_user_ta_mapping -where -bu_name not in ('RDU') -and not (bu_name in ('Retail') and rc_code in ('RC198')) --架构中 EC 合并到 Retail 调整 20260127 -union ---rsm -select -bu_name, -rsm_trty_code user_trty_code, -rsm_kcode user_kcode, -ta_name ta, -'rsm' role -from tmp_auth_sales_user_ta_mapping -where -bu_name not in ('RDU') -and not (bu_name in ('Retail') and rc_code in ('RC198')) --架构中 EC 合并到 Retail 调整 20260127 -union ---rsd -select -bu_name, -rsd_trty_code user_trty_code, -rsd_kcode user_kcode, -ta_name ta, -'rsd' role -from tmp_auth_sales_user_ta_mapping -where --bu_name not in ('RDU','EC') -bu_name not in ('RDU') -and not (bu_name in ('Retail') and rc_code in ('RC198')) --架构中 EC 合并到 Retail 调整 20260127 -union ---nsd -select -bu_name, -nsd_trty_code user_trty_code, -nsd_kcode user_kcode, -ta_name ta, -'nsd' role -from tmp_auth_sales_user_ta_mapping -where --bu_name not in ('RDU','EC') -bu_name not in ('RDU') -and not (bu_name in ('Retail') and rc_code in ('RC198')) --架构中 EC 合并到 Retail 调整 20260127 -)auth_chc -----thc 4 -union -select -bu_name, -user_trty_code, -user_kcode, -ta, -role, -'THC(Quarterly)' data_source -from -( ---dsm -select -bu_name, -dsm_trty_code user_trty_code, -dsm_kcode user_kcode, -ta_name ta, -'dsm' role -from tmp_auth_sales_user_ta_mapping -where --bu_name not in ('RDU','EC') -bu_name not in ('RDU') and not (bu_name in ('Retail') and rc_code in ('RC198')) --架构中 EC 合并到 Retail 调整 20260127 -union ---rsm -select -bu_name, -rsm_trty_code user_trty_code, -rsm_kcode user_kcode, -ta_name ta, -'rsm' role -from tmp_auth_sales_user_ta_mapping -where --bu_name not in ('RDU','EC') -bu_name not in ('RDU') -and not (bu_name in ('Retail') and rc_code in ('RC198')) --架构中 EC 合并到 Retail 调整 20260127 -union ---rsd -select -bu_name, -rsd_trty_code user_trty_code, -rsd_kcode user_kcode, -ta_name ta, -'rsd' role -from tmp_auth_sales_user_ta_mapping -where --bu_name not in ('RDU','EC') -bu_name not in ('RDU') -and not (bu_name in ('Retail') and rc_code in ('RC198')) --架构中 EC 合并到 Retail 调整 20260127 -union ---nsd -select -bu_name, -nsd_trty_code user_trty_code, -nsd_kcode user_kcode, -ta_name ta, -'nsd' role -from tmp_auth_sales_user_ta_mapping -where --bu_name not in ('RDU','EC') -bu_name not in ('RDU') -and not (bu_name in ('Retail') and rc_code in ('RC198')) --架构中 EC 合并到 Retail 调整 20260127 -)auth_thc -union -----retail 5 -select -bu_name, -user_trty_code, -user_kcode, -ta, -role, -'Retail(Quarterly)' data_source -from -( ---dsm -select -bu_name, -dsm_trty_code user_trty_code, -dsm_kcode user_kcode, -ta_name ta, -'dsm' role -from tmp_auth_sales_user_ta_mapping -where --bu_name not in ('EC') -not (bu_name in ('Retail') and rc_code in ('RC198')) --架构中 EC 合并到 Retail 调整 20260127 -union ---rsm -select -bu_name, -rsm_trty_code user_trty_code, -rsm_kcode user_kcode, -ta_name ta, -'rsm' role -from tmp_auth_sales_user_ta_mapping -where --bu_name not in ('EC') -not (bu_name in ('Retail') and rc_code in ('RC198')) --架构中 EC 合并到 Retail 调整 20260127 -union ---rsd -select -bu_name, -rsd_trty_code user_trty_code, -rsd_kcode user_kcode, -ta_name ta, -'rsd' role -from tmp_auth_sales_user_ta_mapping -where --bu_name not in ('EC') -not (bu_name in ('Retail') and rc_code in ('RC198')) --架构中 EC 合并到 Retail 调整 20260127 -union ---nsd -select -bu_name, -nsd_trty_code user_trty_code, -nsd_kcode user_kcode, -ta_name ta, -'nsd' role -from tmp_auth_sales_user_ta_mapping -where --bu_name not in ('EC') -not (bu_name in ('Retail') and rc_code in ('RC198')) --架构中 EC 合并到 Retail 调整 20260127 -)auth_retail -----ec 6 -union -select -bu_name, -user_trty_code, -user_kcode, -ta, -role, -'EC(Monthly)' data_source -from -( ---dsm -select -bu_name, -dsm_trty_code user_trty_code, -dsm_kcode user_kcode, -ta_name ta, -'dsm' role -from tmp_auth_sales_user_ta_mapping --- where --bu_name ='EC' --- -- (bu_name in ('Retail') and rc_code in ('RC198')) --架构中 EC 合并到 Retail 调整 20260127 --- not (bu_name in ('Retail') and rc_code in ('RC198')) -- EC 改成和CHPA一样, 全BU可看 20260305 yusuo -union ---rsm -select -bu_name, -rsm_trty_code user_trty_code, -rsm_kcode user_kcode, -ta_name ta, -'rsm' role -from tmp_auth_sales_user_ta_mapping --- where --bu_name ='EC' --- -- (bu_name in ('Retail') and rc_code in ('RC198')) --架构中 EC 合并到 Retail 调整 20260127 --- not (bu_name in ('Retail') and rc_code in ('RC198')) -- EC 改成和CHPA一样, 全BU可看 20260305 yusuo -union ---rsd -select -bu_name, -rsd_trty_code user_trty_code, -rsd_kcode user_kcode, -ta_name ta, -'rsd' role -from tmp_auth_sales_user_ta_mapping --- where --bu_name ='EC' --- -- (bu_name in ('Retail') and rc_code in ('RC198')) --架构中 EC 合并到 Retail 调整 20260127 --- not (bu_name in ('Retail') and rc_code in ('RC198')) -- EC 改成和CHPA一样, 全BU可看 20260305 yusuo -union ---nsd -select -bu_name, -nsd_trty_code user_trty_code, -nsd_kcode user_kcode, -ta_name ta, -'nsd' role -from tmp_auth_sales_user_ta_mapping --- where --bu_name ='EC' --- -- (bu_name in ('Retail') and rc_code in ('RC198')) --架构中 EC 合并到 Retail 调整 20260127 --- not (bu_name in ('Retail') and rc_code in ('RC198')) -- EC 改成和CHPA一样, 全BU可看 20260305 yusuo -)auth_ec -----aia 7 -union -select -bu_name, -user_trty_code, -user_kcode, -ta, -role, -'AIA(Monthly)' data_source -from -( ---dsm -select -bu_name, -dsm_trty_code user_trty_code, -dsm_kcode user_kcode, -ta_name ta, -'dsm' role -from tmp_auth_sales_user_ta_mapping -where bu_name not in ('Retail','EC') -union ---rsm -select -bu_name, -rsm_trty_code user_trty_code, -rsm_kcode user_kcode, -ta_name ta, -'rsm' role -from tmp_auth_sales_user_ta_mapping -where bu_name not in ('Retail','EC') -union ---rsd -select -bu_name, -rsd_trty_code user_trty_code, -rsd_kcode user_kcode, -ta_name ta, -'rsd' role -from tmp_auth_sales_user_ta_mapping -where bu_name not in ('Retail','EC') -union ---nsd -select -bu_name, -nsd_trty_code user_trty_code, -nsd_kcode user_kcode, -ta_name ta, -'nsd' role -from tmp_auth_sales_user_ta_mapping -where bu_name not in ('Retail','EC') -)auth_aia -----xiehe 8 -union -select -bu_name, -user_trty_code, -user_kcode, -ta, -role, -'XH Data(Quarterly)' data_source -from -( ---dsm -select -bu_name, -dsm_trty_code user_trty_code, -dsm_kcode user_kcode, -ta_name ta, -'dsm' role -from tmp_auth_sales_user_ta_mapping -where --bu_name not in ('EC') -not (bu_name in ('Retail') and rc_code in ('RC198')) --架构中 EC 合并到 Retail 调整 20260127 -union ---rsm -select -bu_name, -rsm_trty_code user_trty_code, -rsm_kcode user_kcode, -ta_name ta, -'rsm' role -from tmp_auth_sales_user_ta_mapping -where --bu_name not in ('EC') -not (bu_name in ('Retail') and rc_code in ('RC198')) --架构中 EC 合并到 Retail 调整 20260127 -union ---rsd -select -bu_name, -rsd_trty_code user_trty_code, -rsd_kcode user_kcode, -ta_name ta, -'rsd' role -from tmp_auth_sales_user_ta_mapping -where --bu_name not in ('EC') -not (bu_name in ('Retail') and rc_code in ('RC198')) --架构中 EC 合并到 Retail 调整 20260127 -union ---nsd -select -bu_name, -nsd_trty_code user_trty_code, -nsd_kcode user_kcode, -ta_name ta, -'nsd' role -from tmp_auth_sales_user_ta_mapping -where --bu_name not in ('EC') -not (bu_name in ('Retail') and rc_code in ('RC198')) --架构中 EC 合并到 Retail 调整 20260127 -)auth_xiehe -)auth_sales_ta - -----DTP 9 -union all -select -bu_name, -user_trty_code, -user_kcode, -ta, -role, -'DTP(Quarterly)' data_source, -concat(ta,data_source) ta_source, -from_utc_timestamp(current_timestamp,'UTC+8') as etl_insert_dt, -from_utc_timestamp(current_timestamp,'UTC+8') as etl_update_dt -from -( ---dsm -select -bu_name, -dsm_trty_code user_trty_code, -dsm_kcode user_kcode, -ta_name ta, -'dsm' role -from tmp_auth_sales_user_ta_mapping -where --bu_name not in ('EC') -not (bu_name in ('Retail') and rc_code in ('RC198')) --架构中 EC 合并到 Retail 调整 20260127 -union ---rsm -select -bu_name, -rsm_trty_code user_trty_code, -rsm_kcode user_kcode, -ta_name ta, -'rsm' role -from tmp_auth_sales_user_ta_mapping -where --bu_name not in ('EC') -not (bu_name in ('Retail') and rc_code in ('RC198')) --架构中 EC 合并到 Retail 调整 20260127 -union ---rsd -select -bu_name, -rsd_trty_code user_trty_code, -rsd_kcode user_kcode, -ta_name ta, -'rsd' role -from tmp_auth_sales_user_ta_mapping -where --bu_name not in ('EC') -not (bu_name in ('Retail') and rc_code in ('RC198')) --架构中 EC 合并到 Retail 调整 20260127 -union ---nsd -select -bu_name, -nsd_trty_code user_trty_code, -nsd_kcode user_kcode, -ta_name ta, -'nsd' role -from tmp_auth_sales_user_ta_mapping -where --bu_name not in ('EC') -not (bu_name in ('Retail') and rc_code in ('RC198')) --架构中 EC 合并到 Retail 调整 20260127 -)auth_retail - -; - - --- COMMAND ---------- - ------非销售权限 用户申请的TA维度权限 -insert overwrite table dm.dm_auth_nonsales_ta -select -user_kcode, -user_role, -ta_code, -case when ta_name ='ONC' then 'ONCO' else ta_name end ta_name, -from_utc_timestamp(current_timestamp,'UTC+8') as etl_insert_dt, -from_utc_timestamp(current_timestamp,'UTC+8') as etl_update_dt -from -( -select distinct user_kcode,role user_role,ta_code,ta_name -from dm.dm_td_user_permission_derived -where nvl(ta_name,'')<>'' -)nonsales_ta; - --- COMMAND ---------- - -drop view if exists tmp_auth_sales_bu_ta_mapping; -create temporary view tmp_auth_sales_bu_ta_mapping -as -( -select distinct bu_code,bu_name,sub_bu_code,sub_bu_name,ta_code,ta_name -from tmp_auth_sales_user_ta_mapping -); - --- COMMAND ---------- - ------用户申请的BU维度权限转换为架构中负责的TA -insert overwrite table dm.dm_auth_nonsales_org -select -coalesce(subbu_ta_map.bu_code,nonsales_subbu.bu_code) bu_code, -coalesce(subbu_ta_map.bu_name,nonsales_subbu.bu_name) bu_name, -nonsales_subbu.user_kcode, -nonsales_subbu.user_role, -coalesce(subbu_ta_map.sub_bu_code,nonsales_subbu.sub_bu_code) sub_bu_code, -coalesce(subbu_ta_map.sub_bu_name,nonsales_subbu.sub_bu_name) sub_bu_name, -subbu_ta_map.ta_code, -subbu_ta_map.ta_name, -'SUB_BU' row_tag, -from_utc_timestamp(current_timestamp,'UTC+8') as etl_insert_dt, -from_utc_timestamp(current_timestamp,'UTC+8') as etl_update_dt -from -( -select -distinct -user_kcode, -role user_role, -bu_code, -bu_name, -sub_bu_code, -sub_bu_name -from dm.dm_td_user_permission_detail -where nvl(sub_bu_code,'')<>'' -)nonsales_subbu -left join -( -select bu_code,bu_name,sub_bu_code,sub_bu_name,ta_code,ta_name -from tmp_auth_sales_bu_ta_mapping -)subbu_ta_map -on nonsales_subbu.sub_bu_code = subbu_ta_map.sub_bu_code -union -select -nonsales_bu.user_kcode, -nonsales_bu.user_role, -coalesce(bu_ta_map.bu_code,nonsales_bu.bu_code) bu_code, -coalesce(bu_ta_map.bu_name,nonsales_bu.bu_name) bu_name, -bu_ta_map.sub_bu_code, -bu_ta_map.sub_bu_name, -bu_ta_map.ta_code, -bu_ta_map.ta_name, -'BU' row_tag, -from_utc_timestamp(current_timestamp,'UTC+8') as etl_insert_dt, -from_utc_timestamp(current_timestamp,'UTC+8') as etl_update_dt -from -( -select -distinct -user_kcode, -role user_role, -bu_code, -bu_name -from dm.dm_td_user_permission_detail -where nvl(sub_bu_code,'')='' and nvl(bu_code,'')<>'' -)nonsales_bu -left join -( -select distinct bu_code,bu_name,sub_bu_code,sub_bu_name,ta_code,ta_name -from tmp_auth_sales_bu_ta_mapping -)bu_ta_map -on nonsales_bu.bu_code = bu_ta_map.bu_code; - --- COMMAND ---------- - --- DBTITLE 1,old version --- insert overwrite dm.dm_auth_geo(KCODE,CITY_CODE) --- select distinct --- t1.k_account as KCODE, --- t2.AUDIT_COD as CITY_CODE --- from ( --- select K_ACCOUNT, --- USER_NAME, --- Province_GEO --- from dm.DM_TD_SPECIAL_GROUP --- where ROLE = 'PI_GEO_IMS' --- and length(Province_GEO) > 0 --- ) t1 --- join --- ( --- select distinct --- PROVINCE_C, --- AUDIT_COD --- from dm.DM_IMS_TD_GEO --- where length(AUDIT_COD) > 0 --- ) t2 --- on t1.Province_GEO = t2.PROVINCE_C - --- COMMAND ---------- - --- insert overwrite dm.dm_auth_org(KCODE,SUB_BU_CODE) --- select --- t1.user_kcode as KCODE, --- t2.SUB_BU_CODE as SUB_BU_CODE --- from ( --- select K_ACCOUNT as user_kcode, --- bu_org as BU_NAME --- from dm.DM_TD_SPECIAL_GROUP --- where ROLE = 'PI_ORG_IMS' --- and length(bu_org) > 0 --- ) t1 --- join ( --- select distinct --- BU_NAME, --- SUB_BU_CODE --- from DM.DM_TD_ORG --- ) t2 --- on t1.BU_NAME = t2.BU_NAME - --- COMMAND ---------- - --- --------------------------------------------------------------------------- --- --修改时间:20241112 --- --修改人:Fanxujia --- --修改内容: --- --for AIA Dashboard: --- --1)MA报告没有权限,旧AIA报告有权限:增加旧AIA报告的权限人员,以旧AIA报告的范围开权限(by TA) --- --2)MA报告有权限,旧AIA报告也有权限:以旧AIA报告权限范围为准 --- --3)MA报告有权限,旧AIA报告没有权限:保持不变 --- --------------------------------------------------------------------------- --- with AIA_USERS as ( --- select --- distinct gu.k_account as KCODE, --- upper(rg.ta_prd) as TA_PRD --- from --- dm.DM_TD_GROUP_USERS gu --- join dm.DM_TD_REPORT_GROUP rg on gu.user_team = rg.user_group --- where --- rg.role = 'PI_PRD_CPA' --- and length(rg.ta_prd) > 0 --- union --- SELECT distinct --- K_ACCOUNT as KCODE, --- upper(TA_PRD) as TA_PRD --- FROM --- dm.DM_TD_SPECIAL_GROUP --- WHERE --- ROLE = 'PI_PRD_CPA' --- AND length(TA_PRD) > 0 --- ) - --- ,CHPA_USERS as ( --- select --- distinct gu.k_account as KCODE, --- upper(rg.ta_prd) as TA_PRD --- from --- dm.DM_TD_GROUP_USERS gu --- join dm.DM_TD_REPORT_GROUP rg on gu.user_team = rg.user_group --- where --- rg.role = 'PI_PRD_IMS' --- and length(rg.ta_prd) > 0 --- union --- SELECT distinct --- K_ACCOUNT as KCODE, --- upper(TA_PRD) as TA_PRD --- FROM --- dm.DM_TD_SPECIAL_GROUP --- WHERE --- ROLE = 'PI_PRD_IMS' --- AND length(TA_PRD) > 0 --- ) - --- ,ALL_USERS as ( --- --单独CHPA用户 --- select distinct --- KCODE, --- TA_PRD --- from CHPA_USERS --- where KCODE not in ( --- select KCODE from AIA_USERS --- ) --- union --- --1:单独AIA用户 --- --2:同时存在于CHPA以及AIA的用户,以AIA的权限为准 --- select distinct --- KCODE, --- TA_PRD --- from AIA_USERS --- ) - --- ,TA_MARKET as ( --- SELECT --- DISTINCT TA, --- MARKET --- FROM --- dm.dm_td_external_market_pack_mapping_temp --- WHERE --- length(TA) > 0 --- ) - - --- insert overwrite dm.dm_auth_prd( --- KCODE, --- MARKET --- ) --- select distinct --- t1.KCODE, --- t2.MARKET --- from ALL_USERS t1 --- inner join TA_MARKET t2 --- on t1.TA_PRD = t2.TA - - --- COMMAND ---------- - --- ------------------------------------------------------------------------ --- --修改时间:20241108 --- --修改人:Fanxujia --- --修改内容: --- --增加产品粒度的权限表 --- ------------------------------------------------------------------------ --- insert overwrite table dm.dm_auth_prd_pack --- ( --- KCODE, --- PACK_COD --- ) --- with market_pack as ( --- select distinct --- PACK_COD, --- MARKET --- from dm.dm_td_external_market_pack_mapping --- ) - --- select distinct --- t1.KCODE, --- t2.PACK_COD --- from dm.dm_auth_prd t1 --- inner join market_pack t2 --- on t1.MARKET = t2.MARKET - - - --- COMMAND ---------- - --- --------------------------------chpa-------------------------------------------------------------------- --- ------------------所有BU能看CHPA,用户需要排除非重点城市之外的人 --- insert overwrite dm.dm_auth_sales(KCODE,bu_code_auth,bu_name,role,MKT_SOURCE,AUDIT_SOURCE,DATA_SOURCE) --- WITH EMP AS ( --- select distinct dsm_kcode KCODE,concat(bu_code,'IQVIA-CHPA(Monthly)') as bu_code_auth,bu_name,'dsm' role from DM.DM_IMS_TD_ORG_HVH where length(dsm_kcode) > 0 and yyyymm=(select max(yyyymm) from DM.DM_IMS_TD_ORG_HVH) --and audit_cod is not null --- union all --- select distinct rsm_kcode KCODE,concat(bu_code,'IQVIA-CHPA(Monthly)') as bu_code_auth,bu_name,'rsm' role from DM.DM_IMS_TD_ORG where length(rsm_kcode) > 0 --and audit_cod is not null --- union all --- select distinct rsd_kcode KCODE,concat(bu_code,'IQVIA-CHPA(Monthly)') as bu_code_auth,bu_name,'rsd' role from DM.DM_IMS_TD_ORG where length(rsd_kcode) > 0 --and audit_cod is not null --- union all --- select distinct nsd_kcode KCODE,concat(bu_code,'IQVIA-CHPA(Monthly)') as bu_code_auth,bu_name,'nsd' role from DM.DM_IMS_TD_ORG where length(nsd_kcode) > 0 --and audit_cod is not null --- ) --- SELECT A.KCODE,A.bu_code_auth,A.bu_name,A.role,concat(B.MARKET,'IQVIA-CHPA(Monthly)') MKT_SOURCE,concat(B.AUDIT_COD,'IQVIA-CHPA(Monthly)') AUDIT_SOURCE --- ,'IQVIA-CHPA(Monthly)' DATA_SOURCE FROM EMP A --- INNER JOIN (SELECT DISTINCT bu_code_auth,AUDIT_COD,MARKET FROM DM.dm_td_external_org) B ON A.bu_code_auth = B.bu_code_auth - --- COMMAND ---------- - --- ----------------------------------------------------CHC------------------------------------------------------------------------------ --- -----------------------CHC的人能看 --- insert into dm.dm_auth_sales(KCODE,bu_code_auth,bu_name,role,MKT_SOURCE,AUDIT_SOURCE,DATA_SOURCE) --- with emp as ( --- select distinct dsm_kcode KCODE,concat(bu_code,'CHC(Quarterly)') as bu_code_auth,'' bu_name,'dsm' role from DM.DM_IMS_TD_ORG_HVH where length(dsm_kcode) > 0 and yyyymm=(select max(yyyymm) from DM.DM_IMS_TD_ORG_HVH) AND BU_NAME_EN = 'CHC' --- union all --- select distinct rsm_kcode KCODE,concat(bu_code,'CHC(Quarterly)') as bu_code_auth,'' bu_name,'rsm' role from DM.DM_IMS_TD_ORG where length(rsm_kcode) > 0 AND BU_NAME_EN = 'CHC' --- union all --- select distinct rsd_kcode KCODE,concat(bu_code,'CHC(Quarterly)') as bu_code_auth,'' bu_name,'rsd' role from DM.DM_IMS_TD_ORG where length(rsd_kcode) > 0 AND BU_NAME_EN = 'CHC' --- union all --- select distinct nsd_kcode KCODE,concat(bu_code,'CHC(Quarterly)') as bu_code_auth,'' bu_name,'nsd' role from DM.DM_IMS_TD_ORG where length(nsd_kcode) > 0 AND BU_NAME_EN = 'CHC' --- ) --- SELECT A.KCODE,A.bu_code_auth,A.bu_name,A.role,concat(B.MARKET,'CHC(Quarterly)') MKT_SOURCE,concat(B.AUDIT_COD,'CHC(Quarterly)') AUDIT_SOURCE --- ,'CHC(Quarterly)' DATA_SOURCE FROM EMP A --- INNER JOIN (SELECT DISTINCT bu_code_auth,AUDIT_COD,MARKET FROM DM.dm_td_external_org ) B ON A.bu_code_auth = B.bu_code_auth - --- COMMAND ---------- - --- ----------------------------------------------------county------------------------------------------------------------------------------ --- -----------------------除了Eagle、CHC、Retail、EC的人都能看 --- insert into dm.dm_auth_sales(KCODE,bu_code_auth,bu_name,role,MKT_SOURCE,AUDIT_SOURCE,DATA_SOURCE) --- with emp as ( --- select distinct dsm_kcode KCODE,concat('','IQVIA-COUNTY(Quarterly)') bu_code_auth,'' bu_name,'dsm' role from DM.DM_IMS_TD_ORG_HVH where length(dsm_kcode) > 0 and yyyymm=(select max(yyyymm) from DM.DM_IMS_TD_ORG_HVH) AND BU_NAME_EN NOT IN ('Eagle','CHC','EC','Retail') --- union all --- select distinct rsm_kcode KCODE,concat('','IQVIA-COUNTY(Quarterly)') bu_code_auth,'' bu_name,'rsm' role from DM.DM_IMS_TD_ORG where length(rsm_kcode) > 0 AND BU_NAME_EN NOT IN ('Eagle','CHC','EC','Retail') --- union all --- select distinct rsd_kcode KCODE,concat('','IQVIA-COUNTY(Quarterly)') bu_code_auth,'' bu_name,'rsd' role from DM.DM_IMS_TD_ORG where length(rsd_kcode) > 0 AND BU_NAME_EN NOT IN ('Eagle','CHC','EC','Retail') --- union all --- select distinct nsd_kcode KCODE,concat('','IQVIA-COUNTY(Quarterly)') bu_code_auth,'' bu_name,'nsd' role from DM.DM_IMS_TD_ORG where length(nsd_kcode) > 0 AND BU_NAME_EN NOT IN ('Eagle','CHC','EC','Retail') --- ) --- SELECT A.KCODE,A.bu_code_auth,A.bu_name,A.role,concat(B.MARKET,'IQVIA-COUNTY(Quarterly)') MKT_SOURCE,concat(B.AUDIT_COD,'IQVIA-COUNTY(Quarterly)') AUDIT_SOURCE --- ,'IQVIA-COUNTY(Quarterly)' DATA_SOURCE FROM EMP A --- INNER JOIN (SELECT DISTINCT bu_code_auth,AUDIT_COD,MARKET FROM DM.dm_td_external_org ) B ON A.bu_code_auth = B.bu_code_auth - --- COMMAND ---------- - --- ----------------------------------------------------THC------------------------------------------------------------------------------ --- -----------------------Eagle的人能看 --- insert into dm.dm_auth_sales(KCODE,bu_code_auth,bu_name,role,MKT_SOURCE,AUDIT_SOURCE,DATA_SOURCE) --- with emp as ( --- select distinct dsm_kcode KCODE,concat('','THC(Quarterly)') as bu_code_auth,'' bu_name,'dsm' role from DM.DM_IMS_TD_ORG_HVH where length(dsm_kcode) > 0 and yyyymm=(select max(yyyymm) from DM.DM_IMS_TD_ORG_HVH) AND BU_NAME_EN = 'Eagle' --- union all --- select distinct rsm_kcode KCODE,concat('','THC(Quarterly)') as bu_code_auth,'' bu_name,'rsm' role from DM.DM_IMS_TD_ORG where length(rsm_kcode) > 0 AND BU_NAME_EN = 'Eagle' --- union all --- select distinct rsd_kcode KCODE,concat('','THC(Quarterly)') as bu_code_auth,'' bu_name,'rsd' role from DM.DM_IMS_TD_ORG where length(rsd_kcode) > 0 AND BU_NAME_EN = 'Eagle' --- union all --- select distinct nsd_kcode KCODE,concat('','THC(Quarterly)') as bu_code_auth,'' bu_name,'nsd' role from DM.DM_IMS_TD_ORG where length(nsd_kcode) > 0 AND BU_NAME_EN = 'Eagle' --- ) --- SELECT A.KCODE,A.bu_code_auth,A.bu_name,A.role,concat(B.MARKET,'THC(Quarterly)') MKT_SOURCE,concat(B.AUDIT_COD,'THC(Quarterly)') AUDIT_SOURCE --- ,'THC(Quarterly)' DATA_SOURCE FROM EMP A --- INNER JOIN (SELECT DISTINCT bu_code_auth,AUDIT_COD,MARKET FROM DM.dm_td_external_org ) B ON A.bu_code_auth = B.bu_code_auth - --- COMMAND ---------- - --- --------------------------------Retail-------------------------------------------------------------------- --- ------------------------------------------------ --- --修改时间:20241016 --- --修改人:FanXujia --- --修改内容: --- --给Eagle的人查看Metoprolol Tartrate Market的权限 --- ------------------------------------------------- --- ------------------所有BU能看CHPA,用户需要排除非重点城市之外的人 --- insert into dm.dm_auth_sales(KCODE,bu_code_auth,bu_name,role,MKT_SOURCE,AUDIT_SOURCE,DATA_SOURCE) --- with emp as ( --- select distinct dsm_kcode KCODE,concat('PC09','Retail(Quarterly)') as bu_code_auth,bu_name,'dsm' role from DM.DM_IMS_TD_ORG_HVH where length(dsm_kcode) > 0 and yyyymm=(select max(yyyymm) from DM.DM_IMS_TD_ORG_HVH) and bu_name_en in ('Retail','OBU') --- union all --- select distinct rsm_kcode KCODE,concat('PC09','Retail(Quarterly)') as bu_code_auth,bu_name,'rsm' role from DM.DM_IMS_TD_ORG where length(rsm_kcode) > 0 and bu_name_en in ('Retail','OBU') --- union all --- select distinct rsd_kcode KCODE,concat('PC09','Retail(Quarterly)') as bu_code_auth,bu_name,'rsd' role from DM.DM_IMS_TD_ORG where length(rsd_kcode) > 0 and bu_name_en in ('Retail','OBU') --- union all --- select distinct nsd_kcode KCODE,concat('PC09','Retail(Quarterly)') as bu_code_auth,bu_name,'nsd' role from DM.DM_IMS_TD_ORG where length(nsd_kcode) > 0 and bu_name_en in ('Retail','OBU') --- ) --- ,Eagle as ( --- select distinct dsm_kcode KCODE,concat('PC09','Retail(Quarterly)') as bu_code_auth,bu_name,'dsm' role from DM.DM_IMS_TD_ORG_HVH where length(dsm_kcode) > 0 and yyyymm=(select max(yyyymm) from DM.DM_IMS_TD_ORG_HVH) and bu_name_en in ('Eagle') --- union all --- select distinct rsm_kcode KCODE,concat('PC09','Retail(Quarterly)') as bu_code_auth,bu_name,'rsm' role from DM.DM_IMS_TD_ORG where length(rsm_kcode) > 0 and bu_name_en in ('Eagle') --- union all --- select distinct rsd_kcode KCODE,concat('PC09','Retail(Quarterly)') as bu_code_auth,bu_name,'rsd' role from DM.DM_IMS_TD_ORG where length(rsd_kcode) > 0 and bu_name_en in ('Eagle') --- union all --- select distinct nsd_kcode KCODE,concat('PC09','Retail(Quarterly)') as bu_code_auth,bu_name,'nsd' role from DM.DM_IMS_TD_ORG where length(nsd_kcode) > 0 and bu_name_en in ('Eagle') --- ) --- ,audit as ( --- select distinct t1.AUDIT_COD --- from dm.dm_tf_external_sales t1 --- left join dm.dm_td_external_market_pack_mapping_temp t2 --- on t1.DATA_SOURCE = t2.DATA_SOURCE --- and t1.PACK_COD = t2.PACK_COD --- where t1.DATA_SOURCE = 'Retail(Quarterly)' --- and t2.MARKET = 'Metoprolol Tartrate Market' --- ) - --- SELECT A.KCODE,A.bu_code_auth,A.bu_name,A.role,concat(B.MARKET,'Retail(Quarterly)') MKT_SOURCE,concat(B.AUDIT_COD,'Retail(Quarterly)') AUDIT_SOURCE --- ,'Retail(Quarterly)' DATA_SOURCE FROM EMP A --- INNER JOIN (SELECT DISTINCT bu_code_auth,AUDIT_COD,MARKET FROM DM.dm_td_external_org ) B ON A.bu_code_auth = B.bu_code_auth --- union all --- select t1.KCODE, --- t1.bu_code_auth, --- t1.bu_name, --- t1.role, --- concat('Metoprolol Tartrate Market','Retail(Quarterly)') MKT_SOURCE, --- concat(t2.AUDIT_COD,'Retail(Quarterly)') AUDIT_SOURCE, --- 'Retail(Quarterly)' DATA_SOURCE --- from Eagle t1 --- cross join audit t2 - - --- COMMAND ---------- - --- --------------------------------EC-------------------------------------------------------------------- --- ------------------EC的数据暂时开通给EC --- insert into dm.dm_auth_sales(KCODE,bu_code_auth,bu_name,role,MKT_SOURCE,AUDIT_SOURCE,DATA_SOURCE) --- with emp as ( --- select distinct dsm_kcode KCODE,concat('','EC(Monthly)') as bu_code_auth,bu_name,'dsm' role from DM.DM_IMS_TD_ORG_HVH where length(dsm_kcode) > 0 and yyyymm=(select max(yyyymm) from DM.DM_IMS_TD_ORG_HVH) and bu_name_en = 'EC' --- union all --- select distinct rsm_kcode KCODE,concat('','EC(Monthly)') as bu_code_auth,bu_name,'rsm' role from DM.DM_IMS_TD_ORG where length(rsm_kcode) > 0 and bu_name_en = 'EC' --- union all --- select distinct rsd_kcode KCODE,concat('','EC(Monthly)') as bu_code_auth,bu_name,'rsd' role from DM.DM_IMS_TD_ORG where length(rsd_kcode) > 0 and bu_name_en = 'EC' --- union all --- select distinct nsd_kcode KCODE,concat('','EC(Monthly)') as bu_code_auth,bu_name,'nsd' role from DM.DM_IMS_TD_ORG where length(nsd_kcode) > 0 and bu_name_en = 'EC' --- ) --- SELECT A.KCODE,A.bu_code_auth,A.bu_name,A.role,concat(B.MARKET,'EC(Monthly)') MKT_SOURCE,concat(B.AUDIT_COD,'EC(Monthly)') AUDIT_SOURCE --- ,'EC(Monthly)' DATA_SOURCE FROM EMP A --- INNER JOIN (SELECT DISTINCT bu_code_auth,AUDIT_COD,MARKET FROM DM.dm_td_external_org ) B ON A.bu_code_auth = B.bu_code_auth - --- COMMAND ---------- - --- --------------------------------AIA-------------------------------------------------------------------- --- ------------------所有BU能看AIA --- insert into dm.dm_auth_sales(KCODE,bu_code_auth,bu_name,role,MKT_SOURCE,AUDIT_SOURCE,DATA_SOURCE) --- WITH EMP AS ( --- select distinct dsm_kcode KCODE,concat(bu_code,'AIA(Monthly)') as bu_code_auth,bu_name,'dsm' role from DM.DM_IMS_TD_ORG_HVH where length(dsm_kcode) > 0 and yyyymm=(select max(yyyymm) from DM.DM_IMS_TD_ORG_HVH) --and audit_cod is not null --- union all --- select distinct rsm_kcode KCODE,concat(bu_code,'AIA(Monthly)') as bu_code_auth,bu_name,'rsm' role from DM.DM_IMS_TD_ORG where length(rsm_kcode) > 0 --and audit_cod is not null --- union all --- select distinct rsd_kcode KCODE,concat(bu_code,'AIA(Monthly)') as bu_code_auth,bu_name,'rsd' role from DM.DM_IMS_TD_ORG where length(rsd_kcode) > 0 --and audit_cod is not null --- union all --- select distinct nsd_kcode KCODE,concat(bu_code,'AIA(Monthly)') as bu_code_auth,bu_name,'nsd' role from DM.DM_IMS_TD_ORG where length(nsd_kcode) > 0 --and audit_cod is not null --- ) --- SELECT A.KCODE,A.bu_code_auth,A.bu_name,A.role,concat(B.MARKET,'AIA(Monthly)') MKT_SOURCE,concat(B.AUDIT_COD,'AIA(Monthly)') AUDIT_SOURCE --- ,'AIA(Monthly)' DATA_SOURCE FROM EMP A --- INNER JOIN (SELECT DISTINCT bu_code_auth,AUDIT_COD,MARKET FROM DM.dm_td_external_org) B ON A.bu_code_auth = B.bu_code_auth - --- COMMAND ---------- - --- --------------------------------XIEHE-------------------------------------------------------------------- --- ------------------所有BU能看XIEHE --- insert into dm.dm_auth_sales(KCODE,bu_code_auth,bu_name,role,MKT_SOURCE,AUDIT_SOURCE,DATA_SOURCE) --- WITH EMP AS ( --- select distinct dsm_kcode KCODE,concat(bu_code,'XH Data(Quarterly)') as bu_code_auth,bu_name,'dsm' role from DM.DM_IMS_TD_ORG_HVH where length(dsm_kcode) > 0 and yyyymm=(select max(yyyymm) from DM.DM_IMS_TD_ORG_HVH) --and audit_cod is not null --- union all --- select distinct rsm_kcode KCODE,concat(bu_code,'XH Data(Quarterly)') as bu_code_auth,bu_name,'rsm' role from DM.DM_IMS_TD_ORG where length(rsm_kcode) > 0 --and audit_cod is not null --- union all --- select distinct rsd_kcode KCODE,concat(bu_code,'XH Data(Quarterly)') as bu_code_auth,bu_name,'rsd' role from DM.DM_IMS_TD_ORG where length(rsd_kcode) > 0 --and audit_cod is not null --- union all --- select distinct nsd_kcode KCODE,concat(bu_code,'XH Data(Quarterly)') as bu_code_auth,bu_name,'nsd' role from DM.DM_IMS_TD_ORG where length(nsd_kcode) > 0 --and audit_cod is not null --- ) --- SELECT A.KCODE,A.bu_code_auth,A.bu_name,A.role,concat(B.MARKET,'XH Data(Quarterly)') MKT_SOURCE,concat(B.AUDIT_COD,'XH Data(Quarterly)') AUDIT_SOURCE --- ,'XH Data(Quarterly)' DATA_SOURCE FROM EMP A --- INNER JOIN (SELECT DISTINCT bu_code_auth,AUDIT_COD,MARKET FROM DM.dm_td_external_org) B ON A.bu_code_auth = B.bu_code_auth - --- COMMAND ---------- - --- ------------------------------------------------------------------------- --- --修改时间:20241106 --- --修改人:Fanxujia --- --修改内容: --- --将PBI的逻辑移到DBR上(dm_auth_sales_geo) --- ------------------------------------------------------------------------- --- insert overwrite table dm.dm_auth_sales_geo( --- KCODE, --- AUDIT_SOURCE --- ) --- select --- distinct KCODE, --- AUDIT_SOURCE --- from --- dm.dm_auth_sales - --- COMMAND ---------- - --- ------------------------------------------------------------------------- --- --修改时间:20241106 --- --修改人:Fanxujia --- --修改内容: --- --将PBI的逻辑移到DBR上(dm_auth_sales_mkt) --- ------------------------------------------------------------------------- --- insert overwrite table dm.dm_auth_sales_mkt( --- KCODE, --- MKT_SOURCE --- ) --- select --- distinct KCODE, --- MKT_SOURCE --- from --- dm.dm_auth_sales - --- COMMAND ---------- - --- ------------------------------------------------------------------------- --- --修改时间:20241106 --- --修改人:Fanxujia --- --修改内容: --- --将PBI的逻辑移到DBR上(dm_auth_sales_org) --- ------------------------------------------------------------------------- --- insert overwrite table dm.dm_auth_sales_org( --- KCODE, --- BU_CODE_AUTH --- ) --- select --- distinct KCODE, --- BU_CODE_AUTH --- from --- dm.dm_auth_sales - --- COMMAND ---------- - --- DBTITLE 1,old version --- ------------------------------------------------------------------------- --- --修改时间:20241106 --- --修改人:Fanxujia --- --修改内容: --- --将PBI的逻辑移到DBR上(dm_auth_sales_pack) --- ------------------------------------------------------------------------- --- insert overwrite table dm.dm_auth_sales_pack( --- KCODE, --- PACK_SOURCE --- ) --- with market_pack as ( --- select distinct --- concat(MARKET,DATA_SOURCE) as MKT_SOURCE, --- concat(PACK_COD,DATA_SOURCE) as PACK_SOURCE --- from dm.dm_td_external_market_pack_mapping --- ) --- ,user_market as ( --- select distinct KCODE,MKT_SOURCE --- from dm.dm_auth_sales --- ) - --- select distinct --- t1.KCODE, --- t2.PACK_SOURCE --- from user_market t1 --- inner join market_pack t2 --- on t1.MKT_SOURCE = t2.MKT_SOURCE - --- COMMAND ---------- - --- MAGIC %md --- MAGIC ### ------------------------- - --- COMMAND ---------- - ------------------------------------------------------------------------- ---修改时间:20241112 ---修改人:Fanxujia ---修改内容: ---CHPA渠道不显示以下几个BU的架构 ('BBU_County','CHC','EC','Eagle','Retail') ------------------------------------------------------------------------- -delete from DM.DM_TD_EXTERNAL_ORG -where bu_name_en in ('BBU_County','CHC','EC','Retail') -and data_source = 'IQVIA-CHPA(Monthly)'; -/* -修改时间:20251124 -修改人:Chenwu -修改内容:CHPA数据源,消化口服产品(Nexium Oral, Losec Oral)架构需要增加Eagle团队 -*/ -WITH market_list AS ( - SELECT DISTINCT m.MARKET - FROM dws.dws_ims_td_market m - INNER JOIN dwd.dwd_td_imscode_azcode a ON m.PACK_COD = a.ims_pack_cod - WHERE a.brandcode IN ('B018','B019') - AND a.ims_pack_cod IS NOT NULL -) -DELETE FROM DM.DM_TD_EXTERNAL_ORG -WHERE data_source = 'IQVIA-CHPA(Monthly)' - AND bu_name_en = 'Eagle' - AND MARKET NOT IN (SELECT MARKET FROM market_list); - --- COMMAND ---------- - ---------------------------------------------------------------------------- ---修改时间:20240828 ---修改人:FanXujia ---修改内容: ---同一个城市的同一个市场同时对应了正常的大区以及ROC,这是不对的,需要把ROC的数据删除 ----------------------------------------------------------------------------- -with org as ( -select distinct DATA_SOURCE,AUDIT_COD,MARKET,'ROC' as region_name_en -from DM.DM_TD_EXTERNAL_ORG -where region_name_en <> 'ROC' -) - -merge into DM.DM_TD_EXTERNAL_ORG as t1 -using org t2 -on t1.DATA_SOURCE = t2.DATA_SOURCE -and t1.AUDIT_COD = t2.AUDIT_COD -and t1.MARKET = t2.MARKET -and t1.region_name_en = t2.region_name_en -when matched then -delete ; - --- COMMAND ---------- - ---------------------------------------------------------------------------- ---修改时间:20240828 ---修改人:FanXujia ---修改内容: ---在上一步删除完之后 ---同一个城市的同一个市场只对应ROC,但是有多条数据对应ROC,保留1条数据,其余的删除 ----------------------------------------------------------------------------- -with org_1 as ( -select DATA_SOURCE,AUDIT_COD,MARKET -from DM.DM_TD_EXTERNAL_ORG -where region_name_en = 'ROC' -group by DATA_SOURCE,AUDIT_COD,MARKET -having count(1) >1 -) -,org_2 as ( -select t1.DATA_SOURCE,t1.AUDIT_COD,t1.MARKET, -max(concat(t1.RSM_Name,t1.rc_name,t1.regioncenter,t1.bu_category,t1.bu_name_en,t1.sub_bu_name,t1.sub_bu_code_auth,t1.bu_code_auth,t1.MR_TRTY_CODE)) link_key -from DM.DM_TD_EXTERNAL_ORG t1 -inner join org_1 t2 -on t1.DATA_SOURCE = t2.DATA_SOURCE -and t1.AUDIT_COD = t2.AUDIT_COD -and t1.MARKET = t2.MARKET -group by t1.DATA_SOURCE,t1.AUDIT_COD,t1.MARKET -) - -merge into DM.DM_TD_EXTERNAL_ORG as t1 -using org_2 t2 -on t1.DATA_SOURCE = t2.DATA_SOURCE -and t1.AUDIT_COD = t2.AUDIT_COD -and t1.MARKET = t2.MARKET -and concat(t1.RSM_Name,t1.rc_name,t1.regioncenter,t1.bu_category,t1.bu_name_en,t1.sub_bu_name,t1.sub_bu_code_auth,t1.bu_code_auth,t1.MR_TRTY_CODE) <> t2.link_key -when matched then -delete ; \ No newline at end of file diff --git a/EXTERNAL/13 external auth.sql:Zone.Identifier b/EXTERNAL/13 external auth.sql:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2x= '202401' - GROUP BY - YM, - PACK_COD, - CORP_COD, - AUDIT_COD, - INST_CODE - --- COMMAND ---------- - --- 20260109 dm.dm_ext_aia_sales 是老的表,现在已经用DM.DM_TF_EXT_AIA_SALES 替换,但是为了下游,老表暂时不下线,仍然写入 - insert overwrite table dm.dm_ext_aia_sales ( - ym, - org_ins_cd, - inst_code, - AUDIT_COD, - pack_cod, - corp_cod, - value, - volume, - counting_unit, - value_ly, - volume_ly, - counting_unit_ly - ) -select - ym, - org_ins_cd, - inst_code, - AUDIT_COD, - pack_cod, - corp_cod, - sum(value) as value, - sum(volume) as volume, - sum(counting_unit) as counting_unit, - sum(value_ly) as value_ly, - sum(volume_ly) as volume_ly, - sum(counting_unit_ly) as counting_unit_ly -from - aia_rawdata_FINAL -CROSS JOIN - filter_ym -WHERE - YM BETWEEN filter_ym.min_yyyymm AND filter_ym.max_yyyymm -group by - ym, - org_ins_cd, - inst_code, - AUDIT_COD, - pack_cod, - corp_cod - --- COMMAND ---------- - --- MAGIC %md --- MAGIC 下面是重构验证,chenwu可删 - --- COMMAND ---------- - --- %sql --- inst_code --- ym --- MARKET - --- COMMAND ---------- - --- SELECT ym,AUDIT_COD,inst_code,SUM(value) value,SUM(volume) volume,SUM(counting_unit) counting_unit,SUM(value_ly) value_ly,SUM(volume_ly) volume_ly,SUM(counting_unit_ly) counting_unit_ly --- FROM dm.dm_ext_aia_sales --- GROUP BY ym,AUDIT_COD,inst_code --- ORDER BY ym,AUDIT_COD,inst_code - --- COMMAND ---------- - --- SELECT ym,AUDIT_COD,SUM(value) value,SUM(volume) volume,SUM(counting_unit) counting_unit,SUM(value_ly) value_ly,SUM(volume_ly) volume_ly,SUM(counting_unit_ly) counting_unit_ly --- FROM dm.dm_ext_aia_sales --- GROUP BY ym,AUDIT_COD --- ORDER BY ym,AUDIT_COD - --- COMMAND ---------- - - --- SELECT --- old.ym, --- OLD.AUDIT_COD, --- OLD.inst_code, --- OLD.value, --- NEW.value, --- OLD.value-NEW.value as dif_value, --- OLD.value_ly, --- NEW.value_ly, --- OLD.value_ly-NEW.value_ly as dif_value_ly, --- OLD.volume, --- NEW.volume, --- OLD.volume-NEW.volume as dif_volume, --- OLD.volume_ly, --- NEW.volume_ly, --- OLD.volume_ly-NEW.volume_ly as dif_volume_ly, --- OLD.counting_unit, --- NEW.counting_unit, --- OLD.counting_unit-NEW.counting_unit as dif_counting_unit, --- OLD.counting_unit_ly, --- NEW.counting_unit_ly, --- OLD.counting_unit_ly-NEW.counting_unit_ly as dif_counting_unit_ly --- FROM --- ( --- SELECT ym,AUDIT_COD,inst_code,SUM(value) value,SUM(volume) volume,SUM(counting_unit) counting_unit,SUM(value_ly) value_ly,SUM(volume_ly) volume_ly,SUM(counting_unit_ly) counting_unit_ly --- FROM dm.dm_ext_aia_sales --- GROUP BY ym,AUDIT_COD,inst_code --- -- ORDER BY ym --- ) AS OLD --- LEFT JOIN --- ( --- SELECT YYYYMM,AUDIT_CODE,inst_code,SUM(SALES_VALUE_CAL) value,SUM(SALES_UNIT_CAL) volume,SUM(CONUTING_UNIT) counting_unit,SUM(SALES_VALUE_CAL_LY) value_ly,SUM(SALES_UNIT_CAL_LY) volume_ly,SUM(CONUTING_UNIT_LY) counting_unit_ly --- FROM DM.DM_TF_EXT_AIA_SALES --- GROUP BY YYYYMM,AUDIT_CODE,inst_code --- -- ORDER BY YYYYMM --- ) AS NEW --- ON OLD.YM =NEW.YYYYMM AND old.AUDIT_COD = NEW.AUDIT_CODE AND old.inst_code = new.inst_code --- where --- ABS(OLD.value - NEW.value) > 0.0000000001 OR --- ABS(OLD.volume - NEW.volume) > 0.0000000001 OR --- ABS(OLD.value_ly - NEW.value_ly) > 0.0000000001 OR --- ABS(OLD.volume_ly - NEW.volume_ly) > 0.0000000001 OR --- ABS(OLD.counting_unit - NEW.counting_unit) > 0.0000000001 OR --- ABS(OLD.counting_unit_ly - NEW.counting_unit_ly) > 0.0000000001; - --- COMMAND ---------- - - --- SELECT --- old.ym, --- OLD.AUDIT_COD, --- OLD.value, --- NEW.value, --- OLD.value-NEW.value as dif_value, --- OLD.value_ly, --- NEW.value_ly, --- OLD.value_ly-NEW.value_ly as dif_value_ly, --- OLD.volume, --- NEW.volume, --- OLD.volume-NEW.volume as dif_volume, --- OLD.volume_ly, --- NEW.volume_ly, --- OLD.volume_ly-NEW.volume_ly as dif_volume_ly, --- OLD.counting_unit, --- NEW.counting_unit, --- OLD.counting_unit-NEW.counting_unit as dif_counting_unit, --- OLD.counting_unit_ly, --- NEW.counting_unit_ly, --- OLD.counting_unit_ly-NEW.counting_unit_ly as dif_counting_unit_ly --- FROM --- ( --- SELECT ym,AUDIT_COD,SUM(value) value,SUM(volume) volume,SUM(counting_unit) counting_unit,SUM(value_ly) value_ly,SUM(volume_ly) volume_ly,SUM(counting_unit_ly) counting_unit_ly --- FROM dm.dm_ext_aia_sales --- GROUP BY ym,AUDIT_COD --- -- ORDER BY ym --- ) AS OLD --- LEFT JOIN --- ( --- SELECT YYYYMM,AUDIT_CODE,SUM(SALES_VALUE_CAL) value,SUM(SALES_UNIT_CAL) volume,SUM(CONUTING_UNIT) counting_unit,SUM(SALES_VALUE_CAL_LY) value_ly,SUM(SALES_UNIT_CAL_LY) volume_ly,SUM(CONUTING_UNIT_LY) counting_unit_ly --- FROM DM.DM_TF_EXT_AIA_SALES --- GROUP BY YYYYMM,AUDIT_CODE --- -- ORDER BY YYYYMM --- ) AS NEW --- ON OLD.YM =NEW.YYYYMM AND old.AUDIT_COD = NEW.AUDIT_CODE --- where --- ABS(OLD.value - NEW.value) > 0.0000000001 OR --- ABS(OLD.volume - NEW.volume) > 0.0000000001 OR --- ABS(OLD.value_ly - NEW.value_ly) > 0.0000000001 OR --- ABS(OLD.volume_ly - NEW.volume_ly) > 0.0000000001 OR --- ABS(OLD.counting_unit - NEW.counting_unit) > 0.0000000001 OR --- ABS(OLD.counting_unit_ly - NEW.counting_unit_ly) > 0.0000000001; - --- COMMAND ---------- - - --- SELECT --- old.ym, --- OLD.value, --- NEW.value, --- OLD.value-NEW.value as dif_value, --- OLD.value_ly, --- NEW.value_ly, --- OLD.value_ly-NEW.value_ly as dif_value_ly, --- OLD.volume, --- NEW.volume, --- OLD.volume-NEW.volume as dif_volume, --- OLD.volume_ly, --- NEW.volume_ly, --- OLD.volume_ly-NEW.volume_ly as dif_volume_ly, --- OLD.counting_unit, --- NEW.counting_unit, --- OLD.counting_unit-NEW.counting_unit as dif_counting_unit, --- OLD.counting_unit_ly, --- NEW.counting_unit_ly, --- OLD.counting_unit_ly-NEW.counting_unit_ly as dif_counting_unit_ly --- FROM --- ( --- SELECT ym,SUM(value) value,SUM(volume) volume,SUM(counting_unit) counting_unit,SUM(value_ly) value_ly,SUM(volume_ly) volume_ly,SUM(counting_unit_ly) counting_unit_ly --- FROM dm.dm_ext_aia_sales --- GROUP BY ym --- ORDER BY ym --- ) AS OLD --- LEFT JOIN --- ( --- SELECT YYYYMM,SUM(SALES_VALUE_CAL) value,SUM(SALES_UNIT_CAL) volume,SUM(CONUTING_UNIT) counting_unit,SUM(SALES_VALUE_CAL_LY) value_ly,SUM(SALES_UNIT_CAL_LY) volume_ly,SUM(CONUTING_UNIT_LY) counting_unit_ly --- FROM DM.DM_TF_EXT_AIA_SALES --- GROUP BY YYYYMM --- ORDER BY YYYYMM --- ) AS NEW --- ON OLD.YM =NEW.YYYYMM --- where --- ABS(OLD.value - NEW.value) > 0.0000000001 OR --- ABS(OLD.volume - NEW.volume) > 0.0000000001 OR --- ABS(OLD.value_ly - NEW.value_ly) > 0.0000000001 OR --- ABS(OLD.volume_ly - NEW.volume_ly) > 0.0000000001 OR --- ABS(OLD.counting_unit - NEW.counting_unit) > 0.0000000001 OR --- ABS(OLD.counting_unit_ly - NEW.counting_unit_ly) > 0.0000000001; - --- COMMAND ---------- - --- -- 这个sql证明,两张表的inst_code,值也相同 --- SELECT --- * --- FROM --- ( --- SELECT inst_code,COUNT(*) as c1 FROM DM.DM_TF_EXT_AIA_SALES --- GROUP BY inst_code --- ) AS NEW --- FULL JOIN --- ( --- SELECT inst_code,COUNT(*) as c1 FROM DM.dm_ext_aia_sales --- GROUP BY inst_code --- ) AS OLD --- ON NEW.inst_code = old.inst_code --- WHERE new.c1 != old.c1 - --- COMMAND ---------- - --- -- 这个sql证明,两张表的inst_code相同 --- SELECT --- * --- FROM --- ( --- SELECT inst_code,COUNT(*) as c1 FROM DM.DM_TF_EXT_AIA_SALES --- GROUP BY inst_code --- ) AS NEW --- FULL JOIN --- ( --- SELECT inst_code,COUNT(*) as c1 FROM DM.DM_TF_EXT_AIA_SALES --- GROUP BY inst_code --- ) AS OLD --- ON NEW.inst_code = old.inst_code --- WHERE NEW.inst_code IS NULL OR old.inst_code IS NULL - --- COMMAND ---------- - --- -- 这个sql证明,两张表的inst_code,值也相同 --- SELECT --- * --- FROM --- ( --- SELECT inst_code,COUNT(*) as c1 FROM DM.DM_TF_EXT_AIA_SALES --- GROUP BY inst_code --- ) AS NEW --- FULL JOIN --- ( --- SELECT inst_code,COUNT(*) as c1 FROM DM.DM_TF_EXT_AIA_SALES --- GROUP BY inst_code --- ) AS OLD --- ON NEW.inst_code = old.inst_code --- WHERE new.c1 != old.c1 - --- COMMAND ---------- - --- SELECT COUNT(*) FROM DM.DM_TF_EXT_AIA_SALES - --- COMMAND ---------- - --- SELECT COUNT(*) FROM DM.dm_ext_aia_sales \ No newline at end of file diff --git a/EXTERNAL/AIA/02 dm_ext_aia_sales.sql:Zone.Identifier b/EXTERNAL/AIA/02 dm_ext_aia_sales.sql:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2xdl#JyUFr831@K2x= t2.max_year_ly -) -,hp_flag2 as ( -SELECT - cpa_hospital_code, - CONCAT_WS(' ∩ ', SORT_ARRAY(COLLECT_LIST(hp_his_flag))) AS FLAG -FROM - hp_flag -GROUP BY - cpa_hospital_code -) -,inst_mapping as ( - -- select - -- distinct right(concat('0000000', org_cd), 7) org_cd, - -- ins_cd - -- from - -- dwd.dwd_gnd_hospitalmapping -select distinct -case when length(cpa_hospital_code) < 7 then right(concat('0000000',cpa_hospital_code),7) else cpa_hospital_code end as cpa_hospital_code, -ins_cd_nl as inst_code -from dwd.dwd_gnd_hospital_not_provided -) - -,ALL_INS as ( -select distinct inst_code -from dm.dm_ext_aia_sales -) - -,flag as ( - select distinct - coalesce(t2.inst_code,t1.cpa_hospital_code) as inst_code, - t1.flag as aia_hp_flag, - 'Y' as FLAG, -'AIA(Monthly)' as DATA_SOURCE - from hp_flag2 t1 - left join inst_mapping t2 on t1.cpa_hospital_code = t2.cpa_hospital_code - where - length(t1.flag) > 6 -union all -select '' as inst_code,'' as aia_hp_flag,'' as FLAG,'IQVIA-CHPA(Monthly)' as DATA_SOURCE -union all -select '' as inst_code,'' as aia_hp_flag,'' as FLAG,'XH Data(Quarterly)' as DATA_SOURCE -union all -select '' as inst_code,'' as aia_hp_flag,'' as FLAG,'EC(Monthly)' as DATA_SOURCE -union all -select '' as inst_code,'' as aia_hp_flag,'' as FLAG,'Retail(Quarterly)' as DATA_SOURCE -union all -select '' as inst_code,'' as aia_hp_flag,'' as FLAG,'CHC(Quarterly)' as DATA_SOURCE -union all -select '' as inst_code,'' as aia_hp_flag,'' as FLAG,'THC(Quarterly)' as DATA_SOURCE -union all -select '' as inst_code,'' as aia_hp_flag,'' as FLAG,'IQVIA-COUNTY(Quarterly)' as DATA_SOURCE -) - -select t1.inst_code, -NVL(t2.aia_hp_flag,'') as aia_hp_flag, -NVL(t2.FLAG,'N') as FLAG, -'AIA(Monthly)' as DATA_SOURCE -from ALL_INS t1 -left join flag t2 -on t1.inst_code = t2.inst_code - diff --git a/EXTERNAL/AIA/03 dm_aia_flag.sql:Zone.Identifier b/EXTERNAL/AIA/03 dm_aia_flag.sql:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2x 0 -) -,sales_2 as ( -select - t1.inst_code, - t1.ym, - t2.max_ym, - t2.ym_12m, - t2.ym_12m_before, - t2.ym_24m, - t2.ym_24m_before -from sales_1 t1 -cross join ym_range t2 -) -,flag_12m as ( -select inst_code, -'滚动一年有数' as aia_provided_flag, -'AIA(Monthly)' as DATA_SOURCE -from sales_2 -where ym <= max_ym -and ym >= ym_12m_before -group by inst_code -having count(1) = (select ym_12m from ym_range) -) -,flag_24m as ( -select inst_code, -'滚动两年有数' as aia_provided_flag, -'AIA(Monthly)' as DATA_SOURCE -from sales_2 -where ym <= max_ym -and ym >= ym_24m_before -group by inst_code -having count(1) = (select ym_24m from ym_range) -) - -select inst_code, -aia_provided_flag, -DATA_SOURCE -from flag_12m -union all -select inst_code, -aia_provided_flag, -DATA_SOURCE -from flag_24m -union all -select '' as inst_code,'' as aia_provided_flag,'IQVIA-CHPA(Monthly)' as data_source -union all -select '' as inst_code,'' as aia_provided_flag,'XH Data(Quarterly)' as data_source -union all -select '' as inst_code,'' as aia_provided_flag,'EC(Monthly)' as data_source -union all -select '' as inst_code,'' as aia_provided_flag,'Retail(Quarterly)' as data_source -union all -select '' as inst_code,'' as aia_provided_flag,'CHC(Quarterly)' as data_source -union all -select '' as inst_code,'' as aia_provided_flag,'THC(Quarterly)' as data_source -union all -select '' as inst_code,'' as aia_provided_flag,'IQVIA-COUNTY(Quarterly)' as data_source diff --git a/EXTERNAL/AIA/04 dm_aia_provided_flag.sql:Zone.Identifier b/EXTERNAL/AIA/04 dm_aia_provided_flag.sql:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2x3 --chenwu 20250904 排除双考影响 -) ---汇报线表,获取到Channel,后续用于判断出sub_channel -,td_org as ( -select distinct -t1.mr_trty_code, -case when t1.bu_code in ('PC14','PC16','PC18','PC19') then 'BU' - when t1.bu_code = 'SC01' and t1.sub_bu_code = 'NA29' then sub_bu_name - when t1.bu_code = 'SC01' then 'BU' - when t1.bu_code <> 'SC01' and t2.bm_name = 'BCBH' then 'BU' - when t1.bu_code <> 'SC01' then t1.bu_name -end as channel -from dm.dm_td_org t1 -left join dws.dws_td_bu_active t2 -on t1.bu_name = t2.bu_name -where t1.yyyymm in ( - select - key_value - from - dm.dm_td_date_config - where - key_code = 'pfmc_cvh' - ) -) ---Family粒度和Brand粒度的映射表 -,product_wide as ( -select distinct -prd_family_cd, -prd_brand_cd -from cdw_dwd_dim_product_wide -) ---内部Brand粒度与外部pack_cod的映射表 -,imscode_azcode as ( -select distinct -brandcode, -case when length(ims_pack_cod) < 12 and ims_pack_cod REGEXP '^[0-9]' then right(concat('00000000000',ims_pack_cod),12) else ims_pack_cod end as ims_pack_cod -from dwd.dwd_td_imscode_azcode -) ---综合上面的几个表,得到KA_flag、target_ins_level、channel、目标机构Flag -,target_hp_all as ( -select - distinct - t1.inst_code, - t1.ka_flag, - t1.target_ins_level, - t2.channel, - t5.MARKET -from - td_territory_inst t1 - inner join td_org t2 on t1.trty_code = t2.mr_trty_code - left join product_wide t3 on t3.prd_family_cd = t1.family_code - left join imscode_azcode t4 on t3.prd_brand_cd = t4.brandcode - left join pack_market t5 on t4.ims_pack_cod = t5.pack_cod -where t5.MARKET is not null -) ---target_hp_all里一个机构一个市场对应了多个属性,这里按优先级依次取唯一值 ---ka_flag -,ka_flag1 as ( -select distinct -inst_code, -MARKET, -ka_flag -from target_hp_all -) -,ka_flag2 as ( -select -inst_code, -MARKET, -ka_flag, -row_number() over(partition by inst_code,market - order by case when ka_flag = 'KA' then 1 - ELSE 2 end asc) as RN -from ka_flag1 -) -,ka_flag_final as ( -select -inst_code, -MARKET, -ka_flag -from ka_flag2 -where RN = 1 -) ---target_ins_level不取唯一值 ---加个hardcoding,ONC Market和ALL Market设置成NA -,target_ins_level1 as ( -select distinct -inst_code, -MARKET, -case when MARKET in ('ALL Market','ONC Market') then 'NA' - else target_ins_level -end as target_ins_level -from target_hp_all -) -,target_ins_level_final as ( -select distinct -inst_code, -MARKET, -target_ins_level -from target_ins_level1 -) ---target_hp_all里一个机构一个市场对应了多个属性,这里按优先级依次取唯一值 ---Channel -,Channel1 as ( -select distinct -inst_code, -MARKET, -channel -from target_hp_all -) -,channel2 as ( -select -inst_code, -MARKET, -channel, -row_number() over(partition by inst_code,market - order by case when channel = 'BU' then 1 - when channel = 'BBU_County' then 2 - when channel = 'CHC' then 3 - when channel = 'Eagle' then 4 - ELSE 5 end asc) as RN -from channel1 -) -,channel_final as ( -select -inst_code, -MARKET, -channel -from channel2 -where RN = 1 -) ---确定唯一值后重新放一起 -,target_hp1 as ( -select distinct -inst_code, -MARKET -from target_hp_all -) -,target_hp as ( -select t1.inst_code, -t1.market, -t2.ka_flag, -t3.target_ins_level, -t4.channel -from target_hp1 t1 -left join ka_flag_final t2 -on t1.inst_code = t2.inst_code -and t1.market = t2.market -left join target_ins_level_final t3 -on t1.inst_code = t3.inst_code -and t1.market = t3.market -left join channel_final t4 -on t1.inst_code = t4.inst_code -and t1.market = t4.market -) - ---获取Dragon_type ---判断Dragon_type是否为County -,county as ( -select distinct inst_code,county_tier_desc -from dm.dm_td_institution -) ---判断另外2种 --- 20250825修改 -,dragon_type as ( -select src_hcc_code as inst_code, -src_prod_code as family_code, -max(is_core) is_core -from cdw_dwd_dwd_hospital_classification -where active_status = 1 -and src_sales_cycle = (select key_value from dm.dm_td_date_config where key_code = 'pfmc_cvh') -group by src_hcc_code, -src_prod_code -) ---将Family_code转为pack_cod -,dragon_type_market1 as ( -select distinct -t1.inst_code, -t1.is_core, -t4.market -from dragon_type t1 -left join cdw_dwd_dim_product_wide t2 -on t1.family_code = t2.prd_family_cd -left join dwd.dwd_td_imscode_azcode t3 -on t2.prd_brand_cd = t3.brandcode -left join pack_market t4 -on t3.ims_pack_cod = t4.pack_cod -where t4.market is not null -) ---按优先级取唯一值 -,dragon_type_market2 as ( -select distinct -inst_code, -is_core, -market, -row_number() over(partition by inst_code,market - order by case when is_core = 'CORE' then 1 - when is_core = 'EMERGING' then 2 - else 3 end asc) as RN -from dragon_type_market1 -) -,dragon_type_market as ( -select distinct -inst_code, -is_core, -market -from dragon_type_market2 -where RN = 1 -) ---综合前面几个表,得出dragon_flag -,dragon_flag1 as ( -select distinct -t0.inst_code, -t0.market, -case when t1.county_tier_desc in ('County','County level city') then 'County' - when t2.is_core is null or length(t2.is_core) = 0 then 'Others' - else t2.is_core -end as dragon_flag -from target_hp t0 -left join county t1 -on t0.inst_code = t1.inst_code -left join dragon_type_market t2 -on t0.inst_code = t2.inst_code -and t0.MARKET = t2.MARKET -) ---按优先级取唯一值 -,dragon_flag2 as ( -select inst_code, -market, -dragon_flag, -row_number() over(partition by inst_code,market - order by case when dragon_flag = 'CORE' then 1 - when dragon_flag = 'EMERGING' then 2 - when dragon_flag = 'County' then 3 - else 4 end asc) as RN -from dragon_flag1 -) -,dragon_flag as ( -select inst_code, -market, -dragon_flag -from dragon_flag2 -where RN = 1 -) - ---下面是为了把其他渠道并进来 -,other_data_source as ( -select explode(array('IQVIA-CHPA(Monthly)','XH Data(Quarterly)','EC(Monthly)','Retail(Quarterly)','CHC(Quarterly)','THC(Quarterly)','IQVIA-COUNTY(Quarterly)')) -) -,col as ( -select '' as inst_code, -'' as MARKET, -'' as is_target_hp, -'' as sub_channel, -'' as dragon_flag, -'' as ka_flag, -'' as target_ins_level -) - -,temp_1 as ( -select distinct -case when t1.inst_code is null or t1.inst_code = '' then 'ROC' - else t1.inst_code -end as inst_code, -t1.MARKET, -case when t2.inst_code is null then 'N' else 'Y' end as is_target_hp, -case when t2.channel = 'BU' and geo.county_tier_desc in ('County','County level city') then 'BU_County' - when t2.channel = 'BU' and geo.county_tier_desc in ('City-3b','City-4a','City-4b') then 'BU_Emerging' - when t2.channel = 'BU' and t3.dragon_flag = 'CORE' then 'BU_Core' - when t2.channel = 'BU' then 'BU_Emerging' - when t2.channel in ('Eagle','CHC','BBU_County') then t2.channel - when t2.inst_code is null then 'NON_TARGET' - else 'NA' -end as sub_channel, -case when t3.dragon_flag is null then 'NON_TARGET' - else t3.dragon_flag -end as dragon_flag, -case when t2.ka_flag is null then 'NON_TARGET' - else t2.ka_flag -end as ka_flag, -case when t2.target_ins_level is null then 'NON_TARGET' - else t2.target_ins_level -end as target_ins_level, -'AIA(Monthly)' as DATA_SOURCE -from sales t1 -left join target_hp t2 -on t1.inst_code = t2.inst_code -and t1.MARKET = t2.MARKET -left join dragon_flag t3 -on t1.inst_code = t3.inst_code -and t1.MARKET = t3.MARKET -left join dm.dm_td_institution inst -on t1.inst_code =inst.inst_code -left join dm.dm_td_geography geo -on inst.county_code = geo.geo_key -union all -select * -from col -cross join other_data_source -) -,sub_channel_rank as ( -select distinct SUB_CHANNELSTD,SUB_CHANNEL_ORDER -from dm.dm_td_sd_channel -) - - -select t1.*,NVL(t2.SUB_CHANNEL_ORDER,100) as SUB_CHANNEL_ORDER -from temp_1 t1 -left join sub_channel_rank t2 -on t1.sub_channel = t2.SUB_CHANNELSTD diff --git a/EXTERNAL/AIA/11 dm_aia_targethp_flag.sql:Zone.Identifier b/EXTERNAL/AIA/11 dm_aia_targethp_flag.sql:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2x= t2.max_year_ly -) -,hp_flag2 as ( -SELECT - cpa_hospital_code, - CONCAT_WS(' ∩ ', SORT_ARRAY(COLLECT_LIST(hp_his_flag))) AS FLAG -FROM - hp_flag -GROUP BY - cpa_hospital_code -) -,inst_mapping as ( - -- select - -- distinct right(concat('0000000', org_cd), 7) org_cd, - -- ins_cd - -- from - -- dwd.dwd_gnd_hospitalmapping -select distinct -case when length(cpa_hospital_code) < 7 then right(concat('0000000',cpa_hospital_code),7) else cpa_hospital_code end as cpa_hospital_code, -ins_cd_nl as inst_code -from dwd.dwd_gnd_hospital_not_provided -) - -,ALL_INS as ( -select distinct inst_code -from dm.dm_ext_aia_sales -) - -,flag as ( - select distinct - coalesce(t2.inst_code,t1.cpa_hospital_code) as inst_code, - t1.flag as aia_hp_flag, - 'Y' as FLAG, -'AIA(Monthly)' as DATA_SOURCE - from hp_flag2 t1 - left join inst_mapping t2 on t1.cpa_hospital_code = t2.cpa_hospital_code - where - length(t1.flag) > 6 -union all -select '' as inst_code,'' as aia_hp_flag,'' as FLAG,'IQVIA-CHPA(Monthly)' as DATA_SOURCE -union all -select '' as inst_code,'' as aia_hp_flag,'' as FLAG,'XH Data(Quarterly)' as DATA_SOURCE -union all -select '' as inst_code,'' as aia_hp_flag,'' as FLAG,'EC(Monthly)' as DATA_SOURCE -union all -select '' as inst_code,'' as aia_hp_flag,'' as FLAG,'Retail(Quarterly)' as DATA_SOURCE -union all -select '' as inst_code,'' as aia_hp_flag,'' as FLAG,'CHC(Quarterly)' as DATA_SOURCE -union all -select '' as inst_code,'' as aia_hp_flag,'' as FLAG,'THC(Quarterly)' as DATA_SOURCE -union all -select '' as inst_code,'' as aia_hp_flag,'' as FLAG,'IQVIA-COUNTY(Quarterly)' as DATA_SOURCE -) - -select t1.inst_code, -NVL(t2.aia_hp_flag,'') as aia_hp_flag, -NVL(t2.FLAG,'N') as FLAG, -'AIA(Monthly)' as DATA_SOURCE -from ALL_INS t1 -left join flag t2 -on t1.inst_code = t2.inst_code - - --- COMMAND ---------- - ------------------------------------------------------------------------------------ ---修改时间:20241021 ---修改人:FanXujia ---修改内容: ---只取最新年-1 ~ 最新年范围内的,称为“2年共有”。增加 ------------------------------------------------------------------------------------ ---共有机构 -insert overwrite table dm.dm_aia_hp_flag -with max_year as ( -select -max(cast(year as int)) as max_year, -max(cast(year as int) - 1) as max_year_ly -from dwd.dwd_gnd_hospital_not_provided -) -,hp_flag as ( - select - distinct concat(t1.year, '-Y') as hp_his_flag, - case when length(t1.cpa_hospital_code) < 7 then right(concat('0000000',t1.cpa_hospital_code),7) else t1.cpa_hospital_code end as cpa_hospital_code - from - dwd.dwd_gnd_hospital_not_provided t1 - cross join max_year t2 - where cast(t1.year as int) >= t2.max_year_ly -) -,hp_flag2 as ( -SELECT - cpa_hospital_code, - CONCAT_WS(' ∩ ', SORT_ARRAY(COLLECT_LIST(hp_his_flag))) AS FLAG -FROM - hp_flag -GROUP BY - cpa_hospital_code -) -,inst_mapping as ( - -- select - -- distinct right(concat('0000000', org_cd), 7) org_cd, - -- ins_cd - -- from - -- dwd.dwd_gnd_hospitalmapping -select distinct -case when length(cpa_hospital_code) < 7 then right(concat('0000000',cpa_hospital_code),7) else cpa_hospital_code end as cpa_hospital_code, -ins_cd_nl as inst_code -from dwd.dwd_gnd_hospital_not_provided -) - -,ALL_INS as ( -select distinct inst_code -from dm.dm_ext_aia_sales -) - -,flag as ( - select distinct - coalesce(t2.inst_code,t1.cpa_hospital_code) as inst_code, - t1.flag as aia_hp_flag, - 'Y' as FLAG, -'AIA(Monthly)' as DATA_SOURCE - from hp_flag2 t1 - left join inst_mapping t2 on t1.cpa_hospital_code = t2.cpa_hospital_code - where - length(t1.flag) > 6 -union all -select '' as inst_code,'' as aia_hp_flag,'' as FLAG,'IQVIA-CHPA(Monthly)' as DATA_SOURCE -union all -select '' as inst_code,'' as aia_hp_flag,'' as FLAG,'XH Data(Quarterly)' as DATA_SOURCE -union all -select '' as inst_code,'' as aia_hp_flag,'' as FLAG,'EC(Monthly)' as DATA_SOURCE -union all -select '' as inst_code,'' as aia_hp_flag,'' as FLAG,'Retail(Quarterly)' as DATA_SOURCE -union all -select '' as inst_code,'' as aia_hp_flag,'' as FLAG,'CHC(Quarterly)' as DATA_SOURCE -union all -select '' as inst_code,'' as aia_hp_flag,'' as FLAG,'THC(Quarterly)' as DATA_SOURCE -union all -select '' as inst_code,'' as aia_hp_flag,'' as FLAG,'IQVIA-COUNTY(Quarterly)' as DATA_SOURCE -) - -select t1.inst_code, -NVL(t2.aia_hp_flag,'') as aia_hp_flag, -NVL(t2.FLAG,'N') as FLAG, -'AIA(Monthly)' as DATA_SOURCE -from ALL_INS t1 -left join flag t2 -on t1.inst_code = t2.inst_code - - --- COMMAND ---------- - ---连续取数机构 ----------------------------------------------------------------------------------------------------------------------- ---修改时间:20241029 ---修改人:FanXujia ---修改内容: ---根据事实表最新月,往前推12个月(含最新月),按机构 + 年月粒度汇总,如果每个月销量都不等于0,这家机构称为:滚动一年有数 ---根据事实表最新月,往前推24个月(含最新月),按机构 + 年月粒度汇总,如果每个月销量都不等于0,这家机构称为:滚动两年有数 ---2022年没有销量为正常情况,判断时仅考虑2023年01月起销量是否等于0 ----------------------------------------------------------------------------------------------------------------------- -insert overwrite table dm.dm_aia_provided_flag -with max_ym as ( -select max(ym) as max_ym -from dm.dm_ext_aia_sales -) -,ym_range as ( -select max_ym, -case when max_ym <= '202412' then cast(right(max_ym,2) as int) - else cast(12 as int) -end ym_12m, -case when max_ym <= '202312' then '202401' - when right(max_ym,2) = '12' then concat(left(max_ym,4),'01') - else concat(cast(left(max_ym, 4) - 1 as int),right(concat('0', cast(right(max_ym, 2) + 1 as int)), 2)) -end as ym_12m_before, -case when max_ym <= '202312' then cast(right(max_ym,2) as int) - when max_ym <= '202512' then cast(right(max_ym,2) as int) + 12 - else cast(24 as int) -end as ym_24m, -case when max_ym <= '202512' then '202401' - when right(max_ym,2) = '12' then concat(cast(left(max_ym,4) - 1 as int),'01') - else concat(cast(left(max_ym, 4) -2 as int),right(concat('0', cast(right(max_ym, 2) + 1 as int)), 2)) -end as ym_24m_before -from max_ym -) -,sales_1 as ( -select - inst_code, - ym -from - dm.dm_ext_aia_sales -group by - ym, - inst_code -having - sum(value) <> 0 -) -,sales_2 as ( -select - t1.inst_code, - t1.ym, - t2.max_ym, - t2.ym_12m, - t2.ym_12m_before, - t2.ym_24m, - t2.ym_24m_before -from sales_1 t1 -cross join ym_range t2 -) -,flag_12m as ( -select inst_code, -'滚动一年有数' as aia_provided_flag, -'AIA(Monthly)' as DATA_SOURCE -from sales_2 -where ym <= max_ym -and ym >= ym_12m_before -group by inst_code -having count(1) = (select ym_12m from ym_range) -) -,flag_24m as ( -select inst_code, -'滚动两年有数' as aia_provided_flag, -'AIA(Monthly)' as DATA_SOURCE -from sales_2 -where ym <= max_ym -and ym >= ym_24m_before -group by inst_code -having count(1) = (select ym_24m from ym_range) -) - -select inst_code, -aia_provided_flag, -DATA_SOURCE -from flag_12m -union all -select inst_code, -aia_provided_flag, -DATA_SOURCE -from flag_24m -union all -select '' as inst_code,'' as aia_provided_flag,'IQVIA-CHPA(Monthly)' as data_source -union all -select '' as inst_code,'' as aia_provided_flag,'XH Data(Quarterly)' as data_source -union all -select '' as inst_code,'' as aia_provided_flag,'EC(Monthly)' as data_source -union all -select '' as inst_code,'' as aia_provided_flag,'Retail(Quarterly)' as data_source -union all -select '' as inst_code,'' as aia_provided_flag,'CHC(Quarterly)' as data_source -union all -select '' as inst_code,'' as aia_provided_flag,'THC(Quarterly)' as data_source -union all -select '' as inst_code,'' as aia_provided_flag,'IQVIA-COUNTY(Quarterly)' as data_source - - --- COMMAND ---------- - ---------------------------------------------------------------------------- ---修改时间:20241108 ---修改人:Fanxujia ---修改内容: ---for AIA Dashboard ---增加sub_channel,dragon_flag,ka_flag,target_ins_level字段 ---------------------------------------------------------------------------- ---------------------------------------------------------------------------- ---修改时间:20241209 ---修改人:Fanxujia ---修改内容: ---增加sub channel的排序 ---------------------------------------------------------------------------- ---目标医院 -insert overwrite table dm.dm_aia_targethp_flag --获取全部的机构 + 市场 -with sales as ( - select distinct t1.inst_code,t2.MARKET - from dm.dm_ext_aia_sales t1 - left join dm.dm_aia_pack_property t2 - on t1.pack_cod = t2.PACK_COD -) ---获取产品与市场的映射关系 -,pack_market as ( -select distinct -PACK_COD, -MARKET -from dm.dm_aia_pack_property -) ---辖区表,获取到KA_Flag、target_ins_level以及目标机构Flag(在辖区表里存在的就是目标机构) -,td_territory_inst as ( -select distinct -inst_code, -trty_code, -family_code, -ka_flag, -TARGET_LEVEL as target_ins_level -from dm.dm_td_sd_territory_indication --eagle的非重点医院同样加为目标机构 -where yyyymm in ( - select - key_value - from - dm.dm_td_date_config - where - key_code = 'pfmc_cvh' - ) -and bu not in ('CUBE','KA') -and key_hp<>3 --chenwu 20250904 排除双考影响 -) ---汇报线表,获取到Channel,后续用于判断出sub_channel -,td_org as ( -select distinct -t1.mr_trty_code, -case when t1.bu_code in ('PC14','PC16','PC18','PC19') then 'BU' - when t1.bu_code = 'SC01' and t1.sub_bu_code = 'NA29' then sub_bu_name - when t1.bu_code = 'SC01' then 'BU' - when t1.bu_code <> 'SC01' and t2.bm_name = 'BCBH' then 'BU' - when t1.bu_code <> 'SC01' then t1.bu_name -end as channel -from dm.dm_td_org t1 -left join dws.dws_td_bu_active t2 -on t1.bu_name = t2.bu_name -where t1.yyyymm in ( - select - key_value - from - dm.dm_td_date_config - where - key_code = 'pfmc_cvh' - ) -) ---Family粒度和Brand粒度的映射表 -,product_wide as ( -select distinct -prd_family_cd, -prd_brand_cd -from cdw_dwd_dim_product_wide -) ---内部Brand粒度与外部pack_cod的映射表 -,imscode_azcode as ( -select distinct -brandcode, -case when length(ims_pack_cod) < 12 and ims_pack_cod REGEXP '^[0-9]' then right(concat('00000000000',ims_pack_cod),12) else ims_pack_cod end as ims_pack_cod -from dwd.dwd_td_imscode_azcode -) ---综合上面的几个表,得到KA_flag、target_ins_level、channel、目标机构Flag -,target_hp_all as ( -select - distinct - t1.inst_code, - t1.ka_flag, - t1.target_ins_level, - t2.channel, - t5.MARKET -from - td_territory_inst t1 - inner join td_org t2 on t1.trty_code = t2.mr_trty_code - left join product_wide t3 on t3.prd_family_cd = t1.family_code - left join imscode_azcode t4 on t3.prd_brand_cd = t4.brandcode - left join pack_market t5 on t4.ims_pack_cod = t5.pack_cod -where t5.MARKET is not null -) ---target_hp_all里一个机构一个市场对应了多个属性,这里按优先级依次取唯一值 ---ka_flag -,ka_flag1 as ( -select distinct -inst_code, -MARKET, -ka_flag -from target_hp_all -) -,ka_flag2 as ( -select -inst_code, -MARKET, -ka_flag, -row_number() over(partition by inst_code,market - order by case when ka_flag = 'KA' then 1 - ELSE 2 end asc) as RN -from ka_flag1 -) -,ka_flag_final as ( -select -inst_code, -MARKET, -ka_flag -from ka_flag2 -where RN = 1 -) ---target_ins_level不取唯一值 ---加个hardcoding,ONC Market和ALL Market设置成NA -,target_ins_level1 as ( -select distinct -inst_code, -MARKET, -case when MARKET in ('AIA ALL Market','ONC Market') then 'NA' - else target_ins_level -end as target_ins_level -from target_hp_all -) -,target_ins_level_final as ( -select distinct -inst_code, -MARKET, -target_ins_level -from target_ins_level1 -) ---target_hp_all里一个机构一个市场对应了多个属性,这里按优先级依次取唯一值 ---Channel -,Channel1 as ( -select distinct -inst_code, -MARKET, -channel -from target_hp_all -) -,channel2 as ( -select -inst_code, -MARKET, -channel, -row_number() over(partition by inst_code,market - order by case when channel = 'BU' then 1 - when channel = 'BBU_County' then 2 - when channel = 'CHC' then 3 - when channel = 'Eagle' then 4 - ELSE 5 end asc) as RN -from channel1 -) -,channel_final as ( -select -inst_code, -MARKET, -channel -from channel2 -where RN = 1 -) ---确定唯一值后重新放一起 -,target_hp1 as ( -select distinct -inst_code, -MARKET -from target_hp_all -) -,target_hp as ( -select t1.inst_code, -t1.market, -t2.ka_flag, -t3.target_ins_level, -t4.channel -from target_hp1 t1 -left join ka_flag_final t2 -on t1.inst_code = t2.inst_code -and t1.market = t2.market -left join target_ins_level_final t3 -on t1.inst_code = t3.inst_code -and t1.market = t3.market -left join channel_final t4 -on t1.inst_code = t4.inst_code -and t1.market = t4.market -) - ---获取Dragon_type ---判断Dragon_type是否为County -,county as ( -select distinct inst_code,county_tier_desc -from dm.dm_td_institution -) ---判断另外2种 --- 20250825修改 -,dragon_type as ( -select src_hcc_code as inst_code, -src_prod_code as family_code, -max(is_core) is_core -from cdw_dwd_dwd_hospital_classification -where active_status = 1 -and src_sales_cycle = (select key_value from dm.dm_td_date_config where key_code = 'pfmc_cvh') -group by src_hcc_code, -src_prod_code -) ---将Family_code转为pack_cod -,dragon_type_market1 as ( -select distinct -t1.inst_code, -t1.is_core, -t4.market -from dragon_type t1 -left join cdw_dwd_dim_product_wide t2 -on t1.family_code = t2.prd_family_cd -left join dwd.dwd_td_imscode_azcode t3 -on t2.prd_brand_cd = t3.brandcode -left join pack_market t4 -on t3.ims_pack_cod = t4.pack_cod -where t4.market is not null -) ---按优先级取唯一值 -,dragon_type_market2 as ( -select distinct -inst_code, -is_core, -market, -row_number() over(partition by inst_code,market - order by case when is_core = 'CORE' then 1 - when is_core = 'EMERGING' then 2 - else 3 end asc) as RN -from dragon_type_market1 -) -,dragon_type_market as ( -select distinct -inst_code, -is_core, -market -from dragon_type_market2 -where RN = 1 -) ---综合前面几个表,得出dragon_flag -,dragon_flag1 as ( -select distinct -t0.inst_code, -t0.market, -case when t1.county_tier_desc in ('County','County level city') then 'County' - when t2.is_core is null or length(t2.is_core) = 0 then 'Others' - else t2.is_core -end as dragon_flag -from target_hp t0 -left join county t1 -on t0.inst_code = t1.inst_code -left join dragon_type_market t2 -on t0.inst_code = t2.inst_code -and t0.MARKET = t2.MARKET -) ---按优先级取唯一值 -,dragon_flag2 as ( -select inst_code, -market, -dragon_flag, -row_number() over(partition by inst_code,market - order by case when dragon_flag = 'CORE' then 1 - when dragon_flag = 'EMERGING' then 2 - when dragon_flag = 'County' then 3 - else 4 end asc) as RN -from dragon_flag1 -) -,dragon_flag as ( -select inst_code, -market, -dragon_flag -from dragon_flag2 -where RN = 1 -) - ---下面是为了把其他渠道并进来 -,other_data_source as ( -select explode(array('IQVIA-CHPA(Monthly)','XH Data(Quarterly)','EC(Monthly)','Retail(Quarterly)','CHC(Quarterly)','THC(Quarterly)','IQVIA-COUNTY(Quarterly)')) -) -,col as ( -select '' as inst_code, -'' as MARKET, -'' as is_target_hp, -'' as sub_channel, -'' as dragon_flag, -'' as ka_flag, -'' as target_ins_level -) - -,temp_1 as ( -select distinct -case when t1.inst_code is null or t1.inst_code = '' then 'ROC' - else t1.inst_code -end as inst_code, -t1.MARKET, -case when t2.inst_code is null then 'N' else 'Y' end as is_target_hp, -case when t2.channel = 'BU' and geo.county_tier_desc in ('County','County level city') then 'BU_County' - when t2.channel = 'BU' and geo.county_tier_desc in ('City-3b','City-4a','City-4b') then 'BU_Emerging' - when t2.channel = 'BU' and t3.dragon_flag = 'CORE' then 'BU_Core' - when t2.channel = 'BU' then 'BU_Emerging' - when t2.channel in ('Eagle','CHC','BBU_County') then t2.channel - when t2.inst_code is null then 'NON_TARGET' - else 'NA' -end as sub_channel, -case when t3.dragon_flag is null then 'NON_TARGET' - else t3.dragon_flag -end as dragon_flag, -case when t2.ka_flag is null then 'NON_TARGET' - else t2.ka_flag -end as ka_flag, -case when t2.target_ins_level is null then 'NON_TARGET' - else t2.target_ins_level -end as target_ins_level, -'AIA(Monthly)' as DATA_SOURCE -from sales t1 -left join target_hp t2 -on t1.inst_code = t2.inst_code -and t1.MARKET = t2.MARKET -left join dragon_flag t3 -on t1.inst_code = t3.inst_code -and t1.MARKET = t3.MARKET -left join dm.dm_td_institution inst -on t1.inst_code =inst.inst_code -left join dm.dm_td_geography geo -on inst.county_code = geo.geo_key -union all -select * -from col -cross join other_data_source -) -,sub_channel_rank as ( -select distinct SUB_CHANNELSTD,SUB_CHANNEL_ORDER -from dm.dm_td_sd_channel -) - - -select t1.*,NVL(t2.SUB_CHANNEL_ORDER,100) as SUB_CHANNEL_ORDER -from temp_1 t1 -left join sub_channel_rank t2 -on t1.sub_channel = t2.SUB_CHANNELSTD diff --git a/EXTERNAL/AIA/z_03 dm_aia_flag_备份用.sql:Zone.Identifier b/EXTERNAL/AIA/z_03 dm_aia_flag_备份用.sql:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2xdl#JyUFr831@K2x= '2021' - --- COMMAND ---------- - -CREATE OR REPLACE TEMPORARY VIEW FILTER_YM -AS -SELECT - MAX(YQ) AS MAX_YYYYMM, - CONCAT(CAST(FLOOR(MAX(YQ)/100-1) AS STRING),'01') AS MIN_YYYYMM -FROM - RAW_DATA - --- COMMAND ---------- - -CREATE OR REPLACE TEMPORARY VIEW CORP_DATA -AS -SELECT - PACK_COD, - CORP_COD, - CORP_DES -FROM - DM.DM_IMS_TD_PACK_PROPERTY -GROUP BY - PACK_COD, - CORP_COD, - CORP_DES - --- COMMAND ---------- - -CREATE OR REPLACE TEMPORARY VIEW PACK_DATA -AS -SELECT - DISTINCT - IQVIA_PACK_CODE, - IQVIA_PROD_CODE, - PACK_COD, - 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, - 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, - BUILTINARCHIVEDATE, - SOURCE_FILE_PATH, - SOURCE_FILE_NAME, - ETL_INSERT_DT, - COUNTINGUNIT -FROM - DWD.DWD_GND_EXT_CHC_PACK_PROPERTY - --- COMMAND ---------- - ---CHC本身唯独表 存在CORP_COD以及 CORP_DES 与手工数据不一致的问题 -CREATE OR REPLACE TEMPORARY VIEW PACK_WIHT_CORP_DATA -AS -SELECT - T1.PACK_COD, - T1.IQVIA_PACK_CODE, - T1.COUNTINGUNIT, - COALESCE(T2.CORP_COD, T1.CORP_COD) AS CORP_COD, - COALESCE(T2.CORP_DES, T1.CORP_DES) AS CORP_DES -FROM - PACK_DATA T1 -LEFT JOIN - CORP_DATA T2 -ON - T1.IQVIA_PACK_CODE = T2.PACK_COD - --- COMMAND ---------- - ---GEO相关信息 在CHPA中没有 苏州、无锡、福州等数据,根据业务反馈,按照 CITY_C当作AUDIT_COD -CREATE OR REPLACE TEMPORARY VIEW DIM_EXCHC_GEO -AS -SELECT - T1.CITY_E, - CONCAT (T1.CITY_C, '市') AS CITY_C, - UPPER(NVL (T2.AUDIT_COD, T1.CITY_E)) AS AUDIT_COD -FROM - DWD.DWD_GND_EXT_CHC_GEO T1 -LEFT JOIN - DM.DM_IMS_TD_GEO T2 -ON - T1.CITY_E = T2.CITY - --- COMMAND ---------- - -CREATE OR REPLACE TEMPORARY VIEW RAW_DATA_WIHT_PACK_CORP_GEO_DATA -AS -SELECT - T1.YQ, - T1.CITY_C, - T3.IQVIA_PACK_CODE AS PACK_COD, - T3.CORP_COD AS CORP_COD, - C.AUDIT_COD AS AUDIT_COD, - T1.PROD_COD, - T1.VALUE, - T1.TOTALUNIT, - T1.TOTALUNIT * NVL (T3.COUNTINGUNIT, 1) AS COUNTINGUNIT -FROM - RAW_DATA T1 -LEFT JOIN - PACK_WIHT_CORP_DATA T3 -ON - T1.PACK_COD = T3.PACK_COD -LEFT JOIN - DIM_EXCHC_GEO C -ON - T1.CITY_C = C.CITY_C - --- COMMAND ---------- - -CREATE OR REPLACE TEMPORARY VIEW RAW_DATA_WIHT_LY -AS -SELECT - A.YQ, - A.AUDIT_COD, - A.PACK_COD, - A.CORP_COD, - SUM(A.VALUE) VALUE, - SUM(A.TOTALUNIT) TOTALUNIT, - SUM(A.COUNTINGUNIT) COUNTINGUNIT, - SUM(VALUE_LY) VALUE_LY, - SUM(TOTALUNIT_LY) TOTALUNIT_LY, - SUM(COUNTINGUNIT_LY) COUNTINGUNIT_LY -FROM - ( - SELECT - T1.YQ, - T1.AUDIT_COD, - T1.PACK_COD, - T1.CORP_COD, - T1.VALUE, - T1.TOTALUNIT, - T1.COUNTINGUNIT, - 0 VALUE_LY, - 0 TOTALUNIT_LY, - 0 COUNTINGUNIT_LY - FROM - RAW_DATA_WIHT_PACK_CORP_GEO_DATA T1 - UNION ALL - SELECT - CAST(T1.YQ + 100 AS INT), - T1.AUDIT_COD, - T1.PACK_COD, - T1.CORP_COD, - 0 VALUE, - 0 TOTALUNIT, - 0 COUNTINGUNIT, - T1.VALUE VALUE_LY, - T1.TOTALUNIT TOTALUNIT_LY, - T1.COUNTINGUNIT COUNTINGUNIT_LY - FROM - RAW_DATA_WIHT_PACK_CORP_GEO_DATA AS T1 - CROSS JOIN - FILTER_YM AS T2 - WHERE - T1.YQ + 100 <= T2.MAX_YYYYMM - ) A -GROUP BY - A.YQ, - A.AUDIT_COD, - A.PACK_COD, - A.CORP_COD - --- COMMAND ---------- - -CREATE OR REPLACE TEMPORARY VIEW RAW_DATA_FINAL -AS -SELECT - T1.YQ AS YYYYMM, - T1.AUDIT_COD, - T1.PACK_COD, - T1.CORP_COD, - SUM(TOTALUNIT) AS SALES_UNIT_CAL, -- TOTALUNIT, - SUM(TOTALUNIT_LY) AS SALES_UNIT_CAL_LY, --TOTALUNIT_LY, - SUM(VALUE) AS SALES_VALUE_CAL, --VALUE, - SUM(VALUE_LY) AS SALES_VALUE_CAL_LY, - SUM(COUNTINGUNIT) AS CONUTING_UNIT, --COUNTINGUNIT, - SUM(COUNTINGUNIT_LY) AS CONUTING_UNIT_LY, - 'CHC(Quarterly)' AS DATA_SOURCE -FROM - RAW_DATA_WIHT_LY T1 -GROUP BY - T1.YQ, - T1.AUDIT_COD, - T1.PACK_COD, - T1.CORP_COD - --- COMMAND ---------- - -CREATE OR REPLACE TEMPORARY VIEW DM_TF_EXT_CHC_SALES AS -SELECT - A.YYYYMM, - A.PACK_COD AS PACK_CODE, - A.AUDIT_COD AS AUDIT_CODE, - 'CHC(Quarterly)' DATA_SOURCE, - ------------------------------------- - SALES_UNIT_CAL, - SALES_UNIT_CAL_LY, - SALES_VALUE_CAL, - SALES_VALUE_CAL_LY, - CONUTING_UNIT, - CONUTING_UNIT_LY, - null as prescription, - null as prescription_ly, - ------------------------------------- - --Retail藏数逻辑标签------------------ - 1 PACK_FLAG, - 1 PROD_FLAG, - 0 DTP_FLAG, - null as cmps_flag, - ------------------------------------- - --EC数据标签-------------------------- - '' PLATFORM_TYPE, - '' STORE_NAME, - '' STORE_TYPE, - ------------------------------------- - --COUNTY数据标签---------------------- - '' REGION_TYPE, - ------------------------------------- - --AIA数据标签------------------------- - null inst_code, --可以移除,报告没有使用 - ------------------------------------- - --XIE HE 数据标签--------------------- - '' as dept_name, - '' as new_code, - '' as area, - '' as h_level, - '' as reimburse, - '' as reimburse_type, - '' as prescription_source, - ------------------------------------- - '' as CORP_CODE --可以移除,报告没有使用E -------------------------------------- -FROM - RAW_DATA_FINAL A -WHERE - YYYYMM - >= ( - SELECT - CAST((LEFT(MAX(YYYYMM), 4) - 3) * 100 + 1 AS INT) - FROM - RAW_DATA_FINAL - ) - --- COMMAND ---------- - -INSERT OVERWRITE TABLE DM.DM_TF_EXT_CHC_SALES ( - YYYYMM, - PACK_CODE, - AUDIT_CODE, - DATA_SOURCE, - SALES_UNIT_CAL, - SALES_UNIT_CAL_LY, - SALES_VALUE_CAL, - SALES_VALUE_CAL_LY, - CONUTING_UNIT, - CONUTING_UNIT_LY, - PRESCRIPTION, - PRESCRIPTION_LY, - PACK_FLAG, - PROD_FLAG, - DTP_FLAG, - CMPS_FLAG, - PLATFORM_TYPE, - STORE_NAME, - STORE_TYPE, - REGION_TYPE, - INST_CODE, - DEPT_NAME, - NEW_CODE, - AREA, - H_LEVEL, - REIMBURSE, - REIMBURSE_TYPE, - PRESCRIPTION_SOURCE, - CORP_CODE, - ETL_INSERT_DT, - ETL_UPDATE_DT -) - SELECT - YYYYMM, - NVL(NULLIF(PACK_CODE, ''), CONCAT('PACK_CODE_', DATA_SOURCE)) AS PACK_CODE, - NVL(NULLIF(AUDIT_CODE, ''), 'ROC') AS AUDIT_CODE, - DATA_SOURCE, - SALES_UNIT_CAL, - SALES_UNIT_CAL_LY, - SALES_VALUE_CAL, - SALES_VALUE_CAL_LY, - CONUTING_UNIT, - CONUTING_UNIT_LY, - PRESCRIPTION, - PRESCRIPTION_LY, - PACK_FLAG, - PROD_FLAG, - DTP_FLAG, - CMPS_FLAG, - PLATFORM_TYPE, - STORE_NAME, - STORE_TYPE, - REGION_TYPE, - INST_CODE, - DEPT_NAME, - NEW_CODE, - AREA, - H_LEVEL, - REIMBURSE, - REIMBURSE_TYPE, - PRESCRIPTION_SOURCE, - CORP_CODE, - FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(), 'UTC+8') AS ETL_INSERT_DT, - FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(), 'UTC+8') AS ETL_UPDATE_DT - FROM - DM_TF_EXT_CHC_SALES; \ No newline at end of file diff --git a/EXTERNAL/CHC/02 DM_TF_EXT_CHC_SALES.sql:Zone.Identifier b/EXTERNAL/CHC/02 DM_TF_EXT_CHC_SALES.sql:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2x6 then concat(left(cast(YM as string),4),'H2') else concat(left(cast(YM as string),4),'H1') end as HALF_YEAR, -from_utc_timestamp(current_timestamp(),'UTC+8'), -from_utc_timestamp(current_timestamp(),'UTC+8') -from tmp.tmp_ims_tf_fact_sales -where YM > (select max(YM)-900 from tmp.tmp_ims_tf_fact_sales) -order by YM desc -; \ No newline at end of file diff --git a/EXTERNAL/CHPA/02 dws_ims_td_date.sql:Zone.Identifier b/EXTERNAL/CHPA/02 dws_ims_td_date.sql:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2xdl#JyUFr831@K2x1 -; - - --- COMMAND ---------- - -MERGE INTO tmp.tmp_ims_td_temp_market_upd1 AS t1 -USING tmp.tmp_ims_td_temp_market_upd2 AS t2 - on t1.ATC1_COD = t2.ATC1_COD - and t1.ATC2_COD = t2.ATC2_COD - and t1.ATC3_COD = t2.ATC3_COD - and t1.ATC4_COD = t2.ATC4_COD - and t1.APP1_COD = t2.APP1_COD - and t1.APP2_COD = t2.APP2_COD - and t1.APP3_COD = t2.APP3_COD - and t1.CORP_COD = t2.CORP_COD - and t1.MANU_COD = t2.MANU_COD - and t1.PROD_COD = t2.PROD_COD - and t1.PACK_COD = t2.PACK_COD - and t1.STGH_DES = t2.STGH_DES - and t1.CMPS_COD = t2.CMPS_COD - and t1.market = t2.market - and t1.Key_Competitor = t2.Key_Competitor - and t1.no=t2.no -WHEN MATCHED THEN DELETE -; - - --- COMMAND ---------- - ---没有挂上KeyCompetitor的,更新为Others ,最后去掉No,写入临时表备用 -update tmp.tmp_ims_td_temp_market_upd1 set Key_Competitor = 'Others' where Key_Competitor is NULL; - - --- COMMAND ---------- - -insert overwrite table tmp.tmp_ims_td_temp_market_upd -select - Key_Competitor,market,PACK_COD,PACK_DES,STGH_DES,PACK_LCH,PROD_COD,CMPS_COD,CMPS_DES, - 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,MNFL_COD,MNFL_DES,CORP_COD,CORP_DES,BrandType,bu,Market_Ratio -from tmp.tmp_ims_td_temp_market_upd1 -; - --- COMMAND ---------- - --- 20260119 市场维度信息 我感觉可以拉到前面去 ---市场维度信息 -insert overwrite table dws.dws_ims_td_market -select distinct market,PACK_COD,PACK_DES,STGH_DES,PACK_LCH,PROD_COD,CMPS_COD,CMPS_DES, - 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,MNFL_COD,MNFL_DES,CORP_COD,CORP_DES,BrandType,bu,Market_Ratio,Key_Competitor, - from_utc_timestamp(current_timestamp(),'UTC+8'), - from_utc_timestamp(current_timestamp(),'UTC+8') -from tmp.tmp_ims_td_temp_market_upd -; \ No newline at end of file diff --git a/EXTERNAL/CHPA/02 dws_ims_td_market.sql:Zone.Identifier b/EXTERNAL/CHPA/02 dws_ims_td_market.sql:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2x 5 OR COUNT(DISTINCT MANU_DES) > 5 ) - AND PROD.PROD_DES_C IS NOT NULL - ); - - --- COMMAND ---------- - -UPDATE dws.dws_ims_td_prod_cn SET RANK_TYPE = 0 where PROD_COD in ( - SELECT DISTINCT PROD_COD FROM tmp.tmp_ims_td_prod_tmp - ); \ No newline at end of file diff --git a/EXTERNAL/CHPA/02 tmp_ims_td_prod_tmp.sql:Zone.Identifier b/EXTERNAL/CHPA/02 tmp_ims_td_prod_tmp.sql:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2x - (select max(year * 100 + month) from dwd.dwd_ims_tf_fact_sales); -insert into dws.dws_ims_td_pack_ym -select - distinct ym, - pack_id, - pack_code, - from_utc_timestamp(current_timestamp(), 'UTC+8'), - from_utc_timestamp(current_timestamp(), 'UTC+8') -from - ( - select - distinct year * 100 + month as ym - from - dwd.dwd_ims_tf_fact_sales - where - year * 100 + month + 500 > ( - select max(year * 100 + month) from dwd.dwd_ims_tf_fact_sales - ) - ) full - -- join dwd.dwd_ims_td_pack - join dwd_ims_td_pack - ; - --- COMMAND ---------- - ---IMS 原始数据预处理 ---FACT SALES 处理 -insert overwrite table tmp.tmp_ims_tf_fact_sales -select distinct - FACT.YM,AUDIT.Audit_Code AS AUDIT_COD,FACT.Pack_Code AS PACK_COD, - sum(MTH00LC) as MTH00LC,sum(MTH00LCLY) as MTH00LCLY, - sum(MTH00CN) as MTH00CN,sum(MTH00CNLY) as MTH00CNLY, - sum(MTH00UN) as MTH00UN,sum(MTH00UNLY) as MTH00UNLY -from( - select - Year*100+Month as YM, - Year , - Month , - t2.pack_code , - Audit_ID , - SalesValue_LC as MTH00LC, - 0 as MTH00LCLY, - Counting_Unit as MTH00CN, - 0 as MTH00CNLY, - Sales_Unit as MTH00UN, - 0 as MTH00UNLY - from dwd.dwd_ims_tf_fact_sales t1 ---补充历史的PACK ID 和 PACK CODE的关联关系,带上YM将最新dim pack表full join 最近五年 - left join dws.dws_ims_td_pack_ym t2 on t1.Pack_ID=t2.pack_id and t1.Year*100+t1.Month=t2.ym - union all - select - (Year+1)*100+Month as YM, - Year+1 , - Month , - t2.pack_code , - Audit_ID , - 0 as MTH00LC, - SalesValue_LC as MTH00LCLY, - 0 as MTH00CN, - Counting_Unit as MTH00CNLY, - 0 as MTH00UN, - Sales_Unit as MTH00UNLY - from dwd.dwd_ims_tf_fact_sales t1 ---补充历史的PACK ID 和 PACK CODE的关联关系,带上YM将最新dim pack表full join 最近五年 - left join dws.dws_ims_td_pack_ym t2 on t1.Pack_ID=t2.pack_id and t1.Year*100+t1.Month=t2.ym -)FACT -LEFT JOIN dwd.dwd_ims_td_audit AUDIT -ON FACT.Audit_ID = AUDIT.Audit_ID -where FACT.YM<=(select max(Year*100+Month) from dwd.dwd_ims_tf_fact_sales) -----------20260320 chenwu CHPA的数据只保留202201之后的 -and FACT.YM>=202201 ----------- -AND AUDIT.Audit_Code = 'CHT' -group by FACT.YM,AUDIT.Audit_Code,FACT.Pack_Code - - - --- 20260120新增 --- 以前 全国和省份数据放在一起,现在全国是上面,省份是新的,单独放在下面。 -union all -select distinct - CAST(YM AS INT) AS YM, - AUDIT_COD,Pack_Code AS PACK_COD, - sum(MTH00LC) as MTH00LC,sum(MTH00LCLY) as MTH00LCLY, - sum(MTH00CN) as MTH00CN,sum(MTH00CNLY) as MTH00CNLY, - sum(MTH00UN) as MTH00UN,sum(MTH00UNLY) as MTH00UNLY -from - FACT_CHPA_SALES -where - YM<=(select max(YM) from dwd.dwd_gnd_pharbers_prov_fact) -group by YM,Audit_Cod,Pack_Code -; diff --git a/EXTERNAL/CHPA/02 tmp_ims_tf_fact_sales.sql:Zone.Identifier b/EXTERNAL/CHPA/02 tmp_ims_tf_fact_sales.sql:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2x= '202201' - -- AND A.MARKET = 'IMS ALL Market' - GROUP BY - A.YYYYMM, - A.PACK_COD, - A.AUDIT_COD - --- COMMAND ---------- - -INSERT OVERWRITE TABLE DM.DM_TF_EXT_CHPA_SALES ( - YYYYMM, - PACK_CODE, - AUDIT_CODE, - DATA_SOURCE, - SALES_UNIT_CAL, - SALES_UNIT_CAL_LY, - SALES_VALUE_CAL, - SALES_VALUE_CAL_LY, - CONUTING_UNIT, - CONUTING_UNIT_LY, - PRESCRIPTION, - PRESCRIPTION_LY, - PACK_FLAG, - PROD_FLAG, - DTP_FLAG, - CMPS_FLAG, - PLATFORM_TYPE, - STORE_NAME, - STORE_TYPE, - REGION_TYPE, - INST_CODE, - DEPT_NAME, - NEW_CODE, - AREA, - H_LEVEL, - REIMBURSE, - REIMBURSE_TYPE, - PRESCRIPTION_SOURCE, - CORP_CODE, - ETL_INSERT_DT, - ETL_UPDATE_DT -) -SELECT - YYYYMM, - NVL ( - NULLIF(PACK_CODE, ''), - CONCAT ('PACK_CODE_', DATA_SOURCE) - ) AS PACK_CODE, - NVL (NULLIF(AUDIT_CODE, ''), 'ROC') AS AUDIT_CODE, - DATA_SOURCE, - SALES_UNIT_CAL, - SALES_UNIT_CAL_LY, - SALES_VALUE_CAL, - SALES_VALUE_CAL_LY, - CONUTING_UNIT, - CONUTING_UNIT_LY, - PRESCRIPTION, - PRESCRIPTION_LY, - PACK_FLAG, - PROD_FLAG, - DTP_FLAG, - CMPS_FLAG, - PLATFORM_TYPE, - STORE_NAME, - STORE_TYPE, - REGION_TYPE, - INST_CODE, - DEPT_NAME, - NEW_CODE, - AREA, - H_LEVEL, - REIMBURSE, - REIMBURSE_TYPE, - PRESCRIPTION_SOURCE, - CORP_CODE, - FROM_UTC_TIMESTAMP (CURRENT_TIMESTAMP(), 'UTC+8') AS ETL_INSERT_DT, - FROM_UTC_TIMESTAMP (CURRENT_TIMESTAMP(), 'UTC+8') AS ETL_UPDATE_DT -FROM - CHPA_SALES; \ No newline at end of file diff --git a/EXTERNAL/CHPA/03 DM_TF_EXT_CHPA_SALES.sql:Zone.Identifier b/EXTERNAL/CHPA/03 DM_TF_EXT_CHPA_SALES.sql:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2x(SELECT MAX(YEAR) FROM DWS.DWS_IMS_TD_DATE) - - --- COMMAND ---------- - -INSERT OVERWRITE TABLE DM.DM_IMS_S_DATE -SELECT - YYYYMM, - YEAR, - MONTH, - QUARTER, - YQ, - DAY_DATE, - DATE_FLAG, - HALF_YEAR, - ETL_INSERT_DT, - ETL_UPDATE_DT -FROM DM.DM_IMS_TD_CALENDAR \ No newline at end of file diff --git a/EXTERNAL/CHPA/03 dm_ims_td_calendar.sql:Zone.Identifier b/EXTERNAL/CHPA/03 dm_ims_td_calendar.sql:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2x= '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, - p2.rsm_kcode, - p2.rc_code, - p2.rc_name_en, - p2.region_code, - p2.region_name_en, - BU_CATEGORY, - yyyymm, - mr_trty_code, - mr_kcode, - dsm_trty_code, - rsm_trty_code, - dsm_kcode, - rsd_trty_code -FROM - DM.dm_td_org P2 - --- COMMAND ---------- - ---dm_org --使用和performance cvh 的org架构 --- insert overwrite table tmp.tmp_ims_td_org -create or replace temporary view tmp_ims_td_org as -select distinct - rsm_trty_code, - rsm_kcode, - case - when rsm_name = 'Vacant' then concat (rsm_trty_code, '_V') - else rsm_name - end as rsm_name, - rsd_trty_code, - rsd_kcode, - case - when rsd_name = 'Vacant' then concat (rsd_trty_code, '_V') - else rsd_name - end as rsd_name, - nsd_trty_code, - nsd_kcode, - case - when nsd_name = 'Vacant' then concat (nsd_trty_code, '_V') - else nsd_name - end as nsd_name, - region_code, - region_name, - region_name_en, - rc_code, - rc_name, - rc_name_en, - bu_code, - bu_name, - bu_name_en, - bu_category, - sub_bu_code, - sub_bu_name, - sub_bu_name_en, - t2.city_name, - null as ims_pack_cod, - t3.market, - t2.province_code as ims_audit_cod, - 1 as ims_city_ratio -from - dm_td_org_tmp t1 - left join ( - select distinct - t1.yyyymm, - t1.trty_code, - t2.city_name, - -- 20260210 Yusuo ADD - t2.province_code, - t4.ims_prod_cod, - t4.ims_pack_cod - from - dm.dm_td_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') - ) 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 - --使用和performance cvh 的org架构 -where - t1.yyyymm in ( - select - key_value - from - dm.dm_td_date_config - where - key_code = 'pfmc_cvh' - ) - --- COMMAND ---------- - ---将还没有做出来AZ产品关系的market挂给所有的对应BU --- insert into tmp_ims_td_org -create or replace temporary view tmp_ims_td_org1 as -select distinct - 'Vacant' as rsm_trty_code, - 'Vacant' as rsm_kcode, - 'Vacant' as rsm_name, - 'Vacant' as rsd_trty_code, - 'Vacant' as rsd_kcode, - 'Vacant' as rsd_name, - 'Vacant' as nsd_trty_code, - 'Vacant' as nsd_kcode, - 'Vacant' as nsd_name, - 'Non AZ Region' as region_code, - 'Non AZ Region' as region_name, - 'Non AZ Region' as region_name_en, - 'Non AZ Region' as rc_code, - 'Non AZ Region' as rc_name, - 'Non AZ Region' as rc_name_en, - bu_code, - bu_name, - bu_name_en, - bu_category, - sub_bu_code, - sub_bu_name, - sub_bu_name_en, - city_name, - null as ims_pack_cod, - t2.market, - ims_audit_cod, - ims_city_ratio -from - tmp_ims_td_org t1 - left join ( - select distinct - t2.market, - t2.bu - from - tmp_ims_td_org t1 - right join dwd.dwd_td_ims_market_ta_order t2 on t1.market = t2.market - where - t1.market is null - and t2.market <> 'IMS ALL Market' - ) t2 on t1.bu_name_en = t2.bu -where - t2.market is not null - --- COMMAND ---------- - ---将所有的ROC的市场数据补全,同时根据市场找到对应BU --- insert into tmp_ims_td_org -create or replace temporary view tmp_ims_td_org2 as -select distinct - rsm_trty_code, - rsm_kcode, - rsm_name, - rsd_trty_code, - rsd_kcode, - rsd_name, - nsd_trty_code, - nsd_kcode, - nsd_name, - region_code, - region_name, - region_name_en, - rc_code, - rc_name, - rc_name_en, - t2.bu_code, - t2.bu_name, - t2.bu_name_en, - t2.bu_category, - t2.sub_bu_code, - t2.sub_bu_name, - t2.sub_bu_name_en, - t2.city_name, - null as ims_pack_cod, - t2.market, - t2.ims_audit_cod, - t2.ims_city_ratio -from - ( - select - 'Vacant' as rsm_trty_code, - 'Vacant' as rsm_kcode, - 'Vacant' as rsm_name, - 'Vacant' as rsd_trty_code, - 'Vacant' as rsd_kcode, - 'Vacant' as rsd_name, - 'Vacant' as nsd_trty_code, - 'Vacant' as nsd_kcode, - 'Vacant' as nsd_name, - 'Other Low Tiers' as region_code, - 'Other Low Tiers' as region_name, - 'Other Low Tiers' as region_name_en, - 'Other Low Tiers' as rc_code, - 'Other Low Tiers' as rc_name, - 'Other Low Tiers' as rc_name_en, - 'Other Low Tiers' as city_name, - 'ROC' as audit_cod - ) t1 - full join ( - select distinct - bu_code, - bu_name, - bu_name_en, - bu_category, - sub_bu_code, - sub_bu_name, - sub_bu_name_en, - market, - ims_city_ratio, - 'Other Low Tiers' as city_name, - 'ROC' as ims_audit_cod - from - tmp_ims_td_org1 - where - bu_code is not null - --有销量的ROC数据 - and concat (market, '_ROC') in ( - select distinct - concat(market,'_ROC' ) market_audit_key from - dm.dm_tf_ext_unionall_market_sales - where DATA_SOURCE = 'IQVIA-CHPA(Monthly)' and - audit_cod = 'ROC' - ) - ) t2 on t1.audit_cod = t2.ims_audit_cod - --- COMMAND ---------- - ---将所有未能挂上Org的市场数据补全,同时根据市场找到对应BU --- insert into tmp_ims_td_org -create or replace temporary view tmp_ims_td_org3 as -select distinct - rsm_trty_code, - rsm_kcode, - rsm_name, - rsd_trty_code, - rsd_kcode, - rsd_name, - nsd_trty_code, - nsd_kcode, - nsd_name, - region_code, - region_name, - region_name_en, - rc_code, - rc_name, - rc_name_en, - t2.bu_code, - t2.bu_name, - t2.bu_name_en, - t2.bu_category, - t2.sub_bu_code, - t2.sub_bu_name, - t2.sub_bu_name_en, - t2.city_name, - null as ims_pack_cod, - t2.market, - t2.ims_audit_cod, - t2.ims_city_ratio -from - ( - select - 'Vacant' as rsm_trty_code, - 'Vacant' as rsm_kcode, - 'Vacant' as rsm_name, - 'Vacant' as rsd_trty_code, - 'Vacant' as rsd_kcode, - 'Vacant' as rsd_name, - 'Vacant' as nsd_trty_code, - 'Vacant' as nsd_kcode, - 'Vacant' as nsd_name, - 'Non AZ Region' as region_code, - 'Non AZ Region' as region_name, - 'Non AZ Region' as region_name_en, - 'Non AZ Region' as rc_code, - 'Non AZ Region' as rc_name, - 'Non AZ Region' as rc_name_en - ) t1 - full join ( - select distinct - bu_code, - bu_name, - bu_name_en, - bu_category, - sub_bu_code, - sub_bu_name, - sub_bu_name_en, - -- 'ALL' as sub_bu_code,'ALL' as sub_bu_name,'ALL' as sub_bu_name_en, - t2.audit_cod as ims_audit_cod, - null as city_name, - t2.market, - ims_city_ratio - from - tmp_ims_td_org2 t1 - inner join ( - --筛选出挂不上Org的市场城市,同时又有销量的 - select distinct - t2.market, - t2.audit_cod, - t3.bu - from - tmp_ims_td_org2 t1 - right join ( - select distinct - audit_cod, - market - from - dm.dm_tf_ext_unionall_market_sales - where DATA_SOURCE = 'IQVIA-CHPA(Monthly)' - ) t2 on concat (t1.market, '_', t1.ims_audit_cod) = concat (t2.market, '_', t2.audit_cod) - left join dwd.dwd_td_ims_market_ta_order t3 on t2.market = t3.market - where - concat (t1.market, '_', t1.ims_audit_cod) is null - and t2.market <> 'IMS ALL Market' - ) t2 on t1.bu_name_en = t2.bu - ) t2 -where - t2.bu_code is not null - --- COMMAND ---------- - -create or replace temporary view tmp_ims_td_org4 as -select - rsm_trty_code, - rsm_kcode, - rsm_name, - rsd_trty_code, - rsd_kcode, - rsd_name, - nsd_trty_code, - nsd_kcode, - nsd_name, - region_code, - region_name, - region_name_en, - rc_code, - rc_name, - rc_name_en, - bu_code, - bu_name, - bu_name_en, - bu_category, - sub_bu_code, - sub_bu_name, - sub_bu_name_en, - city_name, - ims_pack_cod, - market, - ims_audit_cod, - ims_city_ratio -from - tmp_ims_td_org -union all -select - rsm_trty_code, - rsm_kcode, - rsm_name, - rsd_trty_code, - rsd_kcode, - rsd_name, - nsd_trty_code, - nsd_kcode, - nsd_name, - region_code, - region_name, - region_name_en, - rc_code, - rc_name, - rc_name_en, - bu_code, - bu_name, - bu_name_en, - bu_category, - sub_bu_code, - sub_bu_name, - sub_bu_name_en, - city_name, - ims_pack_cod, - market, - ims_audit_cod, - ims_city_ratio -from - tmp_ims_td_org1 -union all -select - rsm_trty_code, - rsm_kcode, - rsm_name, - rsd_trty_code, - rsd_kcode, - rsd_name, - nsd_trty_code, - nsd_kcode, - nsd_name, - region_code, - region_name, - region_name_en, - rc_code, - rc_name, - rc_name_en, - bu_code, - bu_name, - bu_name_en, - bu_category, - sub_bu_code, - sub_bu_name, - sub_bu_name_en, - city_name, - ims_pack_cod, - market, - ims_audit_cod, - ims_city_ratio -from - tmp_ims_td_org2 -union all -select - rsm_trty_code, - rsm_kcode, - rsm_name, - rsd_trty_code, - rsd_kcode, - rsd_name, - nsd_trty_code, - nsd_kcode, - nsd_name, - region_code, - region_name, - region_name_en, - rc_code, - rc_name, - rc_name_en, - bu_code, - bu_name, - bu_name_en, - bu_category, - sub_bu_code, - sub_bu_name, - sub_bu_name_en, - city_name, - ims_pack_cod, - market, - ims_audit_cod, - ims_city_ratio -from - tmp_ims_td_org3 - --- COMMAND ---------- - -insert overwrite table dm.dm_ims_td_org -select distinct - concat (t1.market, '_', t2.audit_cod) as ORG_KEY, - t1.rsm_trty_code, - t1.rsm_kcode, - t1.rsm_name, - t1.rsd_trty_code, - t1.rsd_kcode, - t1.rsd_name, - t1.nsd_trty_code, - t1.nsd_kcode, - t1.nsd_name, - t1.region_code, - t1.region_name, - t1.region_name_en, - t1.rc_code, - t1.rc_name, - t1.rc_name_en, - t1.bu_code, - t1.bu_name, - t1.bu_name_en, - t1.bu_category, - t1.sub_bu_code, - t1.sub_bu_name, - t1.sub_bu_name_en, - t1.sub_bu_code as sub_bu_code_auth, --前端权限配置需要的字段 - t1.bu_code as bu_code_auth, --前端权限配置需要的字段 - t2.audit_cod, - t2.audit_des, - t2.audit_des_c, - t2.Province, - t2.Province_C, - t2.RegionCenter, - t1.market, - concat (t1.market, '_', t2.audit_cod) as market_audit_key, - from_utc_timestamp (current_timestamp(), 'UTC+8') ETL_INSERT_DT, - from_utc_timestamp (current_timestamp(), 'UTC+8') ETL_UPDATE_DT -from - tmp_ims_td_org4 t1 - left join dws.dws_ims_td_geo t2 on t1.ims_audit_cod = t2.audit_cod - --where t1.market is not null and t1.ims_audit_cod is not null - - /* 20260409 chenwu IMS ALL Market 不需要了 -union all -select distinct - concat ('IMS ALL Market_', t2.audit_cod) as ORG_KEY, - t1.rsm_trty_code, - t1.rsm_kcode, - t1.rsm_name, - t1.rsd_trty_code, - t1.rsd_kcode, - t1.rsd_name, - t1.nsd_trty_code, - t1.nsd_kcode, - t1.nsd_name, - t1.region_code, - t1.region_name, - t1.region_name_en, - t1.rc_code, - t1.rc_name, - t1.rc_name_en, - t1.bu_code, - t1.bu_name, - t1.bu_name_en, - t1.bu_category, - t1.sub_bu_code, - t1.sub_bu_name, - t1.sub_bu_name_en, - 'ALL' as sub_bu_code_auth, - 'ALL' as bu_code_auth, - t2.audit_cod, - t2.audit_des, - t2.audit_des_c, - t2.Province, - t2.Province_C, - t2.RegionCenter, - 'IMS ALL Market' as market, - concat ('IMS ALL Market_', t2.audit_cod) as market_audit_key, - from_utc_timestamp (current_timestamp(), 'UTC+8') ETL_INSERT_DT, - from_utc_timestamp (current_timestamp(), 'UTC+8') ETL_UPDATE_DT -from - tmp_ims_td_org4 t1 - left join dws.dws_ims_td_geo t2 on t1.ims_audit_cod = t2.audit_cod -where - t1.market is not null - and t1.ims_audit_cod is not null - */ \ No newline at end of file diff --git a/EXTERNAL/CHPA/03 dm_ims_td_org.sql:Zone.Identifier b/EXTERNAL/CHPA/03 dm_ims_td_org.sql:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2x 'IMS ALL Market' - ) t2 on t1.bu_name_en = t2.bu -where - t2.market is not null - --- COMMAND ---------- - - --将所有的ROC的市场数据补全,同时根据市场找到对应BU -insert into - tmp.tmp_ims_td_org_hvh -select distinct - yyyymm, - dsm_trty_code, - dsm_kcode, - dsm_name, - rsm_trty_code, - rsm_kcode, - rsm_name, - rsd_trty_code, - rsd_kcode, - rsd_name, - nsd_trty_code, - nsd_kcode, - nsd_name, - district_code, - district_name, - district_name_en, - region_code, - region_name, - region_name_en, - rc_code, - rc_name, - rc_name_en, - t2.bu_code, - t2.bu_name, - t2.bu_name_en, - t2.bu_category, - t2.sub_bu_code, - t2.sub_bu_name, - t2.sub_bu_name_en, - t2.city_name, - null as ims_pack_cod, - t2.market, - t2.ims_audit_cod, - t2.ims_city_ratio -from - ( - select - 'Vacant' as dsm_trty_code, - 'Vacant' as dsm_kcode, - 'Vacant' as dsm_name, - 'Vacant' as rsm_trty_code, - 'Vacant' as rsm_kcode, - 'Vacant' as rsm_name, - 'Vacant' as rsd_trty_code, - 'Vacant' as rsd_kcode, - 'Vacant' as rsd_name, - 'Vacant' as nsd_trty_code, - 'Vacant' as nsd_kcode, - 'Vacant' as nsd_name, - 'Non AZ Region' as district_code, - 'Non AZ Region' as district_name, - 'Non AZ Region' as district_name_en, - 'Other Low Tiers' as region_code, - 'Other Low Tiers' as region_name, - 'Other Low Tiers' as region_name_en, - 'Other Low Tiers' as rc_code, - 'Other Low Tiers' as rc_name, - 'Other Low Tiers' as rc_name_en, - 'Other Low Tiers' as city_name, - 'ROC' as audit_cod - ) t1 - full join ( - select distinct - bu_code, - bu_name, - bu_name_en, - bu_category, - sub_bu_code, - sub_bu_name, - sub_bu_name_en, - -- 'ALL' as sub_bu_code,'ALL' as sub_bu_name,'ALL' as sub_bu_name_en, - market, - ims_city_ratio, - yyyymm, - 'Other Low Tiers' as city_name, - 'ROC' as ims_audit_cod - from - tmp.tmp_ims_td_org_hvh - -- )t2 --on t1.bu=t2.bu_name_en - where - bu_code is not null - --有销量的ROC数据 - and concat (market, '_ROC') in ( - select distinct - market_audit_key - from - dm.dm_ims_tf_sales - where - audit_cod = 'ROC' - ) - ) t2 on t1.audit_cod = t2.ims_audit_cod - --- COMMAND ---------- - - --将所有未能挂上Org的市场数据补全,同时根据市场找到对应BU -insert into - tmp.tmp_ims_td_org_hvh -select distinct - yyyymm, - dsm_trty_code, - dsm_kcode, - dsm_name, - rsm_trty_code, - rsm_kcode, - rsm_name, - rsd_trty_code, - rsd_kcode, - rsd_name, - nsd_trty_code, - nsd_kcode, - nsd_name, - district_code, - district_name, - district_name_en, - region_code, - region_name, - region_name_en, - rc_code, - rc_name, - rc_name_en, - t2.bu_code, - t2.bu_name, - t2.bu_name_en, - t2.bu_category, - t2.sub_bu_code, - t2.sub_bu_name, - t2.sub_bu_name_en, - t2.city_name, - null as ims_pack_cod, - t2.market, - t2.ims_audit_cod, - t2.ims_city_ratio -from - ( - select - 'Vacant' as dsm_trty_code, - 'Vacant' as dsm_kcode, - 'Vacant' as dsm_name, - 'Vacant' as rsm_trty_code, - 'Vacant' as rsm_kcode, - 'Vacant' as rsm_name, - 'Vacant' as rsd_trty_code, - 'Vacant' as rsd_kcode, - 'Vacant' as rsd_name, - 'Vacant' as nsd_trty_code, - 'Vacant' as nsd_kcode, - 'Vacant' as nsd_name, - 'Non AZ Region' as district_code, - 'Non AZ Region' as district_name, - 'Non AZ Region' as district_name_en, - 'Non AZ Region' as region_code, - 'Non AZ Region' as region_name, - 'Non AZ Region' as region_name_en, - 'Non AZ Region' as rc_code, - 'Non AZ Region' as rc_name, - 'Non AZ Region' as rc_name_en - ) t1 - full join ( - select distinct - bu_code, - bu_name, - bu_name_en, - bu_category, - sub_bu_code, - sub_bu_name, - sub_bu_name_en, - -- 'ALL' as sub_bu_code,'ALL' as sub_bu_name,'ALL' as sub_bu_name_en, - t2.audit_cod as ims_audit_cod, - null as city_name, - t1.yyyymm, - t2.market, - ims_city_ratio - from - tmp.tmp_ims_td_org_hvh t1 - inner join ( - --筛选出挂不上Org的市场城市,同时又有销量的 - select distinct - t2.market, - t2.audit_cod, - t3.bu - from - tmp.tmp_ims_td_org_hvh t1 - right join ( - select distinct - audit_cod, - market - from - dm.dm_ims_tf_sales - ) t2 on concat (t1.market, '_', t1.ims_audit_cod) = concat (t2.market, '_', t2.audit_cod) - left join dwd.dwd_td_ims_market_ta_order t3 on t2.market = t3.market - where - concat (t1.market, '_', t1.ims_audit_cod) is null - and t2.market <> 'IMS ALL Market' - ) t2 on t1.bu_name_en = t2.bu - ) t2 -where - t2.bu_code is not null - --- COMMAND ---------- - - insert overwrite table dm.dm_ims_td_org_hvh -select distinct - t1.yyyymm, - concat ( - t1.market, - '_', - t2.audit_cod, - '_', - right (t1.yyyymm, 2) - ) as ORG_KEY, - t1.dsm_trty_code, - t1.dsm_kcode, - t1.dsm_name, - t1.rsm_trty_code, - t1.rsm_kcode, - t1.rsm_name, - t1.rsd_trty_code, - t1.rsd_kcode, - t1.rsd_name, - t1.nsd_trty_code, - t1.nsd_kcode, - t1.nsd_name, - t1.district_code, - t1.district_name, - t1.district_name_en, - t1.region_code, - t1.region_name, - t1.region_name_en, - t1.rc_code, - t1.rc_name, - t1.rc_name_en, - t1.bu_code, - t1.bu_name, - t1.bu_name_en, - t1.bu_category, - t1.sub_bu_code, - t1.sub_bu_name, - t1.sub_bu_name_en, - t1.sub_bu_code as sub_bu_code_auth, --前端权限配置需要的字段 - t1.bu_code as bu_code_auth, --前端权限配置需要的字段 - t2.audit_cod, - t2.audit_des, - t2.audit_des_c, - t2.Province, - t2.Province_C, - t2.RegionCenter, - t1.market, - concat (t1.market, '_', t2.audit_cod) as market_audit_key, - from_utc_timestamp (current_timestamp(), 'UTC+8') ETL_INSERT_DT, - from_utc_timestamp (current_timestamp(), 'UTC+8') ETL_UPDATE_DT -from - tmp.tmp_ims_td_org_hvh t1 - left join dws.dws_ims_td_geo t2 on t1.ims_audit_cod = t2.audit_cod - --where t1.market is not null and t1.ims_audit_cod is not null -union all -select distinct - t1.yyyymm, - concat ( - 'IMS ALL Market', - '_', - t2.audit_cod, - '_', - right (t1.yyyymm, 2) - ) as ORG_KEY, - t1.dsm_trty_code, - t1.dsm_kcode, - t1.dsm_name, - t1.rsm_trty_code, - t1.rsm_kcode, - t1.rsm_name, - t1.rsd_trty_code, - t1.rsd_kcode, - t1.rsd_name, - t1.nsd_trty_code, - t1.nsd_kcode, - t1.nsd_name, - t1.district_code, - t1.district_name, - t1.district_name_en, - t1.region_code, - t1.region_name, - t1.region_name_en, - t1.rc_code, - t1.rc_name, - t1.rc_name_en, - t1.bu_code, - t1.bu_name, - t1.bu_name_en, - t1.bu_category, - t1.sub_bu_code, - t1.sub_bu_name, - t1.sub_bu_name_en, - 'ALL' as sub_bu_code_auth, - 'ALL' as bu_code_auth, - t2.audit_cod, - t2.audit_des, - t2.audit_des_c, - t2.Province, - t2.Province_C, - t2.RegionCenter, - 'IMS ALL Market' as market, - concat ('IMS ALL Market_', t2.audit_cod) as market_audit_key, - from_utc_timestamp (current_timestamp(), 'UTC+8') ETL_INSERT_DT, - from_utc_timestamp (current_timestamp(), 'UTC+8') ETL_UPDATE_DT -from - tmp.tmp_ims_td_org_hvh t1 - left join dws.dws_ims_td_geo t2 on t1.ims_audit_cod = t2.audit_cod \ No newline at end of file diff --git a/EXTERNAL/CHPA/03 dm_ims_td_org_hvh.sql:Zone.Identifier b/EXTERNAL/CHPA/03 dm_ims_td_org_hvh.sql:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2x 'Non Market' --- --IMS ALL Market pack表属性补全 --- union all --- select distinct --- concat ('IMS ALL Market_', t1.PACK_COD) as MARKET_PACK_KEY, --- t1.PACK_COD, --- t1.PACK_DES, --- t1.STGH_DES, --- t1.PACK_LCH, --- t1.Family_Code, --- t1.Family_Name, --- t1.PROD_COD, --- t1.PROD_DES, --- t1.PROD_DES_C, --- t1.CMPS_COD, --- t1.CMPS_DES, --- t1.CMPS_DES_C as CMPS_DES_C, --20240530正式新增字段 --- t1.ATC1_COD, --- t1.ATC2_COD, --- t1.ATC3_COD, --- t1.ATC4_COD, --- t1.APP1_COD, --- t1.APP2_COD, --- t1.APP3_COD, --- t1.BIO_DESC, --- t1.GENE_ORIG_DESC, --- t1.ETH_OTC_DESC, --- t1.NRDL_DESC, --- t1.NRDL_Entry_Date, --- t1.EDL_DESC, --- t1.TCM_DESC, --- t1.PAED_DESC, --- t1.GQCE_DESC, --- t1.VBP_DESC_V as VBP_DESC_V, --20240530正式新增字段 --- t1.VBP_DESC, --- t1.MANU_COD, --- t1.MANU_DES, --- t1.MANU_DES_C as MANU_DES_C, --20240530正式新增字段 --- t1.MNFL_COD, --- t1.MNFL_DES, --- t1.CORP_COD, --- case --- when t1.CORP_DES like '% GROUP%' then replace (t1.CORP_DES, ' GROUP', '') --- else t1.CORP_DES --- end CORP_DES, --- t1.CORP_DES_C as CORP_DES_C, --20240530正式新增字段 --- t1.BrandType, --- 'IMS ALL Market' as MARKET, --- upper(t1.PROD_DES) as KEY_COMPETITOR, --- ifnull (t2.IS_AZ, 'N') as IS_AZ, --- null as AZ_MAIN, --- null as AZ_Related, --- t1.atc1_des, --- t1.atc1_des_c, --- t1.atc2_des, --- t1.atc2_des_c, --- t1.atc3_des, --- t1.atc3_des_c, --- t1.atc4_des, --- t1.atc4_des_c, --- t1.app1_des, --- t1.app1_des_c, --- t1.app2_des, --- t1.app2_des_c, --- t1.app3_des, --- t1.app3_des_c, --- 'Others' as Class, --- from_utc_timestamp (current_timestamp(), 'UTC+8') ETL_INSERT_DT, --- from_utc_timestamp (current_timestamp(), 'UTC+8') ETL_UPDATE_DT --- from --- CHPA_UNION_FB_DATA t1 --- left join ( --- select distinct --- prod_cod, --- prod_des, --- 'Y' as IS_AZ --- from --- dws.dws_ims_td_pack_property --- where --- corp_cod = 'A5Z' --- ) t2 on t1.prod_des = t2.prod_des - --- COMMAND ---------- - --- create or replace table tmp.tmp_ext_chpa_pack_propetry -insert overwrite table tmp.tmp_ext_chpa_pack_propetry -select - PACK_COD, - max(PACK_DES) as PACK_DES, - max(STGH_DES) as STGH_DES, - max(PACK_LCH) as PACK_LCH, - max(Family_Code) as Family_Code, - max(Family_Name) as Family_Name, - max(PROD_COD) as PROD_COD, - max(PROD_DES) as PROD_DES, - max(PROD_DES_C) as PROD_DES_C, - max(CMPS_COD) as CMPS_COD, - max(CMPS_DES) as CMPS_DES, - max(CMPS_DES_C) as CMPS_DES_C, - max(ATC1_COD) as ATC1_COD, - max(ATC2_COD) as ATC2_COD, - max(ATC3_COD) as ATC3_COD, - max(ATC4_COD) as ATC4_COD, - max(APP1_COD) as APP1_COD, - max(APP2_COD) as APP2_COD, - max(APP3_COD) as APP3_COD, - max(BIO_DESC) as BIO_DESC, - max(GENE_ORIG_DESC) as GENE_ORIG_DESC, - max(ETH_OTC_DESC) as ETH_OTC_DESC, - max(NRDL_DESC) as NRDL_DESC, - max(NRDL_Entry_Date) as NRDL_Entry_Date, - max(EDL_DESC) as EDL_DESC, - max(TCM_DESC) as TCM_DESC, - max(PAED_DESC) as PAED_DESC, - max(GQCE_DESC) as GQCE_DESC, - max(VBP_DESC) as VBP_DESC, - max(MANU_COD) as MANU_COD, - max(MANU_DES) as MANU_DES, - max(MANU_DES_C) as MANU_DES_C, - max(MNFL_COD) as MNFL_COD, - max(MNFL_DES) as MNFL_DES, - max(CORP_COD) as CORP_COD, - max(CORP_DES) as CORP_DES, - max(CORP_DES_C) as CORP_DES_C, - max(BrandType) as BrandType, - max(IS_AZ) as IS_AZ, - max(AZ_MAIN) as AZ_MAIN, - null as AZ_Related, - max(atc1_des) as atc1_des, - max(atc1_des_c) as atc1_des_c, - max(atc2_des) as atc2_des, - max(atc2_des_c) as atc2_des_c, - max(atc3_des) as atc3_des, - max(atc3_des_c) as atc3_des_c, - max(atc4_des) as atc4_des, - max(atc4_des_c) as atc4_des_c, - max(app1_des) as app1_des, - max(app1_des_c) as app1_des_c, - max(app2_des) as app2_des, - max(app2_des_c) as app2_des_c, - max(app3_des) as app3_des, - max(app3_des_c) as app3_des_c -from - dm.dm_ims_td_pack_property -group by - PACK_COD - --- COMMAND ---------- - --- MAGIC %md --- MAGIC # market ratio PDOT CU - --- COMMAND ---------- - --- DBTITLE 1,UPDATE dws.dws_ims_td_market --- -- 补充 法伯部分的数据 --- insert into --- table dws.dws_ims_td_market --- with --- FB_MARKET_RATIO as ( --- select distinct --- market, --- PACK_COD, --- PACK_DES, --- STGH_DES, --- PACK_LCH, --- PROD_COD, --- CMPS_COD, --- CMPS_DES, --- 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, --- MNFL_COD, --- MNFL_DES, --- CORP_COD, --- CORP_DES, --- BrandType, --- null as bu, --- Market_Ratio, --- Key_Competitor, --- from_utc_timestamp (current_timestamp(), 'UTC+8'), --- from_utc_timestamp (current_timestamp(), 'UTC+8') --- from --- from --- FB_CLASS as t --- where --- not EXISTS ( --- select --- 0 --- from --- dws.dws_ims_td_pack_property --- where --- PACK_COD = t.pack_cod --- ) --- ) --- select --- * --- from --- FB_MARKET_RATIO - --- COMMAND ---------- - --- DBTITLE 1,overwrite dws.dws_ims_td_market_ratio --- --由于360中折算规则更加灵活,所以将市场的Ratio打开,分别对应三个不同的KPI字段 --- --此处会关联YM字段,原因是需要按照市场进行折算 --- --市场维度信息 挂上360中的折算规则 先用日期表做笛卡儿积,保证不同时间的规则可以关联上 --- insert overwrite table dws.dws_ims_td_market_ratio ( --- YM, --- MARKET, --- PACK_COD, --- PACK_DES, --- STGH_DES, --- PACK_LCH, --- PROD_COD, --- CMPS_COD, --- CMPS_DES, --- 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, --- MNFL_COD, --- MNFL_DES, --- CORP_COD, --- CORP_DES, --- BrandType, --- BU, --- Key_Competitor, --- Value_Market_Ratio, --- Unit_Market_Ratio, --- CountingUnit_Market_Ratio, --- PDOT_Market_Ratio, --- ETL_INSERT_DT, --- ETL_UPDATE_DT --- ) --- SELECT DISTINCT --- YM.YM, --- Market.MARKET, --- Market.PACK_COD, --- Market.PACK_DES, --- Market.STGH_DES, --- Market.PACK_LCH, --- Market.PROD_COD, --- Market.CMPS_COD, --- Market.CMPS_DES, --- Market.ATC1_COD, --- Market.ATC2_COD, --- Market.ATC3_COD, --- Market.ATC4_COD, --- Market.APP1_COD, --- Market.APP2_COD, --- Market.APP3_COD, --- Market.BIO_DESC, --- Market.GENE_ORIG_DESC, --- Market.ETH_OTC_DESC, --- Market.NRDL_DESC, --- Market.NRDL_Entry_Date, --- Market.EDL_DESC, --- Market.TCM_DESC, --- Market.PAED_DESC, --- Market.GQCE_DESC, --- Market.VBP_DESC, --- Market.MANU_COD, --- Market.MANU_DES, --- Market.MNFL_COD, --- Market.MNFL_DES, --- Market.CORP_COD, --- Market.CORP_DES, --- Market.BrandType, --- Market.BU, --- Market.Key_Competitor, --- Market.Market_Ratio AS Value_Market_Ratio, --- Market.Market_Ratio AS Unit_Market_Ratio, --- Market.Market_Ratio AS CountingUnit_Market_Ratio, --- Market.Market_Ratio AS PDOT_Market_Ratio, --- from_utc_timestamp (current_timestamp(), 'UTC+8'), --- from_utc_timestamp (current_timestamp(), 'UTC+8') --- FROM --- dws.dws_ims_td_market Market --- CROSS JOIN ( --- SELECT DISTINCT --- cast(YM as int) as YM --- FROM --- tmp.tmp_ims_tf_fact_sales --- ) YM --- -- WHERE YM.YM >= (SELECT MIN(cast(YM as int)) FROM dws.dws_ims_td_date) --- ; - --- COMMAND ---------- - --- DBTITLE 1,overwrite tmp.tmp_ims_td_market_ratio1 --- ----------------------------------------------------------------------------------------------------------------------------- --- --修改时间:20240820 --- --修改人:FanXujia --- --修改内容: --- --market_ratio的逻辑调整 --- --修改前:market_ratio(tblmarket) * ratio(tblbrandratio_pack) * ratio(tblbrandratio_MOLECULE) ,三者相乘得到最终的ratio --- --修改后:market_ratio(tblmarket) * ratio(优先取pack级别的ratio,没有pack级别的就取molecule级别的ratio),两者相乘得到最终的ratio --- ----------------------------------------------------------------------------------------------------------------------------- --- ---按照折算的Type,分三个类型的Ratio进行折算 VALUE,UNIT,COUNTINGUNIT --- insert overwrite table tmp.tmp_ims_td_market_ratio1 --- select distinct --- t1.YM, --- t1.MARKET, --- t1.PACK_COD, --- t1.PACK_DES, --- t1.STGH_DES, --- t1.PACK_LCH, --- t1.PROD_COD, --- t1.CMPS_COD, --- t1.CMPS_DES, --- t1.ATC1_COD, --- t1.ATC2_COD, --- t1.ATC3_COD, --- t1.ATC4_COD, --- t1.APP1_COD, --- t1.APP2_COD, --- t1.APP3_COD, --- t1.BIO_DESC, --- t1.GENE_ORIG_DESC, --- t1.ETH_OTC_DESC, --- t1.NRDL_DESC, --- t1.NRDL_Entry_Date, --- t1.EDL_DESC, --- t1.TCM_DESC, --- t1.PAED_DESC, --- t1.GQCE_DESC, --- t1.VBP_DESC, --- t1.MANU_COD, --- t1.MANU_DES, --- t1.MNFL_COD, --- t1.MNFL_DES, --- t1.CORP_COD, --- t1.CORP_DES, --- t1.BrandType, --- t1.BU, --- t1.Key_Competitor, --- case --- when t2.ratio is not null then t1.Value_Market_Ratio * t2.ratio --- else t1.Value_Market_Ratio * nvl (t5.ratio, 1) --- end as Value_Market_Ratio, --- case --- when t3.ratio is not null then t1.Unit_Market_Ratio * t3.ratio --- else t1.Unit_Market_Ratio * nvl (t6.ratio, 1) --- end as Unit_Market_Ratio, --- case --- when t4.ratio is not null then t1.CountingUnit_Market_Ratio * t4.ratio --- else t1.CountingUnit_Market_Ratio * nvl (t7.ratio, 1) --- end as CountingUnit_Market_Ratio, --- t1.PDOT_Market_Ratio, --- from_utc_timestamp (current_timestamp(), 'UTC+8') as ETL_INSERT_DT, --- from_utc_timestamp (current_timestamp(), 'UTC+8') as ETL_UPDATE_DT --- from --- dws.dws_ims_td_market_ratio t1 --- left join ( --VALUE--PACK --- select distinct --- market, --- cmps_cod, --- cmps_des, --- pack_cod, --- pack_des, --- level, --- type, --- cast(ratio as float) as ratio, --- cast(starttime as int) starttime, --- cast(endtime as int) endtime --- from --- dwd.dwd_gnd_ims_tblbrandratio --- where --- UPPER(TYPE) = 'VALUE' --- and UPPER(Level) = 'PACK' --- ) t2 on t1.market = t2.market --- and t1.PACK_COD = t2.PACK_COD --- and t1.YM >= t2.starttime --- and t1.YM <= t2.endtime --- left join ( --UNIT--PACK --- select distinct --- market, --- cmps_cod, --- cmps_des, --- pack_cod, --- pack_des, --- level, --- type, --- cast(ratio as float) as ratio, --- cast(starttime as int) starttime, --- cast(endtime as int) endtime --- from --- dwd.dwd_gnd_ims_tblbrandratio --- where --- UPPER(TYPE) = 'UNIT' --- and UPPER(Level) = 'PACK' --- ) t3 on t1.market = t3.market --- and t1.PACK_COD = t3.PACK_COD --- and t1.YM >= t3.starttime --- and t1.YM <= t3.endtime --- left join ( --COUNTINGUNIT--PACK --- select distinct --- market, --- cmps_cod, --- cmps_des, --- pack_cod, --- pack_des, --- level, --- type, --- cast(ratio as float) as ratio, --- cast(starttime as int) starttime, --- cast(endtime as int) endtime --- from --- dwd.dwd_gnd_ims_tblbrandratio --- where --- UPPER(TYPE) = 'COUNTINGUNIT' --- and UPPER(Level) = 'PACK' --- ) t4 on t1.market = t4.market --- and t1.PACK_COD = t4.PACK_COD --- and t1.YM >= t4.starttime --- and t1.YM <= t4.endtime --- left join ( --VALUE--MOLECULE --- select distinct --- market, --- cmps_cod, --- cmps_des, --- pack_cod, --- pack_des, --- level, --- type, --- cast(ratio as float) as ratio, --- cast(starttime as int) starttime, --- cast(endtime as int) endtime --- from --- dwd.dwd_gnd_ims_tblbrandratio --- where --- UPPER(TYPE) = 'VALUE' --- and UPPER(Level) = 'MOLECULE' --- ) t5 on t1.market = t5.market --- and t1.CMPS_COD = t5.CMPS_COD --- and t1.YM >= t5.starttime --- and t1.YM <= t5.endtime --- left join ( --UNIT--MOLECULE --- select distinct --- market, --- cmps_cod, --- cmps_des, --- pack_cod, --- pack_des, --- level, --- type, --- cast(ratio as float) as ratio, --- cast(starttime as int) starttime, --- cast(endtime as int) endtime --- from --- dwd.dwd_gnd_ims_tblbrandratio --- where --- UPPER(TYPE) = 'UNIT' --- and UPPER(Level) = 'MOLECULE' --- ) t6 on t1.market = t6.market --- and t1.CMPS_COD = t6.CMPS_COD --- and t1.YM >= t6.starttime --- and t1.YM <= t6.endtime --- left join ( --COUNTINGUNIT--MOLECULE --- select distinct --- market, --- cmps_cod, --- cmps_des, --- pack_cod, --- pack_des, --- level, --- type, --- cast(ratio as float) as ratio, --- cast(starttime as int) starttime, --- cast(endtime as int) endtime --- from --- dwd.dwd_gnd_ims_tblbrandratio --- where --- UPPER(TYPE) = 'COUNTINGUNIT' --- and UPPER(Level) = 'MOLECULE' --- ) t7 on t1.market = t7.market --- and t1.CMPS_COD = t7.CMPS_COD --- and t1.YM >= t7.starttime --- and t1.YM <= t7.endtime; - --- COMMAND ---------- - --- DBTITLE 1,overwrite dws.dws_ims_td_market_ratio --- --看市场维度需要用到的Ratio 写入 DWS 备用 --- insert overwrite table dws.dws_ims_td_market_ratio ( --- YM, --- MARKET, --- PACK_COD, --- PACK_DES, --- STGH_DES, --- PACK_LCH, --- PROD_COD, --- CMPS_COD, --- CMPS_DES, --- 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, --- MNFL_COD, --- MNFL_DES, --- CORP_COD, --- CORP_DES, --- BrandType, --- BU, --- Key_Competitor, --- Value_Market_Ratio, --- Unit_Market_Ratio, --- CountingUnit_Market_Ratio, --- PDOT_Market_Ratio, --- ETL_INSERT_DT, --- ETL_UPDATE_DT --- ) --- select --- t1.YM, --- t1.MARKET, --- t1.PACK_COD, --- t1.PACK_DES, --- t1.STGH_DES, --- t1.PACK_LCH, --- t1.PROD_COD, --- t1.CMPS_COD, --- t1.CMPS_DES, --- t1.ATC1_COD, --- t1.ATC2_COD, --- t1.ATC3_COD, --- t1.ATC4_COD, --- t1.APP1_COD, --- t1.APP2_COD, --- t1.APP3_COD, --- t1.BIO_DESC, --- t1.GENE_ORIG_DESC, --- t1.ETH_OTC_DESC, --- t1.NRDL_DESC, --- t1.NRDL_Entry_Date, --- t1.EDL_DESC, --- t1.TCM_DESC, --- t1.PAED_DESC, --- t1.GQCE_DESC, --- t1.VBP_DESC, --- t1.MANU_COD, --- t1.MANU_DES, --- t1.MNFL_COD, --- t1.MNFL_DES, --- t1.CORP_COD, --- t1.CORP_DES, --- t1.BrandType, --- t1.BU, --- t1.Key_Competitor, --- Value_Market_Ratio, --- Unit_Market_Ratio, --- CountingUnit_Market_Ratio, --- PDOT_Market_Ratio, --- from_utc_timestamp (current_timestamp(), 'UTC+8') as ETL_INSERT_DT, --- from_utc_timestamp (current_timestamp(), 'UTC+8') as ETL_UPDATE_DT --- from --- tmp.tmp_ims_td_market_ratio1 t1 \ No newline at end of file diff --git a/EXTERNAL/CHPA/03 dm_ims_td_pack_property.sql:Zone.Identifier b/EXTERNAL/CHPA/03 dm_ims_td_pack_property.sql:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2x 'CHT' - -- insert overwrite table dm.dm_ims_tf_sales_china - -- from tmp_ims_tf_sales_tamarket t1 - -- where t1.audit_cod = 'CHT' and (sales_value<>0 or sales_value_ly<>0) and t1.market not in ('Primary Prevention Market-XZK','Iressa 1L TKI Market' ) - -- union all - -- from tmp_ims_tf_sales_tamarket t1 - -- where t1.audit_cod = 'CHT' and (sales_value<>0 or sales_value_ly<>0) and t1.market in ('Primary Prevention Market-XZK','Iressa 1L TKI Market') - -- insert overwrite table dm.dm_ims_tf_sales - -- from tmp_ims_tf_sales_tamarket t1 - -- where t1.audit_cod <> 'CHT' and t1.market not in ('Primary Prevention Market-XZK','Iressa 1L TKI Market')and (sales_value<>0 or sales_value_ly<>0) - -- union all - -- from tmp_ims_tf_sales_tamarket t1 - -- where t1.audit_cod <> 'CHT' and t1.market in ('Primary Prevention Market-XZK','Iressa 1L TKI Market')and (sales_value<>0 or sales_value_ly<>0) - --- COMMAND ---------- - --- CREATE TABLE catalog_e2_ngbi_qas.dm.dm_ims_tf_sales_china ( --- YYYYMM INT, --- PACK_COD STRING, --- AUDIT_COD STRING, --- SALES_VALUE DECIMAL(38,10), --- SALES_VALUE_LY DECIMAL(38,10), --- SALES_VALUE_L2Y DECIMAL(38,10), --- SALES_UNIT DECIMAL(38,10), --- SALES_UNIT_LY DECIMAL(38,10), --- SALES_UNIT_L2Y DECIMAL(38,10), --- CONUTING_UNIT DECIMAL(38,10), --- CONUTING_UNIT_LY DECIMAL(38,10), --- CONUTING_UNIT_L2Y DECIMAL(38,10), --- PDOT DECIMAL(38,10), --- PDOT_LY DECIMAL(38,10), --- PDOT_L2Y DECIMAL(38,10), --- SALES_VALUE_CAL DECIMAL(38,10), --- SALES_VALUE_CAL_LY DECIMAL(38,10), --- SALES_UNIT_CAL DECIMAL(38,10), --- SALES_UNIT_CAL_LY DECIMAL(38,10), --- ETL_INSERT_DT TIMESTAMP, --- ETL_UPDATE_DT TIMESTAMP) --- USING delta --- LOCATION 'abfss://master@retaildlstoragetest.dfs.core.chinacloudapi.cn/DM/dm_ims_tf_sales_china' - --- COMMAND ---------- - - -- DBTITLE 1,overwrite dm.dm_ims_tf_sales_china - --SALES - --CHINA CHPA数据 - -- t1.market not in ('Primary Prevention Market-XZK','Iressa 1L TKI Market') - -- ,CONUTING_UNIT - -- ,CONUTING_UNIT_LY - -- ,CONUTING_UNIT_L2Y - -- ,SALES_VALUE_CAL - -- ,SALES_VALUE_CAL_LY - -- ,SALES_UNIT_CAL - -- ,SALES_UNIT_CAL_LY - -- from tmp_ims_tf_sales_tamarket t1 - -- where t1.audit_cod = 'CHT' and (sales_value<>0 or sales_value_ly<>0) and t1.market not in ('Primary Prevention Market-XZK','Iressa 1L TKI Market' ) - -- t1.market in ('Primary Prevention Market-XZK','Iressa 1L TKI Market') - -- PDOT as CONUTING_UNIT - -- ,PDOT_LY as CONUTING_UNIT_LY - -- ,PDOT_L2Y as CONUTING_UNIT_L2Y - -- ,SALES_VALUE as SALES_VALUE_CAL - -- ,SALES_VALUE_LY as SALES_VALUE_CAL_LY - -- ,SALES_UNIT as SALES_UNIT_CAL - -- ,SALES_UNIT_LY as SALES_UNIT_CAL_LY - -- from tmp_ims_tf_sales_tamarket t1 - -- where t1.audit_cod = 'CHT' and (sales_value<>0 or sales_value_ly<>0) and t1.market in ('Primary Prevention Market-XZK','Iressa 1L TKI Market') - -- create or replace table dm.dm_ims_tf_sales_china - insert overwrite table dm.dm_ims_tf_sales_china -select distinct - YYYYMM, - -- DAY_DATE, - PACK_COD, - AUDIT_COD, - -- RELATE_FLAG, - -- ORG_KEY, - -- Market, - -- MARKET_PACK_KEY, - -- MARKET_AUDIT_KEY, - SALES_VALUE, - SALES_VALUE_LY, - SALES_VALUE_L2Y, - SALES_UNIT, - SALES_UNIT_LY, - SALES_UNIT_L2Y, - CONUTING_UNIT, - CONUTING_UNIT_LY, - CONUTING_UNIT_L2Y, - PDOT, - PDOT_LY, - PDOT_L2Y, - SALES_VALUE_CAL, - SALES_VALUE_CAL_LY, - SALES_UNIT_CAL, - SALES_UNIT_CAL_LY, - from_utc_timestamp (current_timestamp(), 'UTC+8') ETL_INSERT_DT, - from_utc_timestamp (current_timestamp(), 'UTC+8') ETL_UPDATE_DT -from - tmp_ims_tf_sales_total t1 -where - t1.audit_cod = 'CHT' - and ( - sales_value <> 0 - or sales_value_ly <> 0 - ) - -- and t1.market not in ( - -- 'Primary Prevention Market-XZK', - -- 'Iressa 1L TKI Market' - -- ) --- union all --- select distinct --- YYYYMM, --- DAY_DATE, --- PACK_COD, --- AUDIT_COD, --- RELATE_FLAG, --- ORG_KEY, --- Market, --- MARKET_PACK_KEY, --- MARKET_AUDIT_KEY, --- SALES_VALUE, --- SALES_VALUE_LY, --- SALES_VALUE_L2Y, --- SALES_UNIT, --- SALES_UNIT_LY, --- SALES_UNIT_L2Y, --- PDOT as CONUTING_UNIT, --- PDOT_LY as CONUTING_UNIT_LY, --- PDOT_L2Y as CONUTING_UNIT_L2Y, --- PDOT, --- PDOT_LY, --- PDOT_L2Y, --- SALES_VALUE as SALES_VALUE_CAL, --- SALES_VALUE_LY as SALES_VALUE_CAL_LY, --- SALES_UNIT as SALES_UNIT_CAL, --- SALES_UNIT_LY as SALES_UNIT_CAL_LY, --- from_utc_timestamp (current_timestamp(), 'UTC+8') ETL_INSERT_DT, --- from_utc_timestamp (current_timestamp(), 'UTC+8') ETL_UPDATE_DT --- from --- tmp_ims_tf_sales_tamarket t1 --- where --- t1.audit_cod = 'CHT' --- and ( --- sales_value <> 0 --- or sales_value_ly <> 0 --- ) --- and t1.market in ( --- 'Primary Prevention Market-XZK', --- 'Iressa 1L TKI Market' --- ) - --- COMMAND ---------- - --- CREATE or REPLACE TABLE dm.dm_ims_tf_sales ( --- YYYYMM INT, --- PACK_COD STRING, --- AUDIT_COD STRING, --- SALES_VALUE DECIMAL(38,10), --- SALES_VALUE_LY DECIMAL(38,10), --- SALES_VALUE_L2Y DECIMAL(38,10), --- SALES_UNIT DECIMAL(38,10), --- SALES_UNIT_LY DECIMAL(38,10), --- SALES_UNIT_L2Y DECIMAL(38,10), --- CONUTING_UNIT DECIMAL(38,10), --- CONUTING_UNIT_LY DECIMAL(38,10), --- CONUTING_UNIT_L2Y DECIMAL(38,10), --- PDOT DECIMAL(38,10), --- PDOT_LY DECIMAL(38,10), --- PDOT_L2Y DECIMAL(38,10), --- SALES_VALUE_CAL DECIMAL(38,10), --- SALES_VALUE_CAL_LY DECIMAL(38,10), --- SALES_UNIT_CAL DECIMAL(38,10), --- SALES_UNIT_CAL_LY DECIMAL(38,10), --- ETL_INSERT_DT TIMESTAMP, --- ETL_UPDATE_DT TIMESTAMP) --- USING delta --- LOCATION 'abfss://master@retaildlstoragetest.dfs.core.chinacloudapi.cn/DM/dm_ims_tf_sales' - --- COMMAND ---------- - - -- DBTITLE 1,overwrite dm.dm_ims_tf_sales - --SALES - --CITY - insert overwrite table dm.dm_ims_tf_sales -select distinct - YYYYMM, - -- DAY_DATE, - PACK_COD, - AUDIT_COD, - -- RELATE_FLAG, - -- ORG_KEY, - -- Market, - -- MARKET_PACK_KEY, - -- MARKET_AUDIT_KEY, - SALES_VALUE, - SALES_VALUE_LY, - SALES_VALUE_L2Y, - SALES_UNIT, - SALES_UNIT_LY, - SALES_UNIT_L2Y, - CONUTING_UNIT, - CONUTING_UNIT_LY, - CONUTING_UNIT_L2Y, - PDOT, - PDOT_LY, - PDOT_L2Y, - SALES_VALUE_CAL, - SALES_VALUE_CAL_LY, - SALES_UNIT_CAL, - SALES_UNIT_CAL_LY, - from_utc_timestamp (current_timestamp(), 'UTC+8') ETL_INSERT_DT, - from_utc_timestamp (current_timestamp(), 'UTC+8') ETL_UPDATE_DT -from - tmp_ims_tf_sales_total t1 -where - t1.audit_cod <> 'CHT' - -- and t1.market not in ( - -- 'Primary Prevention Market-XZK', - -- 'Iressa 1L TKI Market' - -- ) - and ( - sales_value <> 0 - or sales_value_ly <> 0 - ) --- union all --- --'Primary Prevention Market-XZK','Iressa 1L TKI Market' 两个市场特殊处理,所有的value都是折算过的 --- select distinct --- YYYYMM, --- DAY_DATE, --- PACK_COD, --- AUDIT_COD, --- RELATE_FLAG, --- ORG_KEY, --- Market, --- MARKET_PACK_KEY, --- MARKET_AUDIT_KEY, --- SALES_VALUE, --- SALES_VALUE_LY, --- SALES_VALUE_L2Y, --- SALES_UNIT, --- SALES_UNIT_LY, --- SALES_UNIT_L2Y, --- PDOT as CONUTING_UNIT, --- PDOT_LY as CONUTING_UNIT_LY, --- PDOT_L2Y as CONUTING_UNIT_L2Y, --- PDOT, --- PDOT_LY, --- PDOT_L2Y, --- SALES_VALUE as SALES_VALUE_CAL, --- SALES_VALUE_LY as SALES_VALUE_CAL_LY, --- SALES_UNIT as SALES_UNIT_CAL, --- SALES_UNIT_LY as SALES_UNIT_CAL_LY, --- from_utc_timestamp (current_timestamp(), 'UTC+8') ETL_INSERT_DT, --- from_utc_timestamp (current_timestamp(), 'UTC+8') ETL_UPDATE_DT --- from --- tmp_ims_tf_sales_tamarket t1 --- where --- t1.audit_cod <> 'CHT' --- -- and t1.market in ( --- -- 'Primary Prevention Market-XZK', --- -- 'Iressa 1L TKI Market' --- -- ) --- -- and ( --- -- sales_value <> 0 --- -- or sales_value_ly <> 0 --- -- ) - --- COMMAND ---------- - - -- DBTITLE 1,插入逻辑2-需保留 - -- -- 关键词 - -- audit_cod <> 'CHT' -》 dm.dm_ims_tf_sales - -- audit_cod = 'CHT' -》dm.dm_ims_tf_sales_china - -- KCT 所有城市的IMS数据 基于 dm.dm_ims_tf_sales - -- ROC 其他城市的IMS数据计算 ROC = CHT-KCT - --- COMMAND ---------- - - -- DBTITLE 1,overwrite tmp.tmp_ims_tf_sales_kct - -- 所有城市汇总的IMS数据计算 KCT=sum(all city) - -- create or replace table tmp.tmp_ims_tf_sales_kct - insert overwrite table tmp.tmp_ims_tf_sales_kct -select - YYYYMM, - PACK_COD, - 'KCT' as AUDIT_COD, - -- Related_flag, - -- 'KCT' as ORG_KEY, - -- Market, - -- MARKET_PACK_KEY, - -- concat (Market, '_KCT') as MARKET_AUDIT_KEY, - sum(SALES_VALUE) as SALES_VALUE, - sum(SALES_VALUE_LY) as SALES_VALUE_LY, - sum(SALES_VALUE_L2Y) as SALES_VALUE_L2Y, - sum(SALES_UNIT) as SALES_UNIT, - sum(SALES_UNIT_LY) as SALES_UNIT_LY, - sum(SALES_UNIT_L2Y) as SALES_UNIT_L2Y, - sum(CONUTING_UNIT) as CONUTING_UNIT, - sum(CONUTING_UNIT_LY) as CONUTING_UNIT_LY, - sum(CONUTING_UNIT_L2Y) as CONUTING_UNIT_L2Y, - sum(PDOT) as PDOT, - sum(PDOT_LY) as PDOT_LY, - sum(PDOT_LY) as PDOT_L2Y, - sum(SALES_VALUE_CAL) as SALES_VALUE_CAL, - sum(SALES_VALUE_CAL_LY) as SALES_VALUE_CAL_LY, - sum(SALES_UNIT_CAL) as SALES_UNIT_CAL, - sum(SALES_UNIT_CAL_LY) as SALES_UNIT_CAL_LY -from - dm.dm_ims_tf_sales -group by - YYYYMM, - PACK_COD - -- Related_flag, - -- Market, - -- MARKET_PACK_KEY; - --- COMMAND ---------- - --- DBTITLE 1,overwrite tmp.tmp_ims_tf_sales_roc --- 其他城市的IMS数据计算 ROC=CHT-KCT -insert overwrite table tmp.tmp_ims_tf_sales_roc -WITH - DIM_YM_PACK_MARKT ( - SELECT - YYYYMM as CHINA_YYYYMM, - PACK_COD as CHINA_PACK_COD - -- ,CHINA_Market - from - dm.dm_ims_tf_sales_china - group by - YYYYMM, - PACK_COD - -- ,CHINA_Market - UNION - SELECT - YYYYMM, - PACK_COD - -- ,Market - from - tmp.tmp_ims_tf_sales_kct - group by - YYYYMM, - PACK_COD - -- ,Market - ), - CHPA_SALES ( - select - YYYYMM, - PACK_COD, - -- CHINA_Market, - sum(SALES_VALUE) as CHINA_SALES_VALUE, - sum(SALES_VALUE_LY) as CHINA_SALES_VALUE_LY, - sum(SALES_VALUE_L2Y) as CHINA_SALES_VALUE_L2Y, - sum(SALES_UNIT) as CHINA_SALES_UNIT, - sum(SALES_UNIT_LY) as CHINA_SALES_UNIT_LY, - sum(SALES_UNIT_L2Y) as CHINA_SALES_UNIT_L2Y, - sum(CONUTING_UNIT) as CHINA_CONUTING_UNIT, - sum(CONUTING_UNIT_LY) as CHINA_CONUTING_UNIT_LY, - sum(CONUTING_UNIT_L2Y) as CHINA_CONUTING_UNIT_L2Y, - sum(PDOT) as CHINA_PDOT, - sum(PDOT_LY) as CHINA_PDOT_LY, - sum(PDOT_L2Y) as CHINA_PDOT_L2Y, - sum(SALES_VALUE_CAL) as SALES_VALUE_CAL, - sum(SALES_VALUE_CAL_LY) as SALES_VALUE_CAL_LY, - sum(SALES_UNIT_CAL) as SALES_UNIT_CAL, - sum(SALES_UNIT_CAL_LY) as SALES_UNIT_CAL_LY - from - dm.dm_ims_tf_sales_china - group by - YYYYMM, - PACK_COD - -- ,CHINA_Market - ), - FABO_SALES ( - select - YYYYMM, - PACK_COD, - -- Market, - sum(SALES_VALUE) as SALES_VALUE, - sum(SALES_VALUE_LY) as SALES_VALUE_LY, - sum(SALES_VALUE_L2Y) as SALES_VALUE_L2Y, - sum(SALES_UNIT) as SALES_UNIT, - sum(SALES_UNIT_LY) as SALES_UNIT_LY, - sum(SALES_UNIT_L2Y) as SALES_UNIT_L2Y, - sum(CONUTING_UNIT) as CONUTING_UNIT, - sum(CONUTING_UNIT_LY) as CONUTING_UNIT_LY, - sum(CONUTING_UNIT_L2Y) as CONUTING_UNIT_L2Y, - sum(PDOT) as PDOT, - sum(PDOT_LY) as PDOT_LY, - sum(PDOT_L2Y) as PDOT_L2Y, - sum(SALES_VALUE_CAL) as SALES_VALUE_CAL, - sum(SALES_VALUE_CAL_LY) as SALES_VALUE_CAL_LY, - sum(SALES_UNIT_CAL) as SALES_UNIT_CAL, - sum(SALES_UNIT_CAL_LY) as SALES_UNIT_CAL_LY - from - tmp.tmp_ims_tf_sales_kct - group by - YYYYMM, - PACK_COD - -- ,Market - ) -SELECT - t1.CHINA_YYYYMM as YYYYMM, - t1.CHINA_PACK_COD as PACK_COD, - 'ROC' as AUDIT_COD, - -- null as Related_flag, - -- 'ROC' as ORG_KEY, - -- t1.CHINA_Market as Market, - -- concat (t1.CHINA_Market, '_', t1.china_pack_cod) as MARKET_PACK_KEY, - -- concat (t1.CHINA_Market, '_ROC') as MARKET_AUDIT_KEY, - nvl (t2.CHINA_SALES_VALUE, 0) - nvl (t3.SALES_VALUE, 0) as SALES_VALUE, - nvl (t2.CHINA_SALES_VALUE_LY, 0) - nvl (t3.SALES_VALUE_LY, 0) as SALES_VALUE_LY, - nvl (t2.CHINA_SALES_VALUE_L2Y, 0) - nvl (t3.SALES_VALUE_L2Y, 0) as SALES_VALUE_L2Y, - nvl (t2.CHINA_SALES_UNIT, 0) - nvl (t3.SALES_UNIT, 0) as SALES_UNIT, - nvl (t2.CHINA_SALES_UNIT_L2Y, 0) - nvl (t3.SALES_UNIT_L2Y, 0) as SALES_UNIT_LY, - nvl (t2.CHINA_SALES_UNIT_LY, 0) - nvl (t3.SALES_UNIT_LY, 0) as SALES_UNIT_L2Y, - nvl (t2.CHINA_CONUTING_UNIT, 0) - nvl (t3.CONUTING_UNIT, 0) as CONUTING_UNIT, - nvl (t2.CHINA_CONUTING_UNIT_LY, 0) - nvl (t3.CONUTING_UNIT_LY, 0) as CONUTING_UNIT_LY, - nvl (t2.CHINA_CONUTING_UNIT_L2Y, 0) - nvl (t3.CONUTING_UNIT_L2Y, 0) as CONUTING_UNIT_L2Y, - nvl (t2.CHINA_PDOT, 0) - nvl (t3.PDOT, 0) as PDOT, - nvl (t2.CHINA_PDOT_LY, 0) - nvl (t3.PDOT_LY, 0) as PDOT_LY, - nvl (t2.CHINA_PDOT_L2Y, 0) - nvl (t3.PDOT_L2Y, 0) as PDOT_L2Y, - nvl (t2.SALES_VALUE_CAL, 0) - nvl (t3.SALES_VALUE_CAL, 0) as SALES_VALUE_CAL, - nvl (t2.SALES_VALUE_CAL_LY, 0) - nvl (t3.SALES_VALUE_CAL_LY, 0) as SALES_VALUE_CAL_LY, - nvl (t2.SALES_UNIT_CAL, 0) - nvl (t3.SALES_UNIT_CAL, 0) as SALES_UNIT_CAL, - nvl (t2.SALES_UNIT_CAL_LY, 0) - nvl (t3.SALES_UNIT_CAL_LY, 0) as SALES_UNIT_CAL_LY -FROM - dim_ym_pack_markt t1 - LEFT JOIN chpa_sales t2 on - -- t1.china_market = t2.china_market and - t1.china_yyyymm = t2.yyyymm - and t1.china_pack_cod = t2.pack_cod - LEFT JOIN fabo_sales t3 on - -- t1.china_market = t3.market and - t1.china_yyyymm = t3.yyyymm - and t1.china_pack_cod = t3.pack_cod - --- COMMAND ---------- - - -- DBTITLE 1,insert into dm.dm_ims_tf_sales - --将ROC的数据写入dm.dm_ims_tf_sales -insert into - dm.dm_ims_tf_sales -select distinct - YYYYMM, - -- concat (left (YYYYMM, 4), '-', right (YYYYMM, 2), '-01') as DAY_DATE, - PACK_COD, - AUDIT_COD, - -- RELATED_FLAG, - -- ORG_KEY, - -- Market, - -- MARKET_PACK_KEY, - -- MARKET_AUDIT_KEY, - SALES_VALUE, - SALES_VALUE_LY, - SALES_VALUE_L2Y, - SALES_UNIT, - SALES_UNIT_LY, - SALES_UNIT_L2Y, - CONUTING_UNIT, - CONUTING_UNIT_LY, - CONUTING_UNIT_L2Y, - PDOT, - PDOT_LY, - PDOT_L2Y, - SALES_VALUE_CAL, - SALES_VALUE_CAL_LY, - SALES_UNIT_CAL, - SALES_UNIT_CAL_LY, - from_utc_timestamp (current_timestamp(), 'UTC+8') ETL_INSERT_DT, - from_utc_timestamp (current_timestamp(), 'UTC+8') ETL_UPDATE_DT -from - tmp.tmp_ims_tf_sales_roc -where - sales_value <> 0 - or sales_value_ly <> 0; \ No newline at end of file diff --git a/EXTERNAL/CHPA/03 dm_ims_tf_sales.sql:Zone.Identifier b/EXTERNAL/CHPA/03 dm_ims_tf_sales.sql:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2x'A5Z' -) ------------------------所有cv 数据 -,all_cv_data as ( -select - yyyymm, - pack_id, - iqvia_pack_code, - platform, - store_type, - store_name, - corp_cod, - sales_value, - sales_unit, - counting_unit, - 'CV' flag, - ta -from cv_corp_data -union all ------------------------倒减出cv_others数据 -select - t1.yyyymm, - 'CV_OTHERS' as pack_id, - 'CV_OTHERS' as iqvia_pack_code, - t1.platform, - t1.store_type, - case when t1.store_type = '自营旗舰' then 'CV_OTHERS_SO' when t1.store_type = '第三方' then 'CV_OTHERS_POP' end store_name, - 'CV_OTHERS' as corp_cod, - t2.sales_value - t1.sales_value as sales_value, - 0,0, - 'CV' as flag, - 'CV_OTHERS' as ta -from( ------------------------所有的cv数据 - select - yyyymm, - platform, - case when store_type = '平台店' or store_type = '品牌店' then '自营旗舰' else store_type end store_type, - sum(sales_value) sales_value - from cv_corp_data - group by 1,2,3 -)t1 -left join( ------------------------cv大数 - select - yyyymm, - platform, - case when store_type = '三方' then '第三方' else store_type end store_type, - sum(sales_value) sales_value - from dws.dws_zk_ec_by_ta_top_corp - where ta = 'CV' and lower(rank) = 'total' - group by 1,2,3 -)t2 -on t1.yyyymm = t2.yyyymm and t1.platform = t2.platform and t1.store_type = t2.store_type -),non_cv_all_data as ( - select - t1.yyyymm, - t1.pack_id, - t1.iqvia_pack_code, - t1.platform, - t1.store_type, - t1.store_name, - t2.corp_cod, - t1.sales_value, - t1.sales_unit, - t1.counting_unit, - case when t2.ta in ('DM','RD') then 'CVRM' else '' end flag, - max(t2.ta) ta - from dws.dws_zk_ec_sales t1 - left join (select distinct iqvia_pack_code,ta,corp_cod,product_id from tmp.tmp_zk_ec_pack_property_corp) t2 - on t1.pack_id = t2.product_id - where nvl(t2.TA,'') <> 'CV' - group by 1,2,3,4,5,6,7,8,9,10,11 -) -select * from all_cv_data -union -select * from non_cv_all_data --- select * from non_cv_all_data order by sales_value desc - - - --- COMMAND ---------- - ---cvrm倒减:关联加工好的配置表,获取ta信息进行倒减 -insert overwrite table tmp.tmp_dm_zk_ec_sales_cv_tmp2 -with all_data as ( -select - yyyymm, - pack_id, - iqvia_pack_code, - platform, - store_type, - store_name, - corp_cod, - sales_value, - sales_unit, - counting_unit, - flag -from tmp.tmp_dm_zk_ec_sales_cv_tmp -union all -select - t1.yyyymm, - 'CVRM_AZ_OTHERS' as pack_id, - 'CVRM_AZ_OTHERS' as iqvia_pack_code, - t1.platform, - t1.store_type, - case when t1.store_type = '自营旗舰' then 'CVRM_AZ_OTHERS_SO' when t1.store_type = '第三方' then 'CVRM_AZ_OTHERS_POP' end store_name, - t1.corp_cod, - t2.sales_value - t1.sales_value as sales_value, - 0,0, - 'CVRM' as flag -from( - select - yyyymm, - corp_cod, - platform, - case when store_type = '平台店' or store_type = '品牌店' then '自营旗舰' else store_type end store_type, - sum(sales_value) sales_value - from tmp.tmp_dm_zk_ec_sales_cv_tmp - where corp_cod = 'A5Z' and flag in ('CV','CVRM') - group by 1,2,3,4 -)t1 -left join ( - select - yyyymm, - CORP_COD, - platform, - case when store_type = '三方' then '第三方' else store_type end store_type, - sum(sales_value) sales_value - from dws.dws_zk_ec_by_ta_top_corp - where CORP_COD = 'A5Z' and ta = 'CVRM' - group by 1,2,3,4 -)t2 -on t1.yyyymm = t2.yyyymm and t1.platform = t2.platform and t1.store_type = t2.store_type -) -select - yyyymm, - pack_id, - iqvia_pack_code, - platform, - store_type, - store_name, - corp_cod, - sales_value, - sales_unit, - counting_unit, - flag -from all_data -union all -select - t1.yyyymm, - 'CVRM_OTHERS' as pack_id, - 'CVRM_OTHERS' as iqvia_pack_code, - t1.platform, - t1.store_type, - case when t1.store_type = '自营旗舰' then 'CVRM_OTHERS_SO' when t1.store_type = '第三方' then 'CVRM_OTHERS_POP' end store_name, - 'CVRM_OTHERS' as corp_cod, - t2.sales_value - t1.sales_value as sales_value, - 0,0, - 'CVRM' flag -from ( - select - yyyymm, - platform, - case when store_type = '平台店' or store_type = '品牌店' then '自营旗舰' else store_type end store_type, - sum(sales_value) sales_value - from all_data - where flag in ('CV','CVRM') - group by 1,2,3 -)t1 -left join( - select - yyyymm, - platform, - case when store_type = '三方' then '第三方' else store_type end store_type, - sum(sales_value) sales_value - from dws.dws_zk_ec_by_ta_top_corp - where ta = 'CVRM' and lower(rank) = 'total' - group by 1,2,3 -)t2 -on t1.yyyymm = t2.yyyymm and t1.platform = t2.platform and t1.store_type = t2.store_type - - - - - - --- COMMAND ---------- - ---ta倒减并写入事实表:根据加工好的倒减底表中ta字段信息获取ta总数,进行倒减 -insert overwrite table tmp.tmp_dm_zk_ec_sales -with all_data as ( -select distinct - yyyymm, - pack_id, - iqvia_pack_code, - platform, - store_type, - store_name, - corp_cod, - sales_value, - sales_unit, - counting_unit, - flag -from tmp.tmp_dm_zk_ec_sales_cv_tmp2 -union all -select - t1.yyyymm, - 'OTHERS_AZ_TA' as pack_id, - 'OTHERS_AZ_TA' as iqvia_pack_code, - t1.platform, - t1.store_type, - case when t1.store_type = '自营旗舰' then 'OTHERS_AZ_TA_SO' when t1.store_type = '第三方' then 'OTHERS_AZ_TA_POP' end store_name, - t1.corp_cod, - t2.sales_value - t1.sales_value as sales_value, - 0,0, - 'OTHERS_AZ_TA' as flag -from( - select - yyyymm, - corp_cod, - platform, - case when store_type = '平台店' or store_type = '品牌店' then '自营旗舰' else store_type end store_type, - sum(sales_value) sales_value - from tmp.tmp_dm_zk_ec_sales_cv_tmp2 - where corp_cod = 'A5Z' - group by 1,2,3,4 -)t1 -left join ( - select - yyyymm, - platform, - store_type, - sum(sales_value) sales_value - from dws.dws_zk_ec_by_ta_top_corp - where CORP_COD = 'A5Z' and ta = 'RX Total' - group by 1,2,3 -)t2 -on t1.yyyymm = t2.yyyymm and t1.platform = t2.platform and t1.store_type = t2.store_type -),result as ( -select - yyyymm, - pack_id, - iqvia_pack_code, - platform, - store_type, - store_name, - corp_cod, - sales_value, - sales_unit, - counting_unit, - flag -from all_data -union all -select - t1.yyyymm, - 'OTHERS_TA' as pack_id, - 'OTHERS_TA' as iqvia_pack_code, - t1.platform, - t1.store_type, - case when t1.store_type = '自营旗舰' then 'OTHERS_TA_SO' when t1.store_type = '第三方' then 'OTHERS_TA_POP' end store_name, - 'OTHERS_TA' as corp_cod, - t2.sales_value - t1.sales_value as sales_value, - 0,0, - 'OTHERS_TA' as flag -from( - select - yyyymm, - platform, - case when store_type = '平台店' or store_type = '品牌店' then '自营旗舰' else store_type end store_type, - sum(sales_value) sales_value - from all_data - group by 1,2,3 -)t1 -left join( - select - yyyymm, - platform, - store_type, - sum(sales_value) sales_value - from dws.dws_zk_ec_by_ta_top_corp - where lower(rank) = 'total' and ta = 'RX Total' - group by 1,2,3 - )t2 -on t1.yyyymm = t2.yyyymm and t1.platform = t2.platform and t1.store_type = t2.store_type -) -select distinct - yyyymm, - pack_id, - iqvia_pack_code, - corp_cod, - 'ROC' as audit_cod, - platform, - case when store_type = '第三方' then 'POP' when store_type in ('平台店','品牌店','自营旗舰') then 'SO' end store_type, - store_name, - case when iqvia_pack_code like '%OTHERS%' then 0 else 1 end PACK_FLAG, - case when iqvia_pack_code like '%OTHERS%' then 0 else 1 end PROD_FLAG, - flag, - 'EC(Monthly)' DATA_SOURCE, - sum(sales_value) sales_value, - sum(sales_unit) sales_unit, - sum(counting_unit) counting_unit -from result -group by 1,2,3,4,5,6,7,8,9,10,11,12 - - - - - --- COMMAND ---------- - -insert overwrite table dm.dm_zk_ec_sales -select -yyyymm, -max(pack_id) as pack_id, -iqvia_pack_code, -corp_cod, -audit_cod, -platform, -store_type, -store_name, -max(PACK_FLAG) as PACK_FLAG, -max(PROD_FLAG) as PROD_FLAG, -max(flag) as flag, -DATA_SOURCE, -sum(sales_value) as sales_value, -sum(sales_value_ly) as sales_value_ly, -sum(sales_unit) as sales_unit, -sum(sales_unit_ly) as sales_unit_ly, -sum(counting_unit) as counting_unit, -sum(counting_unit_ly) as counting_unit_ly -from -( -select -yyyymm, -pack_id, -iqvia_pack_code, -corp_cod, -audit_cod, -platform, -store_type, -store_name, -PACK_FLAG, -PROD_FLAG, -flag, -DATA_SOURCE, -sales_value, -0 as sales_value_ly, -sales_unit, -0 as sales_unit_ly, -counting_unit, -0 as counting_unit_ly -from tmp.tmp_dm_zk_ec_sales -union all -select -cast(yyyymm + 100 as int) as yyyymm, -null as pack_id, -iqvia_pack_code, -corp_cod, -audit_cod, -platform, -store_type, -store_name, -case when upper(iqvia_pack_code) like '%OTHERS%' then 0 else 1 end as PACK_FLAG, -case when upper(iqvia_pack_code) like '%OTHERS%' then 0 else 1 end as PROD_FLAG, -'' as flag, -DATA_SOURCE, -0 as sales_value, -sales_value as sales_value_ly, -0 as sales_unit, -sales_unit as sales_unit_ly, -0 as counting_unit, -counting_unit as counting_unit_ly -from tmp.tmp_dm_zk_ec_sales -where cast(yyyymm + 100 as int) <= (select max(yyyymm) from tmp.tmp_dm_zk_ec_sales) -) t -group by yyyymm, -iqvia_pack_code, -corp_cod, -audit_cod, -platform, -store_type, -store_name, -DATA_SOURCE - --- COMMAND ---------- - -insert overwrite table dws.dws_zk_ec_pack_property -select - * - ,from_utc_timestamp(current_timestamp(),'UTC+8' ) etl_insert_dt - ,from_utc_timestamp(current_timestamp(),'UTC+8' ) etl_update_dt -from tmp.tmp_ec_temp_market -union all -select -'' iqvia_lineno -,iqvia_pack_code as iqvia_pack_code -,'' prod_cod -,'' iqvia_notes -,'' new_pack_flag -,'' is_exists_chpa -,iqvia_pack_code as product_id -,'' prescription_nature -,'' medicine_type -,'' zk_medicine_tier1 -,'' zk_medicine_tier2 -,'' zk_medicine_tier3 -,'' zk_medicine_tier4 -,'' common_name -,'' dosage_form -,'' user_type -,'' category_name -,'' product_name -,'' brand_name -,'' zk_manu_des -,'' zk_corp_des -,'' zk_pack_des -,'' counting_unit_a -,'' dosage_unit_a -,'' unit_a -,'' 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 -,'' cmps_cod -,'' cmps_des -,'' cmps_des_c -,corp_cod as 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 -,'Others' prod_des -,'Others' prod_des_c -,'' tcm_desc -,'' vbp_desc -,'' unit -,'' counting_unit -,'' dosage_unit -,'' NRDL_ENTRY_DATE -,'NON MARKET' Market -,'' bu -,1 extend_market_ratio -,case when iqvia_pack_code like '%AZ%' then 'Y' else 'N' end is_az -,from_utc_timestamp(current_timestamp(),'UTC+8' ) etl_insert_dt -,from_utc_timestamp(current_timestamp(),'UTC+8' ) etl_update_dt -from (select distinct iqvia_pack_code,corp_cod from dm.dm_zk_ec_sales where iqvia_pack_code not in (select distinct iqvia_pack_code from tmp.tmp_ec_temp_market)) - - --- COMMAND ---------- - -insert overwrite table tmp.tmp_dm_zk_ec_pack_property -select -a.iqvia_lineno -,a.iqvia_pack_code -,a.prod_cod -,a.iqvia_notes -,a.new_pack_flag -,a.is_exists_chpa -,a.product_id -,a.prescription_nature -,a.medicine_type -,a.zk_medicine_tier1 -,a.zk_medicine_tier2 -,a.zk_medicine_tier3 -,a.zk_medicine_tier4 -,a.common_name -,a.dosage_form -,a.user_type -,a.category_name -,a.product_name -,a.brand_name -,a.zk_manu_des -,a.zk_corp_des -,a.zk_pack_des -,a.counting_unit_a -,a.dosage_unit_a -,a.unit_a -,a.app1_cod -,a.app1_des -,a.app1_des_c -,a.app2_cod -,a.app2_des -,a.app2_des_c -,a.app3_cod -,a.app3_des -,a.app3_des_c -,a.atc1_cod -,a.atc1_des -,a.atc1_des_c -,a.atc2_cod -,a.atc2_des -,a.atc2_des_c -,a.atc3_cod -,a.atc3_des -,a.atc3_des_c -,a.atc4_cod -,a.atc4_des -,a.atc4_des_c -,a.bio_desc -,a.cmps_cod -,a.cmps_des -,a.cmps_des_c -,COALESCE(c.corp_cod,b.corp_cod,a.corp_cod) corp_cod -,COALESCE(c.corp_des,b.corp_des,a.corp_des) corp_des -,COALESCE(d.corp_des_c,a.corp_des_c ) corp_des_c -,a.edl_desc -,a.eth_otc_desc -,a.gene_orig_desc -,a.gqce_desc -,COALESCE(c.manu_cod,b.manu_cod,a.manu_cod) manu_cod -,COALESCE(c.manu_des,b.manu_des,a.manu_des) manu_des -,COALESCE(e.manu_des_c,a.manu_des_c) manu_des_c -,a.mnfl_cod -,a.mnfl_des -,a.nrdl_desc -,a.pack_des -,a.stgh_des -,a.pack_lch -,a.paed_desc -,a.prod_des -,a.prod_des_c -,a.tcm_desc -,a.vbp_desc -,a.unit -,a.counting_unit -,a.dosage_unit -,a.NRDL_ENTRY_DATE -,a.Market -,a.bu -,a.extend_market_ratio -,a.is_az -from dws.dws_zk_ec_pack_property a -left join (select right(concat('000000000',prod_cod ),9) prod_cod,corp_cod,corp_des,manu_cod,manu_des from dwd.dwd_gnd_tbl_corp_change where pack_cod is null ) b -on right(concat('000000000',A.prod_cod ),9)= b.prod_cod -left join (select if( pack_cod REGEXP '^[0-9]',right(concat('000000000000',pack_cod),12),pack_cod) pack_cod,corp_cod,corp_des,manu_cod,manu_des from dwd.dwd_gnd_tbl_corp_change where pack_cod is not null ) c -on a.iqvia_pack_code = c.pack_cod -left join (select distinct corp_cod,corp_des_c from dwd.dwd_gnd_ext_retail_pack_property) d -on coalesce(C.corp_cod,B.corp_cod ) = d.corp_cod -Left join (select distinct manu_cod,manu_des,manu_des_c from dwd.dwd_gnd_ext_retail_pack_property) e -On coalesce(C.manu_cod,B.manu_cod ) = e.manu_cod - --- COMMAND ---------- - -------将事实表倒减之后的维度信息补充到维度表里 -insert overwrite table dm.dm_zk_ec_pack_property -select - CASE when a.iqvia_pack_code IN ('CVRM_AZ_OTHERS','CVRM_OTHERS') THEN 'CVRM_OTHER Market' - WHEN a.iqvia_pack_code IN ('CV_AZ_OTHERS','CV_OTHERS') THEN 'CV_OTHER Market' - WHEN A.iqvia_pack_code IN ('OTHERS_AZ_TA','OTHERS_TA') THEN 'OTHERS Market' - ELSE a.market - END ||'_'||a.iqvia_pack_code MARKET_PACK_KEY -,a.iqvia_lineno -,a.iqvia_pack_code -,a.prod_cod -,a.iqvia_notes -,a.new_pack_flag -,a.is_exists_chpa -,'' Family_Code -,'' Family_Name -,'' BrandType -,'' AZ_MAIN -,'' AZ_Related -,t5.KEY_COMPETITOR -,a.product_id -,a.prescription_nature -,a.medicine_type -,a.zk_medicine_tier1 -,a.zk_medicine_tier2 -,a.zk_medicine_tier3 -,a.zk_medicine_tier4 -,a.common_name -,a.dosage_form -,a.user_type -,a.category_name -,a.product_name -,a.brand_name -,a.zk_manu_des -,a.zk_corp_des -,a.zk_pack_des -,a.counting_unit_a -,a.dosage_unit_a -,a.unit_a -,a.app1_cod -,a.app1_des -,a.app1_des_c -,a.app2_cod -,a.app2_des -,a.app2_des_c -,a.app3_cod -,a.app3_des -,a.app3_des_c -,a.atc1_cod -,a.atc1_des -,a.atc1_des_c -,a.atc2_cod -,a.atc2_des -,a.atc2_des_c -,a.atc3_cod -,a.atc3_des -,a.atc3_des_c -,a.atc4_cod -,a.atc4_des -,a.atc4_des_c -,a.bio_desc -,a.cmps_cod -,a.cmps_des -,a.cmps_des_c -,CASE WHEN a.iqvia_pack_code LIKE '%AZ%' THEN 'A5Z' else a.CORP_COD END - corp_cod -,CASE - WHEN a.iqvia_pack_code LIKE '%AZ%' THEN 'ASTRAZENECA' - WHEN a.corp_des like '%GROUP%' THEN replace(a.corp_des,' GROUP','') - else a.CORP_DES END corp_des -,CASE WHEN a.iqvia_pack_code LIKE '%AZ%' THEN '阿斯利康制药集团' else a.CORP_DES_C END - CORP_DES_C -,a.edl_desc -,a.eth_otc_desc -,a.gene_orig_desc -,a.gqce_desc -,a.manu_cod -,a.manu_des -,a.manu_des_c -,a.mnfl_cod -,a.mnfl_des -,a.nrdl_desc -,a.pack_des -,a.stgh_des -,a.pack_lch -,a.paed_desc -,a.prod_des -,a.prod_des_c -,a.tcm_desc -,a.vbp_desc -,a.unit -,a.counting_unit -,a.dosage_unit -,a.NRDL_ENTRY_DATE -,CASE WHEN a.iqvia_pack_code IN ('CVRM_AZ_OTHERS','CVRM_OTHERS') THEN 'CVRM_OTHER Market' - WHEN a.iqvia_pack_code IN ('CV_AZ_OTHERS','CV_OTHERS') THEN 'CV_OTHER Market' - WHEN A.iqvia_pack_code IN ('OTHERS_AZ_TA','OTHERS_TA') THEN 'OTHERS Market' - ELSE a.market - END market -,a.bu -,a.extend_market_ratio -,a.is_az -,nvl(b.class, 'Others') class -,CASE WHEN a.iqvia_pack_code IN ('CVRM_AZ_OTHERS','CVRM_OTHERS') THEN 'CVRM' - WHEN a.iqvia_pack_code IN ('CV_AZ_OTHERS','CV_OTHERS') THEN 'CV' - ELSE c.ta - END TA -from tmp.tmp_dm_zk_ec_pack_property a -left join dwd.dwd_gnd_ext_retail_dim_ta c -on c.market = a.Market -left join dwd.dwd_gnd_tblclass b -on a.Market = case when b.market is null then a.Market else b.market end -and nvl(a.iqvia_pack_code,'') = case when b.pack_code is null then nvl(a.iqvia_pack_code,'') else b.pack_code end -and nvl(a.prod_cod,'') = case when b.product_code is null then nvl(a.prod_cod,'') else b.product_code end -and nvl(a.cmps_cod,'') = case when b.molecule_code is null then nvl(a.cmps_cod,'') else right(concat('000000',b.molecule_code),6) end -and nvl(a.corp_cod,'') = case when b.corporation_code is null then nvl(a.corp_cod,'') else b.corporation_code end -and nvl(a.manu_cod,'') = case when b.manufacturer_code is null then nvl(a.manu_cod,'') else b.manufacturer_code end -and nvl(a.app1_cod,'') = case when b.nfc1_code is null then nvl(a.app1_cod,'') else b.nfc1_code end -and nvl(a.app2_cod,'') = case when b.nfc2_code is null then nvl(a.app2_cod,'') else b.nfc2_code end -and nvl(a.app3_cod,'') = case when b.nfc3_code is null then nvl(a.app3_cod,'') else b.nfc3_code end -and nvl(a.atc1_cod,'') = case when b.atc1_code is null then nvl(a.atc1_cod,'') else b.atc1_code end -and nvl(a.atc2_cod,'') = case when b.atc2_code is null then nvl(a.atc2_cod,'') else b.atc2_code end -and nvl(a.atc3_cod,'') = case when b.atc3_code is null then nvl(a.atc3_cod,'') else b.atc3_code end -and nvl(a.atc4_cod,'') = case when b.atc4_code is null then nvl(a.atc4_cod,'') else b.atc4_code end -and nvl(a.stgh_des,'') = case when b.strength is null then nvl(a.stgh_des,'') else b.strength end -left join (select distinct MARKET,PACK_CODE as PACK_COD,KEY_COMPETITOR from DM.DM_TD_EXT_CHPA_MARKET_PACK_MAPPING) t5 -on a.market = t5.MARKET -and a.iqvia_pack_code = t5.PACK_COD - - - --- COMMAND ---------- - -insert overwrite table dm.dm_zk_ec_market_property -select distinct -iqvia_pack_code,market,ta -from dm.dm_zk_ec_pack_property - --- COMMAND ---------- - -insert overwrite table dm.dm_zk_ec_market_ratio -select distinct - concat(a.Market,'_',a.iqvia_pack_code) as market_pack_key, - a.iqvia_pack_code as pack_cod, - a.prod_des, - a.cmps_des, - a.corp_cod, - a.Market, - a.extend_market_ratio as value_market_ratio, - a.extend_market_ratio as unit_market_ratio, - coalesce( - case when c.ratio is null then a.extend_market_ratio*d.ratio - else a.extend_market_ratio*c.ratio end,1) as countingunit_market_ratio -from tmp.tmp_ec_temp_market a -left join (--pack - select - market, - cmps_cod, - cmps_des, - if( pack_cod REGEXP '^[0-9]',right(concat('000000000000',pack_cod),12),pack_cod) pack_cod,--right(concat('0000000',pack_cod ),7) - pack_des, - level, - type, - cast(ratio as float) as ratio, - cast(starttime as int) starttime, - cast (endtime as int) endtime - from dwd.dwd_gnd_ims_tblbrandratio - where UPPER(TYPE) = 'COUNTINGUNIT' and UPPER(Level) = 'PACK' -)c on a.Market = c.market and a.iqvia_pack_code = if( c.pack_cod REGEXP '^[0-9]',right(concat('000000000000',c.pack_cod),12),c.pack_cod)--right(concat('0000000',c.pack_cod),7) -left join(--molecule - select - market, - cmps_cod, - cmps_des, - if( pack_cod REGEXP '^[0-9]',right(concat('000000000000',pack_cod),12),pack_cod) pack_cod,--right(concat('0000000',pack_cod ),7) - pack_des, - level, - type, - cast(ratio as float) as ratio, - cast(starttime as int) starttime, - cast (endtime as int) endtime - from dwd.dwd_gnd_ims_tblbrandratio - where UPPER(TYPE) = 'COUNTINGUNIT' and UPPER(Level) = 'MOLECULE' -)d on a.Market = d.market and a.cmps_cod = right(concat('000000',d.cmps_cod ),6) - --- COMMAND ---------- - -create or replace table dm.dm_zk_ec_geo -using delta as -select - 'ROC' as audit_cod, - '全国' as city_c, - 'national' as city_e, - '全国' as province_c, - 'national' as province_e; - --- COMMAND ---------- - ----------------------------------------将直取部分数据处理成KPI形式----------------------------------------- -insert overwrite table tmp.tmp_zk_ec_sales_kpi_tmp -select - b.CORP_COD, - '' as yyyymm, - a.ytd , - a.platform, - case when a.store_type = '三方' then '第三方' else a.store_type end store_type , - 'ROC' as geo_key, -'top_yoygr' as KPI_name, -a.yoy_gr as Kpi_val, -c.yoy_gr as Kpi_val_ly, -'' as str_kpi_val, -'' as str_kpi_val_ly, -'' as str_kpi_vol, -'' as str_kpi_vol_ly, -case when upper(a.rank) = 'TTL MKT' then 'Y' else 'N' end total_flag, -'' as ta -from dwd.dwd_gnd_ec_b2c_top10_drives_brand a -left join (select distinct ZK_Corp_C,CORP_COD from dwd.dwd_inc_gnd_retail_b2c_label_total where (ZK_Corp_C = '东阳光' and ZK_Prod_C is null) or ZK_Corp_C != '东阳光') b -on a.corp = b.ZK_Corp_C -left join dwd.dwd_gnd_ec_b2c_top10_drives_brand c -on a.corp = c.corp -and a.ytd = c.ytd + 100 -and a.platform = c.platform -and a.store_type = c.store_type --- where upper(a.rank) <> 'TTL MKT' -union all -select - b.CORP_COD, - '' as yyyymm, - a.ytd , - a.platform, - case when a.store_type = '三方' then '第三方' else a.store_type end store_type , - 'ROC' as geo_key, -'top1_brand_gr' as KPI_name, -a.top1_brand_gr as Kpi_val, -c.top1_brand_gr as Kpi_val_ly, -'' as str_kpi_val, -'' as str_kpi_val_ly, -'' as str_kpi_vol, -'' as str_kpi_vol_ly, -case when upper(a.rank) = 'TTL MKT' then 'Y' else 'N' end total_flag, -'' as ta -from dwd.dwd_gnd_ec_b2c_top10_drives_brand a -left join (select distinct ZK_Corp_C,CORP_COD from dwd.dwd_inc_gnd_retail_b2c_label_total where (ZK_Corp_C = '东阳光' and ZK_Prod_C is null) or ZK_Corp_C != '东阳光') b -on a.corp = b.ZK_Corp_C -left join dwd.dwd_gnd_ec_b2c_top10_drives_brand c -on a.corp = c.corp -and a.ytd = c.ytd + 100 -and a.platform = c.platform -and a.store_type = c.store_type --- where upper(a.rank) <> 'TTL MKT' -union all -select - b.CORP_COD, - '' as yyyymm, - a.ytd , - a.platform, - case when a.store_type = '三方' then '第三方' else a.store_type end store_type, - 'ROC' as geo_key, -'top1_brand_val' as KPI_name, -'' as Kpi_val, -'' as Kpi_val_ly, -a.top1_brand_val as str_kpi_val, -'' as str_kpi_val_ly, -'' as str_kpi_vol, -'' as str_kpi_vol_ly, -case when upper(a.rank) = 'TTL MKT' then 'Y' else 'N' end total_flag, -'' as ta -from dwd.dwd_gnd_ec_b2c_top10_drives_brand a -left join (select distinct ZK_Corp_C,CORP_COD from dwd.dwd_inc_gnd_retail_b2c_label_total where (ZK_Corp_C = '东阳光' and ZK_Prod_C is null) or ZK_Corp_C != '东阳光') b -on a.corp = b.ZK_Corp_C --- where upper(a.rank) <> 'TTL MKT' -union all -select - b.CORP_COD, - '' as yyyymm, - a.ytd , - a.platform, - case when a.store_type = '三方' then '第三方' else a.store_type end store_type, - 'ROC' as geo_key, - 'incremental_brand' as KPI_name, - '' as Kpi_val, - '' as Kpi_val_ly, - a.growth_driver_brand_val as str_kpi_val, - '' as str_kpi_val_ly, - '' as str_kpi_vol, - '' as str_kpi_vol_ly, - case when upper(a.rank) = 'TTL MKT' then 'Y' else 'N' end total_flag, - '' as ta -from dwd.dwd_gnd_ec_b2c_top10_drives_brand a -left join (select distinct ZK_Corp_C,CORP_COD from dwd.dwd_inc_gnd_retail_b2c_label_total where (ZK_Corp_C = '东阳光' and ZK_Prod_C is null) or ZK_Corp_C != '东阳光') b -on a.corp = b.ZK_Corp_C --- where upper(a.rank) <> 'TTL MKT' -union all -select - b.CORP_COD, - '' as yyyymm, - a.ytd , - a.platform, - case when a.store_type = '三方' then '第三方' else a.store_type end store_type, - 'ROC' as geo_key, - 'incremental_brand_gr' as KPI_name, - a.growth_driver_brand_gr as Kpi_val, - c.growth_driver_brand_gr as Kpi_val_ly, - '' as str_kpi_val, - '' as str_kpi_val_ly, - '' as str_kpi_vol, - '' as str_kpi_vol_ly, - case when upper(a.rank) = 'TTL MKT' then 'Y' else 'N' end total_flag, - '' as ta -from dwd.dwd_gnd_ec_b2c_top10_drives_brand a -left join (select distinct ZK_Corp_C,CORP_COD from dwd.dwd_inc_gnd_retail_b2c_label_total where (ZK_Corp_C = '东阳光' and ZK_Prod_C is null) or ZK_Corp_C != '东阳光') b -on a.corp = b.ZK_Corp_C -left join dwd.dwd_gnd_ec_b2c_top10_drives_brand c -on a.corp = c.corp -and a.ytd = c.ytd + 100 -and a.platform = c.platform -and a.store_type = c.store_type --- where upper(a.rank) <> 'TTL MKT' -union all -select - b.CORP_COD, - a.ytd yyyymm, - '' as ytd, - a.platform, - a.store_type, - 'ROC' as geo_key, - 'top_corp_sales' as KPI_name, - replace(a.sales_value,',','' ) as Kpi_val, - replace(c.sales_value,',','' ) as Kpi_val_ly, - '' as str_kpi_val, - '' as str_kpi_val_ly, - '' as str_kpi_vol, - '' as str_kpi_vol_ly, - case when lower(a.rank) = 'total' then 'Y' else 'N' end total_flag, - a.ta -from dwd.dwd_gnd_ec_ta_overview a -left join (select distinct ZK_Corp_C,CORP_COD from dwd.dwd_inc_gnd_retail_b2c_label_total where (ZK_Corp_C = '东阳光' and ZK_Prod_C is null) or ZK_Corp_C != '东阳光') b -on a.corp_des = b.ZK_Corp_C -left join dwd.dwd_gnd_ec_ta_overview c -on a.ytd = c.ytd + 100 -and a.corp_des = c.corp_des -and a.platform = c.platform -and a.store_type = c.store_type -and a.ta = c.ta --- where lower(a.rank) <> 'total' -union all -select distinct - b.CORP_COD, - '' yyyymm, - a.ytd as ytd, - a.platform, - a.store_type, - 'ROC' as geo_key, - 'top_rank' as KPI_name, - a.rank as Kpi_val, - '' as Kpi_val_ly, - '' as str_kpi_val, - '' as str_kpi_val_ly, - '' as str_kpi_vol, - '' as str_kpi_vol_ly, - case when lower(a.rank) = 'total' then 'Y' else 'N' end total_flag, - a.ta -from dwd.dwd_gnd_ec_ta_overview a -left join (select distinct ZK_Corp_C,CORP_COD from dwd.dwd_inc_gnd_retail_b2c_label_total where (ZK_Corp_C = '东阳光' and ZK_Prod_C is null) or ZK_Corp_C != '东阳光') b -on a.corp_des = b.ZK_Corp_C --- where lower(a.rank) <> 'total' - - --- COMMAND ---------- - -insert overwrite table dm.dm_zk_ec_sales_kpi -select - case when total_flag = 'Y' then 'TTL MKT' else nvl(CORP_COD,'') end CORP_COD , - if(yyyymm <> '', nvl(yyyymm,''),nvl(ytd,'')) yyyymm, - if(ytd <> '', 'Y', 'N') ytd, - nvl(platform,'') as platform, - case when store_type = '自营旗舰' then 'SO' - when store_type = '第三方' then 'POP' else nvl(store_type,'') end store_type, - nvl(geo_key,'') as geo_key, - nvl(KPI_name,'') as KPI_name, - nvl(cast(Kpi_val as double),'') Kpi_val, - nvl(cast(Kpi_val_ly as double),'') Kpi_val_ly, - nvl(str_kpi_val,'') as str_kpi_val, - nvl(str_kpi_val_ly,'') as str_kpi_val_ly, - nvl(str_kpi_vol,'') as str_kpi_vol, - nvl(str_kpi_vol_ly,'') as str_kpi_vol_ly, - nvl(total_flag,'') as total_flag, - case when ta = 'NIAD' then 'DM' when ta = 'RX Total' then '' else nvl(ta,'') end ta -from tmp.tmp_zk_ec_sales_kpi_tmp - --- COMMAND ---------- - --- MAGIC %md --- MAGIC ## NIAD Date - --- COMMAND ---------- - --- 计算NIAD的时间是否比其他数据源先来数据 chenwu -CREATE OR REPLACE TABLE tmp.tmp_dm_td_ext_ec_niad_month as -WITH all_ec_data ( - SELECT - MAX(TIME) month, - 'NOTNIAD' AS DATATYPE - FROM - dwd.dwd_gnd_ec_zkb2c_hm_jd_2025before - UNION ALL - SELECT - MAX(TIME) month, - 'NOTNIAD' AS DATATYPE - FROM - dwd.dwd_gnd_ec_zkb2c_hm_jd_2025after - UNION ALL - SELECT - MAX(TIME) month, - 'NOTNIAD' AS DATATYPE - FROM - dwd.dwd_gnd_ec_zkb2c_hm_tm_2206after - UNION ALL - SELECT - MAX(TIME) month, - 'NOTNIAD' AS DATATYPE - FROM - dwd.dwd_gnd_ec_zkb2c_hm_tm_2206before - UNION ALL - SELECT - MAX(TIME) month, - 'NOTNIAD' AS DATATYPE - FROM - dwd.dwd_gnd_ec_zkb2c_gastritis_23after - UNION ALL - SELECT - MAX(TIME) month, - 'NOTNIAD' AS DATATYPE - FROM - dwd.dwd_gnd_ec_zkb2c_gastritis_23before - UNION ALL - SELECT - MAX(TIME) month, - 'NOTNIAD' AS DATATYPE - FROM - dwd.dwd_gnd_ec_zkb2c_re - UNION ALL - SELECT - MAX(TIME) month, - 'NOTNIAD' AS DATATYPE - FROM - dwd.dwd_gnd_ec_zkb2c_dm_statins_xzk - UNION ALL - SELECT - MAX(TIME) month, - 'NOTNIAD' AS DATATYPE - FROM - dwd.dwd_gnd_ec_zkb2c_dm_23before - UNION ALL - SELECT - MAX(TIME) month, - 'NIAD' AS DATATYPE - FROM - dwd.dwd_gnd_ec_zkb2c_dm_23after - UNION ALL - SELECT - MAX(TIME) month, - 'NOTNIAD' AS DATATYPE - FROM - dwd.dwd_gnd_ec_zkb2c_hm_tm_2403after - UNION ALL - SELECT - MAX(TIME) month, - 'NIAD' AS DATATYPE - FROM - dwd.dwd_gnd_ec_zkb2c_dm_26after -) -SELECT - MAX(t1.month) as NIAD_MONTH, - max(t2.month) OTHERS_MONTH -FROM - all_ec_data t1 - LEFT JOIN ( - SELECT - MAX(month) as month - FROM - all_ec_data - WHERE - datatype = 'NOTNIAD' - ) t2 -WHERE - t1.datatype = 'NIAD' - --- COMMAND ---------- - -select * from tmp.tmp_dm_td_ext_ec_niad_month \ No newline at end of file diff --git a/EXTERNAL/EC/03 ec_load_data.sql:Zone.Identifier b/EXTERNAL/EC/03 ec_load_data.sql:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2xdl#JyUFr831@K2x= '202001' - GROUP BY - A.YYYYMM, - A.iqvia_pack_code, - A.AUDIT_COD, - A.PLATFORM, - A.STORE_NAME, - A.STORE_TYPE, - A.PACK_FLAG, - A.PROD_FLAG - --- COMMAND ---------- - -INSERT OVERWRITE TABLE DM.DM_TF_EXT_EC_SALES -( - YYYYMM, - PACK_CODE, - AUDIT_CODE, - DATA_SOURCE, - SALES_UNIT_CAL, - SALES_UNIT_CAL_LY, - SALES_VALUE_CAL, - SALES_VALUE_CAL_LY, - CONUTING_UNIT, - CONUTING_UNIT_LY, - PRESCRIPTION, - PRESCRIPTION_LY, - PACK_FLAG, - PROD_FLAG, - DTP_FLAG, - CMPS_FLAG, - PLATFORM_TYPE, - STORE_NAME, - STORE_TYPE, - REGION_TYPE, - INST_CODE, - DEPT_NAME, - NEW_CODE, - AREA, - H_LEVEL, - REIMBURSE, - REIMBURSE_TYPE, - PRESCRIPTION_SOURCE, - CORP_CODE, - ETL_INSERT_DT, - ETL_UPDATE_DT -) -SELECT - YYYYMM, - NVL ( - NULLIF(PACK_CODE, ''), - CONCAT ('PACK_CODE_', DATA_SOURCE) - ) AS PACK_CODE, - NVL (NULLIF(AUDIT_CODE, ''), 'ROC') AS AUDIT_CODE, - DATA_SOURCE, - SALES_UNIT_CAL, - SALES_UNIT_CAL_LY, - SALES_VALUE_CAL, - SALES_VALUE_CAL_LY, - CONUTING_UNIT, - CONUTING_UNIT_LY, - PRESCRIPTION, - PRESCRIPTION_LY, - PACK_FLAG, - PROD_FLAG, - DTP_FLAG, - CMPS_FLAG, - PLATFORM_TYPE, - STORE_NAME, - STORE_TYPE, - REGION_TYPE, - INST_CODE, - DEPT_NAME, - NEW_CODE, - AREA, - H_LEVEL, - REIMBURSE, - REIMBURSE_TYPE, - PRESCRIPTION_SOURCE, - CORP_CODE, - FROM_UTC_TIMESTAMP (CURRENT_TIMESTAMP(), 'UTC+8') AS ETL_INSERT_DT, - FROM_UTC_TIMESTAMP (CURRENT_TIMESTAMP(), 'UTC+8') AS ETL_UPDATE_DT -FROM - EC_SALES -; \ No newline at end of file diff --git a/EXTERNAL/EC/05 DM_TF_EXT_EC_SALES.sql:Zone.Identifier b/EXTERNAL/EC/05 DM_TF_EXT_EC_SALES.sql:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2x '/' - group by 1,2,3,4,5 - ) - - -----market -,config_market ( - select - market - from market_province_config - group by 1 -) -,market_to_pack_dtp ( - select - PACK_COD,MARKET - from dm.dm_td_external_market_pack_mapping - where DATA_SOURCE = 'DTP(Quarterly)' and PACK_COD in ( - select - PACK_COD - from dm.dm_tf_external_sales - where DTP_FLAG =1 - group by 1) -) -,final_market_to_pack (--获取需要转换market成pack的部分 -select PACK_COD,a.MARKET from market_to_pack a inner join config_market b on a.market = b.market -union -select PACK_COD,a.MARKET from market_to_pack_dtp a inner join config_market b on a.market = b.market -) - -----market -,market_result as ( - select - B.pack_cod - ,C.AUDIT_COD - ,A.province - ,A.data_source as SOURCENAME - ,C.DATA_SOURCE - from market_province_config a - left join final_market_to_pack B on A.market = B.market - left join province_to_audit C on A.province = C.province_c AND A.data_source = C.SOURCENAME - where a.data_source <> '/' AND C.AUDIT_COD IS not NULL - group by 1,2,3,4,5) -,need_to_be_changed( --算出不在pack 中的pack code,替换成 market中的pack code 的配置信息 - select - pack_cod,AUDIT_COD,DATA_SOURCE,sourcename - from market_result - where pack_cod in (select pack_cod from pack_result group by 1) -) - ---最终写入表 - -select - pack_cod,AUDIT_COD,DATA_SOURCE,sourcename, 'pack' CONFIG_DATASOURCE -from pack_result -union ALL - -select - pack_cod,AUDIT_COD,DATA_SOURCE,sourcename, 'market' CONFIG_DATASOURCE -from pack_result -where pack_cod not in (select pack_cod from need_to_be_changed group by 1) -union all -select - pack_cod,AUDIT_COD,DATA_SOURCE,sourcename, 'market' CONFIG_DATASOURCE -from need_to_be_changed diff --git a/EXTERNAL/Merged_Data/Merged_Data_Config_table_bkp.sql:Zone.Identifier b/EXTERNAL/Merged_Data/Merged_Data_Config_table_bkp.sql:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2x '/' - group by 1,2,3,4,5 - ) - ----- MARKET PART - -,market_result as ( - select - A.MARKET - ,C.AUDIT_COD - ,A.province - ,A.data_source as SOURCENAME - ,C.DATA_SOURCE - from market_province_config a - -- left join final_market_to_pack B on A.market = B.market - left join province_to_audit C on A.province = C.province_c AND A.data_source = C.SOURCENAME - where a.data_source <> '/' AND C.AUDIT_COD IS not NULL - group by 1,2,3,4,5) - - -----最终结果 -select -market, -audit_cod, -province, -sourcename, -data_source - FROM pack_result - where market NOT in ( - select - market - from market_province_config - group by 1 -) -union all -select -market, -audit_cod, -province, -sourcename, -data_source - FROM market_result diff --git a/EXTERNAL/Merged_Data/Merged_Data_Config_table_bymonth.sql:Zone.Identifier b/EXTERNAL/Merged_Data/Merged_Data_Config_table_bymonth.sql:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2x=202401 -) - --先 4个brand 的 cu 和 value -,fact_sales_dtp_4brand( -select -YYYYMM,AUDIT_COD -,sum(cast( CONUTING_UNIT*PDOT_MARKET_RATIO as decimal)) CONUTING_UNIT -,sum(cast( CONUTING_UNIT_LY*PDOT_MARKET_RATIO as decimal)) CONUTING_UNIT_LY -from dm.dm_tf_external_sales t1 -inner join 4brand t2 on t1.PACK_COD = t2.PACK_COD -where t1.DATA_SOURCE = 'DTP(Quarterly)' -and DTP_FLAG = 1 -and YYYYMM >=202401 -group by -YYYYMM,AUDIT_COD ) - --- 其他产品 的 cu 和 value -,fact_sales_dtp_other( -select -YYYYMM -,"DTPOTHERS" PACK_COD -,"DTPOTHERS" CORP_COD -,AUDIT_COD -,'' as PLATFORM_TYPE -,'' as STORE_NAME -,'' as STORE_TYPE -,'' as REGION_TYPE -,1 as PACK_FLAG -,2 as PROD_FLAG -,1 as DTP_FLAG -,sum(SALES_UNIT_CAL) SALES_UNIT_CAL -,sum(SALES_UNIT_CAL_LY) SALES_UNIT_CAL_LY -,sum(SALES_VALUE_CAL) SALES_VALUE_CAL -,sum(SALES_VALUE_CAL_LY) SALES_VALUE_CAL_LY -,sum(CONUTING_UNIT) CONUTING_UNIT -,sum(CONUTING_UNIT_LY) CONUTING_UNIT_LY -,'DTP(Quarterly)' as DATA_SOURCE -,'' as inst_code -,'' as cmps_flag -,'' as dept_name -,'' as prescription -,'' as prescription_ly -,'' as new_code -,'' as area -,'' as h_level -,'' as reimburse -,'' as reimburse_type -,'' as prescription_source -from dm.dm_tf_external_sales -where DTP_FLAG = 1 -and PACK_COD in (select PACK_COD from otherbrand) --其他部分 -and DATA_SOURCE = 'DTP(Quarterly)' -and YYYYMM >=202401 -group by -YYYYMM,AUDIT_COD) - -select -T0.YYYYMM -,t0.PACK_COD -,t0.CORP_COD -,t0.AUDIT_COD -,t0.PLATFORM_TYPE -,t0.STORE_NAME -,t0.STORE_TYPE -,t0.REGION_TYPE -,t0.PACK_FLAG -,t0.PROD_FLAG -,t0.DTP_FLAG -,t0.SALES_UNIT_CAL -,t0.SALES_UNIT_CAL_LY -,t0.SALES_VALUE_CAL -,t0.SALES_VALUE_CAL_LY -,t1.CONUTING_UNIT -,t1.CONUTING_UNIT_LY -,t0.DATA_SOURCE -,t0.inst_code -,t0.cmps_flag -,t0.dept_name -,t0.prescription -,t0.prescription_ly -,t0.new_code -,t0.area -,t0.h_level -,t0.reimburse -,t0.reimburse_type -,t0.prescription_source -from fact_sales_dtp_other t0 -left join ( -select -t1.yyyymm -,t1.audit_cod -,t1.pdot_counting_unit - t2.conuting_unit as CONUTING_UNIT -,t1.pdot_counting_unit_ly - t2.conuting_unit_ly as CONUTING_UNIT_LY -from dirct_cu t1 -left join fact_sales_dtp_4brand t2 on t1.yyyymm = t2.yyyymm and t1.audit_cod = t2.audit_cod -) t1 -on t0.audit_cod = t1.audit_cod and t0.yyyymm = t1.yyyymm --- select * from fact_sales_dtp_4brand \ No newline at end of file diff --git a/EXTERNAL/Merged_Data/dm_tf_exteranl_sales_merged_data_dtp_others_bkp.sql:Zone.Identifier b/EXTERNAL/Merged_Data/dm_tf_exteranl_sales_merged_data_dtp_others_bkp.sql:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2x=t2.starttime and t1.YYYYMM <=t2.endtime -and t1.YYYYMM >= t2.Value_brand_Ratio_start and t1.YYYYMM <=t2.Value_brand_Ratio_end -and t1.YYYYMM >= t2.Unit_brand_start and t1.YYYYMM <=t2.Unit_brand_end -and t1.YYYYMM >= t2.CountingUnit_brand_start and t1.YYYYMM <=t2.CountingUnit_brand_end -and t1.YYYYMM >= t2.PDOT_brand_start and t1.YYYYMM <=t2.PDOT_brand_end -LEFT JOIN DM.dm_td_ext_unionall_market_pack_mapping t3 -on t1.PACK_CODE = t3.PACK_CODE and t1.DATA_SOURCE = t3.DATASOURCE -and (t1.YYYYMM-100) >=t3.starttime and (t1.YYYYMM-100) <=t3.endtime -and (t1.YYYYMM-100) >= t3.Value_brand_Ratio_start and (t1.YYYYMM-100) <=t3.Value_brand_Ratio_end -and (t1.YYYYMM-100) >= t3.Unit_brand_start and (t1.YYYYMM-100) <=t3.Unit_brand_end -and (t1.YYYYMM-100) >= t3.CountingUnit_brand_start and (t1.YYYYMM-100) <=t3.CountingUnit_brand_end -and (t1.YYYYMM-100) >= t3.PDOT_brand_start and (t1.YYYYMM-100) <=t3.PDOT_brand_end -and t2.market = t3.MARKET -where t1.DATA_SOURCE = 'DTP(Quarterly)' and t1.DTP_FLAG=1 --- and YYYYMM >=202501 - --- COMMAND ---------- - --- 所有的pack_code -create or replace temporary view all_egfr_pack -as -select MARKET,PACK_CODE from DM.DM_TD_EXT_RETAIL_MARKET_PACK_MAPPING -where MARKET = 'EGFR TKI Market' -group by MARKET,PACK_CODE - - --- COMMAND ---------- - --- 4brand pack_code -create or replace temporary view 4brand -as -select - MARKET, - PACK_CODE -from - all_egfr_pack -where - pack_code IN - ( - SELECT - PACK_CODE - FROM - dm.dm_td_ext_retail_DTP_pack_property - WHERE - PROD_DESC_C in ('阿美乐','泰瑞沙','凯美纳','艾弗沙') - group BY - PACK_CODE - ) - - --- COMMAND ---------- - -create or replace temporary view otherbrand -as -select - PACK_CODE -from - all_egfr_pack -where - PACK_CODE not in ( select PACK_CODE from `4brand` group by PACK_CODE) -group by - PACK_CODE - - --- COMMAND ---------- - --- 这里是 直接 cu -create or replace temporary view dirct_cu -as - select - yyyymm, - replace(audit_key,'DTP(Quarterly)','') audit_cod, - cast(pdot_counting_unit as decimal ) pdot_counting_unit, - cast(pdot_counting_unit_ly as decimal ) pdot_counting_unit_ly - from dm.dm_tf_external_retail_special a - where yyyymm >=202401 - --- COMMAND ---------- - --- 这里是获取 4brand 的度量值部分 -create or replace temporary view fact_sales_dtp_4brand -as -select -YYYYMM, -AUDIT_CODE AS AUDIT_COD -,sum(PDOT) CONUTING_UNIT -,sum(PDOT_LY) CONUTING_UNIT_LY -,MAX(t2.MARKET) as MARKET -from RETAIL_DTP t1 -inner join 4brand t2 on t1.PACK_CODE = t2.PACK_CODE -where t1.DATA_SOURCE = 'DTP(Quarterly)' -and t1.MARKET = 'EGFR TKI Market' -and DTP_FLAG = 1 -and YYYYMM >=202401 -group by -YYYYMM,AUDIT_COD - - --- COMMAND ---------- - --- 这里是获取 other 的维度值部分 -create or replace temporary view fact_sales_dtp_other -as -select -YYYYMM -,"DTPOTHERS" PACK_COD -,"DTPOTHERS" CORP_COD -,AUDIT_CODE AS AUDIT_COD -,'' as PLATFORM_TYPE -,'' as STORE_NAME -,'' as STORE_TYPE -,'' as REGION_TYPE -,1 as PACK_FLAG -,2 as PROD_FLAG -,1 as DTP_FLAG -,sum(SALES_UNIT_CAL) SALES_UNIT_CAL -,sum(SALES_UNIT_CAL_LY) SALES_UNIT_CAL_LY -,sum(SALES_VALUE_CAL) SALES_VALUE_CAL -,sum(SALES_VALUE_CAL_LY) SALES_VALUE_CAL_LY -,sum(CONUTING_UNIT) CONUTING_UNIT -,sum(CONUTING_UNIT_LY) CONUTING_UNIT_LY -,'DTP(Quarterly)' as DATA_SOURCE -,'' as inst_code -,'' as cmps_flag -,'' as dept_name -,'' as prescription -,'' as prescription_ly -,'' as new_code -,'' as area -,'' as h_level -,'' as reimburse -,'' as reimburse_type -,'' as prescription_source -from DM.DM_TF_EXT_UNIONALL_SALES -where DTP_FLAG = 1 -and PACK_CODE in (select PACK_CODe from otherbrand) --其他部分 -and DATA_SOURCE = 'DTP(Quarterly)' -and YYYYMM >=202401 -group by -YYYYMM,AUDIT_CODE - - --- COMMAND ---------- - --- create or replace table dm.DM_TF_EXTERANL_SALES_MERGED_DATA_DTP_OTHERS_bymonth -insert overwrite table dm.DM_TF_EXTERANL_SALES_MERGED_DATA_DTP_OTHERS_bymonth -select -t1.MARKET -,'OTHERS' as KEY_COMPETITOR -,'Others' as CLASS -,T0.YYYYMM -,t0.PACK_COD -,t0.CORP_COD -,t0.AUDIT_COD -,t0.PLATFORM_TYPE -,t0.STORE_NAME -,t0.STORE_TYPE -,t0.REGION_TYPE -,t0.PACK_FLAG -,t0.PROD_FLAG -,t0.DTP_FLAG -,t0.SALES_UNIT_CAL -,t0.SALES_UNIT_CAL_LY -,t0.SALES_VALUE_CAL -,t0.SALES_VALUE_CAL_LY -,t1.CONUTING_UNIT -,t1.CONUTING_UNIT_LY -,t1.CONUTING_UNIT as pdot -,t1.CONUTING_UNIT_LY as pdot_ly -,t0.DATA_SOURCE -,t0.inst_code -,t0.cmps_flag -,t0.dept_name -,t0.prescription -,t0.prescription_ly -,t0.new_code -,t0.area -,t0.h_level -,t0.reimburse -,t0.reimburse_type -,t0.prescription_source -from fact_sales_dtp_other t0 -left join ( -select -t1.yyyymm -,t1.audit_cod -,t1.pdot_counting_unit - t2.conuting_unit as CONUTING_UNIT -,t1.pdot_counting_unit_ly - t2.conuting_unit_ly as CONUTING_UNIT_LY -,t2.market -from dirct_cu t1 -left join fact_sales_dtp_4brand t2 on t1.yyyymm = t2.yyyymm and t1.audit_cod = t2.audit_cod -) t1 -on t0.audit_cod = t1.audit_cod and t0.yyyymm = t1.yyyymm --- select * from fact_sales_dtp_4brand \ No newline at end of file diff --git a/EXTERNAL/Merged_Data/dm_tf_exteranl_sales_merged_data_dtp_others_bymonth_bkp.sql:Zone.Identifier b/EXTERNAL/Merged_Data/dm_tf_exteranl_sales_merged_data_dtp_others_bymonth_bkp.sql:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2x= '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 ---------- - ---------------------------------------------------------------------------------------- ---修改时间:20241105 ---修改人:Fanxujia ---修改内容: ---for AIA Dashboard,新增NSD、RSD、RSM、DSM、MR、TEAM等信息 ---仅AIA渠道的数据增加值,其他渠道都为空 ---------------------------------------------------------------------------------------- ----------------------------------------------------AIA------------------------------------------------------------------------------ ---AIA参考CHPA -------所有BU能看AIA - ---从销量表取到全部的机构、市场组合 -with ALL_AUDIT_Market as ( -select distinct NVL(t1.AUDIT_COD,'ROC') AUDIT_COD, -NVL(t2.market,'ALL Market') market -from dm.dm_ext_aia_sales t1 -left join dm.dm_td_ext_aia_market_pack_mapping t2 -on t1.pack_cod = t2.PACK_CODE -) -,pack_market as ( -select distinct PACK_CODE AS PACK_COD,market -from dm.dm_td_ext_aia_market_pack_mapping -) - ---获取城市与大区中心的mapping -,EXTERNAL_GEO as ( -select distinct -concat(city_c, '市') as city_c, -REGION_CENTER -from DM.DM_TD_EXTERNAL_GEO_TEMP -where DATA_SOURCE = 'AIA(Monthly)' -) ---CVH架构月 -,CVH_YM as ( -select key_value as yyyymm -from dm.dm_td_date_config -where key_code = 'pfmc_cvh' -) ---org表 -,org as ( -select distinct -t1.yyyymm, -t1.bu_category, -t1.bu_code, -t1.bu_name_en, -t1.sub_bu_code, -t1.sub_bu_name, -t1.REGION_CODE, -t1.region_name, -t1.rc_code, -t1.rc_name, -t1.district_name as team, -t1.mr_trty_code, -t1.nsd_kcode, -case when t1.nsd_name = 'Vacant' then t1.nsd_kcode else t1.nsd_name end as nsd_name, -t1.rsd_kcode, -case when t1.rsd_name = 'Vacant' then t1.rsd_kcode else t1.rsd_name end as rsd_name, -t1.rsm_kcode, -case when t1.rsm_name = 'Vacant' then t1.rsm_kcode else t1.rsm_name end as rsm_name, -t1.dsm_kcode, -case when t1.dsm_name = 'Vacant' then t1.dsm_kcode else t1.dsm_name end as dsm_name, -t1.mr_kcode, -case when t1.mr_name = 'Vacant' then t1.mr_kcode else t1.mr_name end as mr_name -from dm_td_org_temp t1 -inner join CVH_YM t2 -on t1.yyyymm = t2.yyyymm -) ---territory表 -,territory as ( -select distinct -t1.yyyymm, -t1.trty_code, -t1.inst_code, -t1.family_code -from dm.dm_td_sd_territory_indication t1 -inner join CVH_YM t2 -on t1.yyyymm = t2.yyyymm -where t1.bu not in ('CUBE','KA') -and ((t1.key_hp in (2) and t1.bu <> 'Retail' and t1.trty_code <>'Eagle') or t1.key_hp = 1)--chenwu 20250904 排除双考影响 -) ---将内部的Family_code转为外部的pack_cod -,inst_pack_previous as ( -select distinct -t1.yyyymm, -t1.trty_code, -t1.inst_code, -t2.city_name, -t5.market, -case when t2.area_code = 'SOUTH' then 'South' - when t2.area_code = 'WEST' then 'West' - when t2.area_code = 'CENTRAL' then 'Central' - when t2.area_code = 'NORTH' then 'North' - when t2.area_code = 'EAST' then 'East' -end as REGION_CENTER -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 -) -/* -20251207 Chenwu 把可定的架构复制到立普妥上,直接替换市场 'Atorvastatin Market' = 'Rosuvastatin Market' -*/ -,inst_pack as ( - select - yyyymm, - trty_code, - inst_code, - city_name, - market, - REGION_CENTER - from inst_pack_previous - union all - select - yyyymm, - trty_code, - inst_code, - city_name, - 'Atorvastatin Market' market, - REGION_CENTER - from inst_pack_previous - where market = 'Rosuvastatin Market' -) - ---------------------------------------------------------------------------------------- ---修改时间:20250220 ---修改人:Zhu chenwu ---修改内容: ---原本存在部分Eagel的机构和市场没有挂上架构,针对于没有挂上的部分,用dws.dws_td_eg_cityterritory中的city 和family的关系对应到市场挂上架构。 -----------------------------------------------m----------------------------------------- -,eagle_trty as -(---eagle的city 和 family 对应的 trtycode取数据时,如果city和family对应的trtycode 有多个,以p12,p11,p11为准,取第一个。 - select SP_TRTY_CD,CITY_CD,FAMILY_CD from ( - select * - ,row_number() over (partition by CITY_CD,FAMILY_CD order by PROJECT_CD desc) as num - from ( - select SP_TRTY_CD,CITY_CD,FAMILY_CD,PROJECT_CD from dws.dws_td_eg_cityterritory t1 - inner join CVH_YM t2 - on t1.YM = t2.yyyymm - where SP_TRTY_CD not in (select distinct trty_code from dm.dm_td_sd_territory_indication where bu = 'Eagle') - and PROJECT_CD in (select distinct project_code from DWS.dws_td_eg_project_instype WHERE ins_type='医院') - and cast(nvl(SALES_RATE,0) as decimal(20,6))<>'0.000000' - group by 1,2,3,4 - ) -) where num = 1 -) -,family_mapping as (--family和brand的mapping - select prd_family_cd,prd_brand_cd from cdw_dwd_dim_product_wide - group by 1,2 -) -,packcode_mapping as (--pack 和 brand的mapping - select brandcode,ims_pack_cod from dwd.dwd_td_imscode_azcode - group by 1,2 -) -,geo_mapping as (--city的中文 - select city_code,city_name from dm.dm_td_geography - group by 1,2 -) -,eagle_mapping (--eagle表中city和family所对应的 岗位编码 -select SP_TRTY_CD,city_name,market from ( - select - t1.SP_TRTY_CD - -- ,t1.FAMILY_CD - -- ,t3.prd_brand_cd - ,t4.ims_pack_cod - ,t5.city_name - from eagle_trty t1 - left join family_mapping t3 - on t1.FAMILY_CD = t3.prd_family_cd --转换family 成 brand - left join packcode_mapping t4 - on t3.prd_brand_cd = t4.brandcode - left join geo_mapping t5 - on t1.CITY_CD = t5.city_code) A -inner join pack_market B on A.ims_pack_cod = B.PACK_COD -group by 1,2,3 -) - -,audit_geo as (--audit的城市信息 -select AUDIT_COD,max(CITY_C) as city_c from DM.DM_TD_EXTERNAL_GEO -where DATA_SOURCE = 'AIA(Monthly)' -group by 1) - -,eagle_trty_with_city as ( --eagle中 挂上 部分机构归不到eagle的,按eagle的城市+品牌挂上 -select -t0.AUDIT_COD,t0.market -,t10.city_c -,eagle_mapping.SP_TRTY_CD from ALL_AUDIT_Market t0 -left join audit_geo t10 on t0.AUDIT_COD = t10.AUDIT_COD -left join eagle_mapping on eagle_mapping.city_name = t10.city_c and eagle_mapping.market = t0.market -where eagle_mapping.SP_TRTY_CD is not null -group by 1,2,3,4) - -insert overwrite dm.DM_TD_EXT_AIA_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 - COALESCE(t2.REGION_CODE,t6.REGION_CODE,'ROC') as REGION_CODE, - COALESCE(t2.region_name,t6.region_name,'ROC') as region_name_en, - COALESCE(t2.rc_code,t6.rc_code,'ROC') as rc_code, - COALESCE(t2.rc_name,t6.rc_name,'ROC') as rc_name_en, - COALESCE(t1.REGION_CENTER,t4.REGION_CENTER,t7.REGION_CENTER,'') as RegionCenter, - t0.AUDIT_COD, - t0.MARKET, - COALESCE(t2.bu_category,t6.bu_category,'') as bu_category, - COALESCE(t2.bu_name_en,t6.bu_name_en,'') as bu_name_en, - COALESCE(t2.sub_bu_name,t6.sub_bu_name,'') as sub_bu_name, - COALESCE(t2.sub_bu_code,t6.sub_bu_code,'') as sub_bu_code_auth, - concat(COALESCE(t2.bu_code,t6.bu_code,''),'AIA(Monthly)') as bu_code_auth, - 'AIA(Monthly)' as DATA_SOURCE, - 1 REGION_RATIO, - COALESCE(t2.rsm_name,t6.rsm_name,'Vacant') as rsm_name, - COALESCE(t2.rsd_name,t6.rsd_name,'Vacant') as RC_Name, - COALESCE(t2.team,t6.team,'ROC') as team, - COALESCE(t2.mr_trty_code,t6.mr_trty_code,'Vacant') as mr_trty_code, - COALESCE(t2.nsd_kcode,t6.nsd_kcode,'Vacant') as nsd_kcode, - COALESCE(t2.nsd_name,t6.nsd_name,'Vacant') as nsd_name, - COALESCE(t2.rsd_kcode,t6.rsd_kcode,'Vacant') as rsd_kcode, - COALESCE(t2.rsd_name,t6.rsd_name,'Vacant') as rsd_name, - COALESCE(t2.rsm_kcode,t6.rsm_kcode,'Vacant') as rsm_kcode, - COALESCE(t2.dsm_kcode,t6.dsm_kcode,'Vacant') as dsm_kcode, - COALESCE(t2.dsm_name,t6.dsm_name,'Vacant') as dsm_name, - COALESCE(t2.mr_kcode,t6.mr_kcode,'Vacant') as mr_kcode, - COALESCE(t2.mr_name,t6.mr_name,'Vacant') as mr_name --- ,t5.SP_TRTY_CD -from ALL_AUDIT_Market t0 -left join inst_pack t1 -on t0.AUDIT_COD = t1.inst_code -and t0.market = t1.market -left join org t2 -on t1.trty_code = t2.mr_trty_code -and t1.yyyymm = t2.yyyymm -left join EXTERNAL_GEO t4 -on t1.city_name = t4.city_c - -left join eagle_trty_with_city t5 -on t0.AUDIT_COD = t5.AUDIT_COD -and t0.market = t5.market and t1.inst_code is null -left join org t6 -on t5.SP_TRTY_CD = t6.mr_trty_code -left join EXTERNAL_GEO t7 -on t5.city_c = t7.city_c - --- 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_AIA_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_AIA_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 = 'AIA(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_AIA_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 \ No newline at end of file diff --git a/EXTERNAL/ORG/DM_TD_EXT_AIA_ORG.sql:Zone.Identifier b/EXTERNAL/ORG/DM_TD_EXT_AIA_ORG.sql:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2x= '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 -union all -select -'AIA(Monthly)' as data_source, -'AIA ALL 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 \ No newline at end of file diff --git a/EXTERNAL/ORG/DM_TD_EXT_CHC_ORG.sql:Zone.Identifier b/EXTERNAL/ORG/DM_TD_EXT_CHC_ORG.sql:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2x '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 -union all -select -'AIA(Monthly)' as data_source, -'AIA ALL 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 \ No newline at end of file diff --git a/EXTERNAL/ORG/DM_TD_EXT_CHPA_ORG.sql:Zone.Identifier b/EXTERNAL/ORG/DM_TD_EXT_CHPA_ORG.sql:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2x= '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 -----------目前权限控制到BU,因此需要BU有值。 - 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 \ No newline at end of file diff --git a/EXTERNAL/ORG/DM_TD_EXT_COUNTY_ORG.sql:Zone.Identifier b/EXTERNAL/ORG/DM_TD_EXT_COUNTY_ORG.sql:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2x= '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 \ No newline at end of file diff --git a/EXTERNAL/ORG/DM_TD_EXT_EC_ORG.sql:Zone.Identifier b/EXTERNAL/ORG/DM_TD_EXT_EC_ORG.sql:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2x= '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数据源的架构,去掉OBU,只保留Retail -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 -----------------------------------------------------Retail----------------------------------------------------------------------- -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 -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 = 'DTP(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 = 'DTP(Quarterly)' -) -,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 -) -,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 ('OBU','RIN') --20260320 chenwu DTP数据源的架构,只保留OBU和RIN -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, 'DTP(Quarterly)') bu_code_auth, - 'DTP(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, - 'DTP(Quarterly)' as bu_code_auth, - 'DTP(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 \ No newline at end of file diff --git a/EXTERNAL/ORG/DM_TD_EXT_RETAIL_ORG.sql:Zone.Identifier b/EXTERNAL/ORG/DM_TD_EXT_RETAIL_ORG.sql:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2x= '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 -union all -select -'AIA(Monthly)' as data_source, -'AIA ALL 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 \ No newline at end of file diff --git a/EXTERNAL/ORG/DM_TD_EXT_THC_ORG.sql:Zone.Identifier b/EXTERNAL/ORG/DM_TD_EXT_THC_ORG.sql:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2x= '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 -union all -select -'AIA(Monthly)' as data_source, -'AIA ALL 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 \ No newline at end of file diff --git a/EXTERNAL/ORG/DM_TD_EXT_XIEHE_ORG.sql:Zone.Identifier b/EXTERNAL/ORG/DM_TD_EXT_XIEHE_ORG.sql:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2xdl#JyUFr831@K2x date_format( from_utc_timestamp( current_timestamp,'UTC+8'),'yyyy-MM-dd') - ) - where num = 1 -) -select - t1.data_source - ,t1.max_data - ,case when t1.max_data = t2.max_data then 0 else 1 end as if_update - ,from_utc_timestamp( current_timestamp,'UTC+8') etl_timestamp -from today_record_date t1 -inner join previous_record_date t2 on t1.data_source = t2.data_source - - --- COMMAND ---------- - --- DBTITLE 1,写入dws层 -INSERT OVERWRITE dws.dws_ext_email_warning -select - data_source - ,max_data - ,if_update - ,etl_timestamp -from temp_datasource_update_info - --- COMMAND ---------- - --- MAGIC %md --- MAGIC ### ads层 - --- COMMAND ---------- - --- select --- data_source --- ,max_data --- ,if_update --- from dws.dws_ext_email_warning \ No newline at end of file diff --git a/EXTERNAL/OTHERS/02 dws_ext_email_warning.sql:Zone.Identifier b/EXTERNAL/OTHERS/02 dws_ext_email_warning.sql:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2x str: - # Hutool 的 SecureUtil.aes() 默认是 AES/ECB/PKCS5Padding - secret_key = base64.b64decode(secret_key_base64) - cipher = AES.new(secret_key, AES.MODE_ECB) - - # 加密当前时间戳(毫秒) - timestamp = str(int(time.time() * 1000)) - encrypted = cipher.encrypt(pad(timestamp.encode("utf-8"), AES.block_size)) - - # 输出 Base64 编码的 token - return base64.b64encode(encrypted).decode("utf-8") - -# === 调用接口 === -def call_check_api(): - token = generate_aes_token(SECRET_KEY_BASE64) - encoded_token = urllib.parse.quote(token) - url = f"{API_URL}?token={encoded_token}" - - print(f"请求URL: {url}") - response = requests.get(url) - print("响应状态码:", response.status_code) - print("响应内容:", response.text) - -if __name__ == "__main__": - call_check_api() \ No newline at end of file diff --git a/EXTERNAL/OTHERS/external_triggered_email.py:Zone.Identifier b/EXTERNAL/OTHERS/external_triggered_email.py:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2x '氨氯地平阿托伐他汀钙' -# MAGIC where zk_common_name <> '氨氯地平阿托伐他汀钙' -# MAGIC --------------------------------- *hard_code* --------------------------------------- - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-1: load rawdata to tmp table -# MAGIC -- 1.2 load brand data to tmp.tmp_retail_pack_rawdata -# MAGIC -- 1.2.2 load from dwd.dwd_gnd_ext_retail_statin_xzk (pack-CV-他汀类+血脂康-全国.xlsx) -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC insert into table tmp.tmp_retail_pack_rawdata -# MAGIC -# MAGIC select -# MAGIC case when length(zk_product_id) < 7 then right(concat('0000000',zk_product_id),7) else zk_product_id end as product_id, -# MAGIC zk_product_id, -# MAGIC zk_region, -# MAGIC zk_rx_otc, -# MAGIC zk_medicine_type, -# MAGIC zk_medicine_tier1, -# MAGIC zk_medicine_tier2, -# MAGIC zk_medicine_tier3, -# MAGIC zk_medicine_tier4, -# MAGIC zk_common_name, -# MAGIC zk_dosage_form, -# MAGIC zk_user_type, -# MAGIC zk_category_name, -# MAGIC zk_product_name, -# MAGIC zk_brand_name, -# MAGIC zk_manu_des, -# MAGIC zk_corp_des, -# MAGIC zk_pack_des, -# MAGIC month, -# MAGIC quarter, -# MAGIC replace(price,',','' ), -# MAGIC replace(sales_unit,',','' ), -# MAGIC replace(sales_value,',','' ), -# MAGIC digital_spread_rate, -# MAGIC weighted_spread_rate, -# MAGIC counting_unit, -# MAGIC null, -# MAGIC null, -# MAGIC null, -# MAGIC null, -# MAGIC null, -# MAGIC 'CV', -# MAGIC '他汀类+血脂康', -# MAGIC null, -# MAGIC null, -# MAGIC null, -# MAGIC null, -# MAGIC 0, -# MAGIC null -# MAGIC from dwd.dwd_gnd_ext_retail_statin_xzk - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-1: load rawdata to tmp table -# MAGIC -- 1.2 load brand data to tmp.tmp_retail_pack_rawdata -# MAGIC -- 1.2.3 load from dwd.dwd_gnd_ext_retail_nataional_oap (pack-CV-抗血栓2通用名-全国.xlsx) -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC insert into table tmp.tmp_retail_pack_rawdata -# MAGIC -# MAGIC select -# MAGIC case when length(zk_product_id) < 7 then right(concat('0000000',zk_product_id),7) else zk_product_id end as product_id, -# MAGIC zk_product_id, -# MAGIC zk_region, -# MAGIC zk_rx_otc, -# MAGIC zk_medicine_type, -# MAGIC zk_medicine_tier1, -# MAGIC zk_medicine_tier2, -# MAGIC zk_medicine_tier3, -# MAGIC zk_medicine_tier4, -# MAGIC zk_common_name, -# MAGIC zk_dosage_form, -# MAGIC zk_user_type, -# MAGIC zk_category_name, -# MAGIC zk_product_name, -# MAGIC zk_brand_name, -# MAGIC zk_manu_des, -# MAGIC zk_corp_des, -# MAGIC zk_pack_des, -# MAGIC month, -# MAGIC quarter, -# MAGIC replace(price,',','' ), -# MAGIC replace(sales_unit,',','' ), -# MAGIC replace(sales_value,',','' ), -# MAGIC digital_spread_rate, -# MAGIC weighted_spread_rate, -# MAGIC counting_unit, -# MAGIC null, -# MAGIC null, -# MAGIC null, -# MAGIC null, -# MAGIC null, -# MAGIC 'CV', -# MAGIC 'Brilinta Market', -# MAGIC null, -# MAGIC null, -# MAGIC null, -# MAGIC null, -# MAGIC 0, -# MAGIC null -# MAGIC from dwd.dwd_gnd_ext_retail_nataional_oap - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-1: load rawdata to tmp table -# MAGIC -- 1.2 load brand data to tmp.tmp_retail_pack_rawdata -# MAGIC -- 1.2.4 load from dwd.dwd_gnd_ext_retail_anti_asthma_copd (pack-RE-慢阻肺-全国.xlsx) -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC insert into table tmp.tmp_retail_pack_rawdata -# MAGIC -# MAGIC select -# MAGIC case when length(zk_product_id) < 7 then right(concat('0000000',zk_product_id),7) else zk_product_id end as product_id, -# MAGIC zk_product_id, -# MAGIC zk_region, -# MAGIC zk_rx_otc, -# MAGIC zk_medicine_type, -# MAGIC zk_medicine_tier1, -# MAGIC zk_medicine_tier2, -# MAGIC zk_medicine_tier3, -# MAGIC zk_medicine_tier4, -# MAGIC zk_common_name, -# MAGIC zk_dosage_form, -# MAGIC zk_user_type, -# MAGIC zk_category_name, -# MAGIC zk_product_name, -# MAGIC zk_brand_name, -# MAGIC zk_manu_des, -# MAGIC zk_corp_des, -# MAGIC zk_pack_des, -# MAGIC month, -# MAGIC quarter, -# MAGIC replace(price,',','' ), -# MAGIC replace(sales_unit,',','' ), -# MAGIC replace(sales_value,',','' ), -# MAGIC digital_spread_rate, -# MAGIC weighted_spread_rate, -# MAGIC counting_unit, -# MAGIC null, -# MAGIC null, -# MAGIC null, -# MAGIC null, -# MAGIC null, -# MAGIC --------------2024----------- -# MAGIC --'RE', -# MAGIC --'慢性阻塞性肺疾病', -# MAGIC --------------2025----------- -# MAGIC 'RE2', -# MAGIC '小儿咳喘', -# MAGIC ----------------------------- -# MAGIC null, -# MAGIC null, -# MAGIC null, -# MAGIC null, -# MAGIC 0, -# MAGIC null -# MAGIC from dwd.dwd_gnd_ext_retail_anti_asthma_copd - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-1: load rawdata to tmp table -# MAGIC -- 1.2 load brand data to tmp.tmp_retail_pack_rawdata -# MAGIC -- 1.2.5 load from dwd.dwd_gnd_ext_retail_aagsa_ppi_oral (pack-GI-慢性胃炎胃溃疡-全国.xlsx) -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC insert into table tmp.tmp_retail_pack_rawdata -# MAGIC -# MAGIC select -# MAGIC case when length(zk_product_id) < 7 then right(concat('0000000',zk_product_id),7) else zk_product_id end as product_id, -# MAGIC zk_product_id, -# MAGIC zk_region, -# MAGIC zk_rx_otc, -# MAGIC zk_medicine_type, -# MAGIC zk_medicine_tier1, -# MAGIC zk_medicine_tier2, -# MAGIC zk_medicine_tier3, -# MAGIC zk_medicine_tier4, -# MAGIC zk_common_name, -# MAGIC zk_dosage_form, -# MAGIC zk_user_type, -# MAGIC zk_category_name, -# MAGIC zk_product_name, -# MAGIC zk_brand_name, -# MAGIC zk_manu_des, -# MAGIC zk_corp_des, -# MAGIC zk_pack_des, -# MAGIC month, -# MAGIC quarter, -# MAGIC replace(price,',','' ), -# MAGIC replace(sales_unit,',','' ), -# MAGIC replace(sales_value,',','' ), -# MAGIC digital_spread_rate, -# MAGIC weighted_spread_rate, -# MAGIC counting_unit, -# MAGIC null as pack_code, -# MAGIC null as molecule_code, -# MAGIC null as molecule_desc, -# MAGIC null as product_code, -# MAGIC null as product_desc, -# MAGIC 'GI' as level_ta, -# MAGIC '慢性胃炎、胃溃疡' as level_market, -# MAGIC null as level_molecule, -# MAGIC null as level_brand, -# MAGIC null as ratio_val, -# MAGIC null as ratio_vol, -# MAGIC 0 as data_flag, -# MAGIC null as brand_flag -# MAGIC from dwd.dwd_gnd_ext_retail_aagsa_ppi_oral - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-1: load rawdata to tmp table -# MAGIC -- 1.2 load brand data to tmp.tmp_retail_pack_rawdata -# MAGIC -- 1.2.6 load from dwd.dwd_gnd_ext_retail_atomizer (pack-雾化器-全国&县域数据.xlsx) -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC insert into table tmp.tmp_retail_pack_rawdata -# MAGIC -# MAGIC select -# MAGIC case when length(zk_product_id) < 7 then right(concat('0000000',zk_product_id),7) else zk_product_id end as product_id, -# MAGIC zk_product_id, -# MAGIC zk_region, -# MAGIC zk_rx_otc, -# MAGIC zk_medicine_type, -# MAGIC zk_medicine_tier1, -# MAGIC zk_medicine_tier2, -# MAGIC zk_medicine_tier3, -# MAGIC zk_medicine_tier4, -# MAGIC zk_common_name, -# MAGIC zk_dosage_form, -# MAGIC zk_user_type, -# MAGIC zk_category_name, -# MAGIC zk_product_name, -# MAGIC zk_brand_name, -# MAGIC zk_manu_des, -# MAGIC zk_corp_des, -# MAGIC zk_pack_des, -# MAGIC month, -# MAGIC quarter, -# MAGIC replace(price,',','' ), -# MAGIC replace(sales_unit,',','' ), -# MAGIC replace(sales_value,',','' ), -# MAGIC digital_spread_rate, -# MAGIC weighted_spread_rate, -# MAGIC counting_unit, -# MAGIC null, -# MAGIC null, -# MAGIC null, -# MAGIC null, -# MAGIC null, -# MAGIC 'RE', -# MAGIC '慢性阻塞性肺疾病', -# MAGIC null, -# MAGIC null, -# MAGIC null, -# MAGIC null, -# MAGIC 0, -# MAGIC null -# MAGIC from dwd.dwd_gnd_ext_retail_atomizer -# MAGIC ------------------------------ *hard_code* ------------------------------------------ -# MAGIC -- 24年关于 RE-慢性阻塞性肺疾病的PACK数据,额外买了“雾化器”的24省数据 -# MAGIC -- 所以这里只取24省明细数据,全国的数已经在“pack-GI-慢性胃炎胃溃疡-全国.xlsx”中取过了 -# MAGIC -- 25年就直接取全部数据 -# MAGIC -- where zk_region <> '全国' -# MAGIC ------------------------------ *hard_code* ------------------------------------------ - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-1: load rawdata to tmp table -# MAGIC -- 1.2 load brand data to tmp.tmp_retail_pack_rawdata -# MAGIC -- 1.2.7 load from dwd.dwd_gnd_ext_retail_nataional_niad (pack-DM-口服降糖化学药.xlsx) -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC insert into table tmp.tmp_retail_pack_rawdata -# MAGIC -# MAGIC select -# MAGIC case when length(zk_product_id) < 7 then right(concat('0000000',zk_product_id),7) else zk_product_id end as product_id, -# MAGIC zk_product_id, -# MAGIC zk_region, -# MAGIC zk_rx_otc, -# MAGIC zk_medicine_type, -# MAGIC zk_medicine_tier1, -# MAGIC zk_medicine_tier2, -# MAGIC zk_medicine_tier3, -# MAGIC zk_medicine_tier4, -# MAGIC zk_common_name, -# MAGIC zk_dosage_form, -# MAGIC zk_user_type, -# MAGIC zk_category_name, -# MAGIC zk_product_name, -# MAGIC zk_brand_name, -# MAGIC zk_manu_des, -# MAGIC zk_corp_des, -# MAGIC zk_pack_des, -# MAGIC month, -# MAGIC quarter, -# MAGIC replace(price,',','' ), -# MAGIC replace(sales_unit,',','' ), -# MAGIC replace(sales_value,',','' ), -# MAGIC digital_spread_rate, -# MAGIC weighted_spread_rate, -# MAGIC counting_unit, -# MAGIC null, -# MAGIC null, -# MAGIC null, -# MAGIC null, -# MAGIC null, -# MAGIC 'DM', -# MAGIC 'NIAD', -# MAGIC null, -# MAGIC null, -# MAGIC null, -# MAGIC null, -# MAGIC 0, -# MAGIC null -# MAGIC from dwd.dwd_gnd_ext_retail_nataional_niad - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-1: load rawdata to tmp table -# MAGIC -- 1.2 load brand data to tmp.tmp_retail_pack_rawdata -# MAGIC -- 1.2.8 load from dwd.dwd_gnd_ext_retail_nataional_rd (pack-RD-肾科-全国.xlsx) -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC insert into table tmp.tmp_retail_pack_rawdata -# MAGIC -# MAGIC ------------------------------ *hard_code* ------------------------------------------ -# MAGIC -- 剔除利尿剂数据 -# MAGIC with tmp_exclusion as ( -# MAGIC select distinct product_id -# MAGIC from dwd.dwd_gnd_ext_retail_pack_property -# MAGIC where lower(atc2_cod) = 'c03' -# MAGIC ) -# MAGIC ------------------------------ *hard_code* ------------------------------------------ -# MAGIC -# MAGIC select -# MAGIC case when length(zk_product_id) < 7 then right(concat('0000000',zk_product_id),7) else zk_product_id end as product_id, -# MAGIC zk_product_id, -# MAGIC zk_region, -# MAGIC zk_rx_otc, -# MAGIC zk_medicine_type, -# MAGIC zk_medicine_tier1, -# MAGIC zk_medicine_tier2, -# MAGIC zk_medicine_tier3, -# MAGIC zk_medicine_tier4, -# MAGIC zk_common_name, -# MAGIC zk_dosage_form, -# MAGIC zk_user_type, -# MAGIC zk_category_name, -# MAGIC zk_product_name, -# MAGIC zk_brand_name, -# MAGIC zk_manu_des, -# MAGIC zk_corp_des, -# MAGIC zk_pack_des, -# MAGIC month, -# MAGIC quarter, -# MAGIC replace(price,',','' ), -# MAGIC replace(sales_unit,',','' ), -# MAGIC replace(sales_value,',','' ), -# MAGIC digital_spread_rate, -# MAGIC weighted_spread_rate, -# MAGIC counting_unit, -# MAGIC null, -# MAGIC null, -# MAGIC null, -# MAGIC null, -# MAGIC null, -# MAGIC 'RD', -# MAGIC 'RD Market', -# MAGIC null, -# MAGIC null, -# MAGIC null, -# MAGIC null, -# MAGIC 0, -# MAGIC null -# MAGIC from dwd.dwd_gnd_ext_retail_nataional_rd a -# MAGIC where not exists ( -# MAGIC select * from tmp_exclusion b -# MAGIC where case when length(zk_product_id) < 7 then right(concat('0000000',zk_product_id),7) else zk_product_id end = b.product_id -# MAGIC ) -# MAGIC - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-1: load rawdata to tmp table -# MAGIC -- 1.2 load brand data to tmp.tmp_retail_pack_rawdata -# MAGIC -- 1.2.9 load from dwd.dwd_gnd_ext_retail_metoprolol_tartrat (pack-CV-酒石酸美托洛尔.xlsx) -# MAGIC -- 2024年采买了酒石酸美托洛尔的PACK数据,2025年未采买 -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC --insert into table tmp.tmp_retail_pack_rawdata -# MAGIC -# MAGIC select -# MAGIC case when length(zk_product_id) < 7 then right(concat('0000000',zk_product_id),7) else zk_product_id end as product_id, -# MAGIC zk_product_id, -# MAGIC zk_region, -# MAGIC zk_rx_otc, -# MAGIC zk_medicine_type, -# MAGIC zk_medicine_tier1, -# MAGIC zk_medicine_tier2, -# MAGIC zk_medicine_tier3, -# MAGIC zk_medicine_tier4, -# MAGIC zk_common_name, -# MAGIC zk_dosage_form, -# MAGIC zk_user_type, -# MAGIC zk_category_name, -# MAGIC zk_product_name, -# MAGIC zk_brand_name, -# MAGIC zk_manu_des, -# MAGIC zk_corp_des, -# MAGIC zk_pack_des, -# MAGIC month, -# MAGIC quarter, -# MAGIC replace(price,',','' ), -# MAGIC replace(sales_unit,',','' ), -# MAGIC replace(sales_value,',','' ), -# MAGIC digital_spread_rate, -# MAGIC weighted_spread_rate, -# MAGIC counting_unit, -# MAGIC null, -# MAGIC null, -# MAGIC null, -# MAGIC null, -# MAGIC null, -# MAGIC 'CV', -# MAGIC '高血压用药', -# MAGIC null, -# MAGIC null, -# MAGIC null, -# MAGIC null, -# MAGIC 0, -# MAGIC null -# MAGIC from dwd.dwd_gnd_ext_retail_metoprolol_tartrat a -# MAGIC ------------------------------ *hard_code* ------------------------------------------ -# MAGIC -- 24年关于 CV-高血压的PACK数据,额外买了“酒石酸美托洛尔”的24省数据 -# MAGIC -- 所以这里只取24省明细数据,全国的数已经在“pack-CV-高血压-化学药-全国.xlsx”中取过了 -# MAGIC where zk_region <> '全国' -# MAGIC ------------------------------ *hard_code* ------------------------------------------ - -# COMMAND ---------- - -# %sql -# 20260302 chenwu取消此段运行,小儿咳喘模版暂不使用。Fasenra Market数据由DTP RAW DATA上传 -# ------------------------------------------------------------------------------------- -# -- STEP-1: load rawdata to tmp table -# -- 1.2 load brand data to tmp.tmp_retail_pack_rawdata -# -- 1.2.10 load from dwd.dwd_gnd_ext_retail_asthma (pack-手动补充) -# -- 手动补充的小儿咳喘的数据,这些数据无需拆分 -# ------------------------------------------------------------------------------------- -# insert into table tmp.tmp_retail_pack_rawdata - -# select -# case when length(zk_product_id) < 7 then right(concat('0000000',zk_product_id),7) else zk_product_id end as product_id, -# zk_product_id, -# zk_region, -# zk_rx_otc, -# zk_medicine_type, -# zk_medicine_tier1, -# zk_medicine_tier2, -# zk_medicine_tier3, -# zk_medicine_tier4, -# zk_common_name, -# zk_dosage_form, -# zk_user_type, -# zk_category_name, -# zk_product_name, -# zk_brand_name, -# zk_manu_des, -# zk_corp_des, -# zk_pack_des, -# month, -# quarter, -# price, -# sales_unit, -# sales_value, -# digital_spread_rate, -# weighted_spread_rate, -# counting_unit, -# null, -# null, -# null, -# null, -# null, -# 'RE_NO_SPLIT', -# '小儿咳喘', -# null, -# null, -# null, -# null, -# 0, -# null -# from dwd.dwd_gnd_ext_retail_asthma - -# COMMAND ---------- - -############################################################END############################################################## \ No newline at end of file diff --git a/EXTERNAL/Retail/01 load_tmp_data.py:Zone.Identifier b/EXTERNAL/Retail/01 load_tmp_data.py:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2x '全国' -# MAGIC order by a.quarter,a.level_ta,a.level_market, c.cmps_des_c,c.prod_des_c -# MAGIC ), tmp_pack_sum as ( -# MAGIC select -# MAGIC a.quarter, -# MAGIC a.zk_regin, -# MAGIC a.level_ta, -# MAGIC a.level_market, -# MAGIC b.cmps_des_c as molecule_desc, -# MAGIC nvl(b.prod_des_c,concat(b.cmps_des_c,'_OTHER_PROD')) as product_desc, -# MAGIC sum(a.sales_value) as sales_val, -# MAGIC round(sum(a.sales_unit * (c.counting_unit/ coalesce(c.unit,1)) ) ,4) as sales_vol -# MAGIC from tmp.tmp_retail_pack_rawdata a -# MAGIC inner join tmp_pack_to_brand b -# MAGIC on a.quarter = b.quarter -# MAGIC and a.level_ta = b.level_ta -# MAGIC and a.level_market = b.level_market -# MAGIC and a.product_id = b.product_id -# MAGIC inner join dwd.dwd_gnd_ext_retail_pack_property c -# MAGIC on a.product_id = c.product_id -# MAGIC where a.data_flag = 0 and zk_regin <> 'ROC' -# MAGIC group by a.quarter, a.zk_regin,a.level_ta,a.level_market,b.cmps_des_c,b.prod_des_c -# MAGIC order by a.quarter,a.zk_regin,a.level_ta -# MAGIC ), tmp_brand as ( -# MAGIC select * from tmp.tmp_retail_level_brand where data_flag = 0 -# MAGIC ),tmp_final as ( -# MAGIC select -# MAGIC a.*, -# MAGIC null as ratio_val, -# MAGIC null as ratio_vol, -# MAGIC null as total_val, -# MAGIC null as total_vol, -# MAGIC 0 as data_flag --从pack聚合出来的brand数据,也是真实的原生数据 -# MAGIC from tmp_pack_sum a -# MAGIC where not exists ( -# MAGIC select 1 from tmp_brand b -# MAGIC where a.quarter = b.quarter -# MAGIC and a.zk_regin = b.province_city -# MAGIC and a.level_ta = b.ta -# MAGIC and a.level_market = b.market -# MAGIC and a.molecule_desc = b.molecule -# MAGIC and a.product_desc = b.brand -# MAGIC ) -# MAGIC ) -# MAGIC -# MAGIC insert into table tmp.tmp_retail_level_brand -# MAGIC select * from tmp_final - -# COMMAND ---------- - -# MAGIC %md -# MAGIC ## STEP-2: substract data from level market to brand - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-2: substract data from level market to brand -# MAGIC -- 2.1 substract level market data and add 'OTHER_MOLECULE' data -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -# MAGIC with tmp_aggregate_market as ( -# MAGIC select -# MAGIC quarter, -# MAGIC province_city, -# MAGIC ta, -# MAGIC market, -# MAGIC sum(sales_val) as sales_val, -# MAGIC sum(sales_vol) as sales_vol -# MAGIC from tmp.tmp_retail_level_molecule -# MAGIC group by quarter, province_city , ta ,market -# MAGIC ),tmp_molecule as ( -# MAGIC select -# MAGIC a.quarter, -# MAGIC a.province_city, -# MAGIC a.ta, -# MAGIC a.market, -# MAGIC a.sales_val - ifnull(b.sales_val, 0) as sales_val, -# MAGIC a.sales_vol - ifnull(b.sales_vol, 0) as sales_vol -# MAGIC from tmp.tmp_retail_level_market a -# MAGIC left join tmp_aggregate_market b -# MAGIC on a.quarter = b.quarter -# MAGIC and a.province_city = b.province_city -# MAGIC and a.ta = b.ta -# MAGIC and a.market = b.market -# MAGIC ) -# MAGIC -# MAGIC -------append OTHER_MOLECULE to tmp.tmp_retail_level_molecule -# MAGIC insert into tmp.tmp_retail_level_molecule -# MAGIC select -# MAGIC quarter, -# MAGIC province_city, -# MAGIC ta, -# MAGIC market, -# MAGIC 'OTHER_MOLECULE', -# MAGIC sales_val, -# MAGIC sales_vol, -# MAGIC 1 -# MAGIC from tmp_molecule -# MAGIC where sales_val > 0 or sales_vol > 0 - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-2: substract data from level market to brand -# MAGIC -- 2.2 substract level molecule data and add 'OTHER_BRAND' data -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC with tmp_aggregate_molecule as ( -# MAGIC select -# MAGIC quarter, -# MAGIC province_city, -# MAGIC ta, -# MAGIC market, -# MAGIC molecule, -# MAGIC sum(sales_val) as sales_val, -# MAGIC sum(sales_vol) as sales_vol -# MAGIC from tmp.tmp_retail_level_brand -# MAGIC group by quarter,province_city ,ta ,market,molecule -# MAGIC ),tmp_brand as ( -# MAGIC select -# MAGIC a.quarter, -# MAGIC a.province_city, -# MAGIC a.ta, -# MAGIC a.market, -# MAGIC a.molecule, -# MAGIC a.sales_val - ifnull(b.sales_val, 0) as sales_val, -# MAGIC a.sales_vol - ifnull(b.sales_vol, 0) as sales_vol -# MAGIC from tmp.tmp_retail_level_molecule a -# MAGIC left join tmp_aggregate_molecule b -# MAGIC on a.quarter = b.quarter -# MAGIC and a.province_city = b.province_city -# MAGIC and a.ta = b.ta -# MAGIC and a.market = b.market -# MAGIC and a.molecule = b.molecule -# MAGIC ) -# MAGIC -# MAGIC -------append OTHER_BRAND to tmp.tmp_retail_level_brand -# MAGIC insert into tmp.tmp_retail_level_brand -# MAGIC select -# MAGIC quarter, -# MAGIC province_city, -# MAGIC ta, -# MAGIC market, -# MAGIC molecule, -# MAGIC 'OTHER_BRAND', -# MAGIC sales_val, -# MAGIC sales_vol, -# MAGIC null, -# MAGIC null, -# MAGIC null, -# MAGIC null, -# MAGIC 1 -# MAGIC from tmp_brand -# MAGIC where sales_val > 0 or sales_vol > 0 - -# COMMAND ---------- - -# MAGIC %md -# MAGIC ## STEP-3: accumulate data from level brand to market - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-3: accumulate data from level brand to market -# MAGIC -- 3.1 accumulate level molecule data and balance 'OTHER_BRAND' & 'OTHER_MOLECULE' data -# MAGIC -- 3.1.1 accumulate level molecule data -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC with tmp_aggregate_molecule as ( -# MAGIC select -# MAGIC quarter, -# MAGIC province_city, -# MAGIC ta, -# MAGIC market, -# MAGIC molecule, -# MAGIC sum(sales_val) as sales_val, -# MAGIC sum(sales_vol) as sales_vol -# MAGIC from tmp.tmp_retail_level_brand -# MAGIC group by quarter,province_city ,ta ,market,molecule -# MAGIC ), tmp_append_molecule as ( -# MAGIC select a.* -# MAGIC from tmp_aggregate_molecule a -# MAGIC where not exists ( -# MAGIC select 1 -# MAGIC from tmp.tmp_retail_level_molecule b -# MAGIC where a.quarter = b.quarter -# MAGIC and a.province_city = b.province_city -# MAGIC and a.ta = b.ta -# MAGIC and a.market = b.market -# MAGIC and a.molecule = b.molecule -# MAGIC ) -# MAGIC ) -# MAGIC -------append level molecule data accumulate from level brand -# MAGIC insert into tmp.tmp_retail_level_molecule -# MAGIC select -# MAGIC quarter, -# MAGIC province_city, -# MAGIC ta, -# MAGIC market, -# MAGIC molecule, -# MAGIC sales_val, -# MAGIC sales_vol, -# MAGIC 2 -# MAGIC from tmp_append_molecule - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-3: accumulate data from level brand to market -# MAGIC -- 3.1 accumulate level molecule data and balance 'OTHER_BRAND'& 'OTHER_MOLECULE' data -# MAGIC -- 3.1.2 balance 'OTHER_MOLECULE' data -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -# MAGIC merge into tmp.tmp_retail_level_molecule a -# MAGIC using( -# MAGIC select * from tmp.tmp_retail_level_molecule -# MAGIC where data_flag = 2 -# MAGIC ) as b -# MAGIC on a.quarter = b.quarter -# MAGIC and a.province_city = b.province_city -# MAGIC and a.ta = b.ta -# MAGIC and a.market = b.market -# MAGIC and a.molecule = 'OTHER_MOLECULE' -# MAGIC and a.data_flag = 1 -# MAGIC when matched then -# MAGIC update set -# MAGIC a.sales_val = a.sales_val - b.sales_val, -# MAGIC a.sales_vol = a.sales_vol - b.sales_vol -# MAGIC - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-3: accumulate data from level brand to market -# MAGIC -- 3.1 accumulate level molecule data and balance 'OTHER_BRAND'& 'OTHER_MOLECULE' data -# MAGIC -- 3.1.3 balance 'OTHER_BRAND' data -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -# MAGIC merge into tmp.tmp_retail_level_brand a -# MAGIC using( -# MAGIC select * from tmp.tmp_retail_level_molecule -# MAGIC where data_flag = 2 -# MAGIC ) as b -# MAGIC on a.quarter = b.quarter -# MAGIC and a.province_city = b.province_city -# MAGIC and a.ta = b.ta -# MAGIC and a.market = b.market -# MAGIC and a.molecule = 'OTHER_MOLECULE' -# MAGIC and a.brand = 'OTHER_BRAND' -# MAGIC and a.data_flag = 1 -# MAGIC when matched then -# MAGIC update set -# MAGIC a.sales_val = a.sales_val - b.sales_val, -# MAGIC a.sales_vol = a.sales_vol - b.sales_vol - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-3: accumulate data from level brand to market -# MAGIC -- 3.2 accumulate level market data and balance 'OTHER_MOLECULE' data -# MAGIC -- 3.2.1 accumulate level market data -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -# MAGIC with tmp_aggregate_market as ( -# MAGIC select -# MAGIC quarter, -# MAGIC province_city, -# MAGIC ta, -# MAGIC market, -# MAGIC sum(sales_val) as sales_val, -# MAGIC sum(sales_vol) as sales_vol -# MAGIC from tmp.tmp_retail_level_molecule -# MAGIC group by quarter,province_city ,ta ,market -# MAGIC ), tmp_append_market as ( -# MAGIC select a.* -# MAGIC from tmp_aggregate_market a -# MAGIC where not exists ( -# MAGIC select 1 -# MAGIC from tmp.tmp_retail_level_market b -# MAGIC where a.quarter = b.quarter -# MAGIC and a.province_city = b.province_city -# MAGIC and a.ta = b.ta -# MAGIC and a.market = b.market -# MAGIC ) -# MAGIC ) -# MAGIC -------append level market data accumulate from level molecule -# MAGIC insert into tmp.tmp_retail_level_market -# MAGIC select -# MAGIC quarter, -# MAGIC province_city, -# MAGIC ta, -# MAGIC market, -# MAGIC sales_val, -# MAGIC sales_vol, -# MAGIC 2 -# MAGIC from tmp_append_market - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-3: accumulate data from level brand to market -# MAGIC -- 3.2 accumulate level market data and balance 'OTHER_MOLECULE' data -# MAGIC -- 3.2.2 balance 'OTHER_MOLECULE' data -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -# MAGIC ---------not using in this case, beacuse level ta has no data------------------------ -# MAGIC --merge into tmp.tmp_retail_level_market a -# MAGIC --using( -# MAGIC -- select * from tmp.tmp_retail_level_molecule -# MAGIC -- where data_flag = 2 -# MAGIC --) as b -# MAGIC --on a.quarter = b.quarter -# MAGIC --and a.province_city = b.province_city -# MAGIC --and a.ta = b.ta -# MAGIC --and a.market = 'OTHER_MARKET' -# MAGIC --and a.data_flag = 1 -# MAGIC --when matched then -# MAGIC -- update set -# MAGIC -- a.sales_val = a.sales_val - b.sales_val, -# MAGIC -- a.sales_vol = a.sales_vol - b.sales_vol - -# COMMAND ---------- - -# MAGIC %md -# MAGIC ## STEP-4: calculate brand ratio - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-4: calculate brand ratio -# MAGIC -- update total_val&total_vol and ratio_val&ratio_vol -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -# MAGIC merge into tmp.tmp_retail_level_brand a -# MAGIC using( -# MAGIC select * from tmp.tmp_retail_level_brand -# MAGIC where province_city = '全国' -# MAGIC ) as b -# MAGIC on a.quarter = b.quarter -# MAGIC and a.ta = b.ta -# MAGIC and a.market = b.market -# MAGIC and a.molecule = b.molecule -# MAGIC and a.brand = b.brand -# MAGIC when matched then -# MAGIC update set -# MAGIC a.total_val = b.sales_val, -# MAGIC a.total_vol = b.sales_vol, -# MAGIC a.ratio_val = round(a.sales_val/b.sales_val,10), -# MAGIC a.ratio_vol = round(a.sales_vol/b.sales_vol,10) - -# COMMAND ---------- - -############################################################END############################################################## \ No newline at end of file diff --git a/EXTERNAL/Retail/02 split_brand_data.py:Zone.Identifier b/EXTERNAL/Retail/02 split_brand_data.py:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2x 'OTHER_MOLECULE') -- 新增自定义非OTHER_MOLECULE -# MAGIC and a.product_name = b.brand -# MAGIC ), tmp_other_brand as ( -# MAGIC -----------------------ta matched & market matched & OTHER_MOLECULE & brand matched----------------- -# MAGIC select -# MAGIC a.*,b.*,1 as brand_flag -# MAGIC from tmp_pack_mapping a -# MAGIC inner join tmp_level b -# MAGIC on a.level_ta = b.ta -# MAGIC and a.level_market = b.market -# MAGIC and b.molecule = 'OTHER_MOLECULE' -# MAGIC and a.product_name = b.brand -# MAGIC where a.product_id not in ( -# MAGIC select distinct product_id from tmp_molecule_brand -# MAGIC ) -# MAGIC ), tmp_molecule_other as( -# MAGIC -----------------------ta matched & market matched & molecule matched & OTHER_BRAND---------------- -# MAGIC select -# MAGIC a.*,b.*,2 as brand_flag -# MAGIC from tmp_pack_mapping a -# MAGIC inner join tmp_level b -# MAGIC on a.level_ta = b.ta -# MAGIC and a.level_market = b.market -# MAGIC and a.molecule_name = b.molecule -# MAGIC and b.brand = 'OTHER_BRAND' -# MAGIC where a.product_id not in ( -# MAGIC select distinct product_id from tmp_molecule_brand -# MAGIC union all -# MAGIC select distinct product_id from tmp_other_brand -# MAGIC ) -# MAGIC ), tmp_other_other as ( -# MAGIC -----------------------ta matched & market matched & OTHER_MOLECULE& OTHER_BRAND--------------------- -# MAGIC select -# MAGIC a.*,b.*,2 as brand_flag -# MAGIC from tmp_pack_mapping a -# MAGIC inner join tmp_level b -# MAGIC on a.level_ta = b.ta -# MAGIC and a.level_market = b.market -# MAGIC and b.molecule = 'OTHER_MOLECULE' -# MAGIC and b.brand = 'OTHER_BRAND' -# MAGIC where a.product_id not in ( -# MAGIC select distinct product_id from tmp_molecule_brand -# MAGIC union all -# MAGIC select distinct product_id from tmp_other_brand -# MAGIC union all -# MAGIC select distinct product_id from tmp_molecule_other -# MAGIC ) -# MAGIC ), tmp_brand_mapping as ( -# MAGIC select * from tmp_molecule_brand -# MAGIC union all -# MAGIC select * from tmp_other_brand -# MAGIC union all -# MAGIC select * from tmp_molecule_other -# MAGIC union all -# MAGIC select * from tmp_other_other -# MAGIC ) -# MAGIC -# MAGIC ------------------------- generate product_id&level relationship mapping table------------------------ -# MAGIC insert overwrite table tmp.tmp_retail_pack_mapping -# MAGIC -# MAGIC select -# MAGIC product_id, -# MAGIC zk_product_id, -# MAGIC level_ta, -# MAGIC level_market, -# MAGIC molecule as level_molecule, -# MAGIC brand as level_brand, -# MAGIC pack_code, -# MAGIC molecule_code, -# MAGIC molecule_name, -# MAGIC product_code, -# MAGIC product_name, -# MAGIC brand_flag, -# MAGIC corp_cod -# MAGIC from tmp_brand_mapping - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-1: generate product_id&level relationship mapping table -# MAGIC -- 1.1 generate mapping table -# MAGIC -- 1.1.2 update special case 'GI-慢性胃炎、胃溃疡-其他拉唑类' -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC UPDATE tmp.tmp_retail_pack_mapping -# MAGIC SET level_molecule = '其他拉唑类' -# MAGIC where level_ta = 'GI' -# MAGIC and level_market = '慢性胃炎、胃溃疡' -# MAGIC and level_molecule = 'OTHER_MOLECULE' -# MAGIC and level_brand = 'OTHER_BRAND' -# MAGIC and molecule_desc like '%拉唑%' -# MAGIC --and product_id in ( -# MAGIC -- select product_id -# MAGIC -- from dwd.dwd_gnd_ext_retail_pack_property -# MAGIC -- where cmps_cod IN ('001658','002782','008617','001051','001853','008467') -# MAGIC --) - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-1: generate product_id&level relationship mapping table -# MAGIC -- 1.1 generate mapping table -# MAGIC -- 1.1.3 获取market信息,产品重新归属 -# MAGIC -- 1.1.3.1 B2C标签表整合关联tblmarket 表,获取market 信息, 更新tmp.tmp_zk_retail_pack_property -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC insert overwrite table tmp.tmp_zk_retail_pack_property -# MAGIC with tmp_pack_property as ( -# MAGIC select -# MAGIC ------------------------------------------------------------------- -# MAGIC -- format pack_code & prod_code -# MAGIC case when length(trim(iqvia_pack_code)) < 12 and trim(iqvia_pack_code) REGEXP '^[0-9]' -# MAGIC then right(concat('000000000000',trim(iqvia_pack_code)),12) -# MAGIC else trim(iqvia_pack_code) -# MAGIC end as new_iqvia_pack_code, -# MAGIC case when length(iqvia_prod_code) < 9 then right(concat('000000000',iqvia_prod_code),9) else iqvia_prod_code end as new_iqvia_prod_code, -# MAGIC ------------------------------------------------------------------- -# MAGIC * -# MAGIC from dwd.dwd_gnd_ext_retail_pack_property -# MAGIC ), tmp_pack_additional_attribute as ( -# MAGIC select -# MAGIC ------------------------------------------------------------------- -# MAGIC -- format pack_code -# MAGIC case when length(trim(Pack_Code)) < 12 and trim(Pack_Code) REGEXP '^[0-9]' -# MAGIC then right(concat('000000000000',trim(Pack_Code)),12) -# MAGIC else trim(Pack_Code) -# MAGIC end as new_pack_code, -# MAGIC ------------------------------------------------------------------- -# MAGIC * -# MAGIC from dwd.dwd_ims_td_pack_additional_attribute -# MAGIC ), tmp_tblmarket as ( -# MAGIC select -# MAGIC ------------------------------------------------------------------- -# MAGIC -- format pack_code & prod_code -# MAGIC case when length(trim(pack_code)) < 12 and trim(pack_code) REGEXP '^[0-9]' -# MAGIC then right(concat('000000000000',trim(pack_code)),12) -# MAGIC else trim(pack_code) -# MAGIC end as new_pack_code, -# MAGIC case when length(Product_Code) < 9 then right(concat('000000000',Product_Code),9) else Product_Code end as new_prod_code, -# MAGIC ------------------------------------------------------------------- -# MAGIC * -# MAGIC from dwd.dwd_gnd_ext_retail_tblmarket -# MAGIC ), tmp1 as ( -# MAGIC -# MAGIC select distinct -# MAGIC prod.iqvia_lineno -# MAGIC ------------------------------------------------------------------- -# MAGIC -- format pack_code & prod_code -# MAGIC ,prod.new_iqvia_pack_code as iqvia_pack_code -# MAGIC ,prod.new_iqvia_prod_code as PROD_COD -# MAGIC ------------------------------------------------------------------- -# MAGIC ,prod.iqvia_notes -# MAGIC ,prod.new_pack_flag -# MAGIC ,prod.is_exists_chpa -# MAGIC ,prod.product_id -# MAGIC ,prod.prescription_nature -# MAGIC ,prod.medicine_type -# MAGIC ,prod.zk_medicine_tier1 -# MAGIC ,prod.zk_medicine_tier2 -# MAGIC ,prod.zk_medicine_tier3 -# MAGIC ,prod.zk_medicine_tier4 -# MAGIC ,prod.common_name -# MAGIC ,prod.dosage_form -# MAGIC ,prod.user_type -# MAGIC ,prod.category_name -# MAGIC ,prod.product_name -# MAGIC ,prod.brand_name -# MAGIC ,prod.zk_manu_des -# MAGIC ,prod.zk_corp_des -# MAGIC ,prod.zk_pack_des -# MAGIC ,prod.counting_unit_a -# MAGIC ,prod.dosage_unit_a -# MAGIC ,prod.unit_a -# MAGIC ,prod.app1_cod -# MAGIC ,prod.app1_des -# MAGIC ,prod.app1_des_c -# MAGIC ,prod.app2_cod -# MAGIC ,prod.app2_des -# MAGIC ,prod.app2_des_c -# MAGIC ,prod.app3_cod -# MAGIC ,prod.app3_des -# MAGIC ,prod.app3_des_c -# MAGIC ,prod.atc1_cod -# MAGIC ,prod.atc1_des -# MAGIC ,prod.atc1_des_c -# MAGIC ,prod.atc2_cod -# MAGIC ,prod.atc2_des -# MAGIC ,prod.atc2_des_c -# MAGIC ,prod.atc3_cod -# MAGIC ,prod.atc3_des -# MAGIC ,prod.atc3_des_c -# MAGIC ,prod.atc4_cod -# MAGIC ,prod.atc4_des -# MAGIC ,prod.atc4_des_c -# MAGIC ,prod.bio_desc -# MAGIC ,right(concat('000000',nvl(prod.cmps_cod,0 )),6) cmps_cod -# MAGIC ,prod.cmps_des -# MAGIC ,prod.cmps_des_c -# MAGIC ,prod.corp_cod -# MAGIC ,prod.corp_des -# MAGIC ,prod.corp_des_c -# MAGIC ,prod.edl_desc -# MAGIC ,prod.eth_otc_desc -# MAGIC ,prod.gene_orig_desc -# MAGIC ,prod.gqce_desc -# MAGIC ,prod.manu_cod -# MAGIC ,prod.manu_des -# MAGIC ,prod.manu_des_c -# MAGIC ,prod.mnfl_cod -# MAGIC ,prod.mnfl_des -# MAGIC ,prod.nrdl_desc -# MAGIC ,prod.pack_des -# MAGIC ,prod.stgh_des -# MAGIC ,prod.pack_lch -# MAGIC ,prod.paed_desc -# MAGIC ,prod.prod_des -# MAGIC ,prod.prod_des_c -# MAGIC ,prod.tcm_desc -# MAGIC ,prod.vbp_desc -# MAGIC ,prod.unit -# MAGIC ,prod.counting_unit -# MAGIC ,prod.dosage_unit -# MAGIC ,nvl(MOLE.NRDL_Entry_Date,'') AS NRDL_ENTRY_DATE -# MAGIC ,tblmkt.market -# MAGIC ,tblmkt.bu -# MAGIC ,nvl(tblmkt.extend_market_ratio,1) as extend_market_ratio -# MAGIC from tmp_pack_property prod -# MAGIC LEFT JOIN tmp_pack_additional_attribute MOLE -# MAGIC ---------------------------------------------------------------------------------- -# MAGIC ON prod.new_iqvia_pack_code = MOLE.new_pack_code -# MAGIC ---------------------------------------------------------------------------------- -# MAGIC left join ( -# MAGIC select market -# MAGIC ,bu -# MAGIC ,atc1_code -# MAGIC ,atc2_code -# MAGIC ,atc3_code -# MAGIC ,atc4_code -# MAGIC ,nfc1_code -# MAGIC ,nfc2_code -# MAGIC ,nfc3_code -# MAGIC ,Molecule_Code -# MAGIC ,zk_common_name -# MAGIC ,extend_market_ratio -# MAGIC ,zk_product_id -# MAGIC ,zk_dosage_form -# MAGIC ------------------------------------- -# MAGIC ,new_pack_code as pack_code -# MAGIC ,new_prod_code as Product_Code -# MAGIC ------------------------------------- -# MAGIC ,not_in_flag -# MAGIC ,extend_market -# MAGIC from tmp_tblmarket -# MAGIC -- where (market not in( 'ZOK Default Market', 'Inhaled Extended Market') or (case when market in( 'Inhaled Extended Market') then zk_product_id is not null end)) -# MAGIC where 1=1 -# MAGIC and Extend_Market IS NULL -# MAGIC AND ( NOT_IN_FLAG IS NULL or NOT_IN_FLAG = '1' ) -# MAGIC ) tblmkt -# MAGIC on nvl(prod.ATC1_COD,'') = case when tblmkt.ATC1_Code is null then nvl(prod.ATC1_COD,'') else tblmkt.ATC1_Code end -# MAGIC and nvl(prod.ATC2_COD,'') = case when tblmkt.ATC2_Code is null then nvl(prod.ATC2_COD,'') else tblmkt.ATC2_Code end -# MAGIC and nvl(prod.ATC3_COD,'') = case when tblmkt.ATC3_Code is null then nvl(prod.ATC3_COD,'') else tblmkt.ATC3_Code end -# MAGIC and nvl(prod.ATC4_COD,'') = case when tblmkt.ATC4_Code is null then nvl(prod.ATC4_COD,'') else tblmkt.ATC4_Code end -# MAGIC and nvl(prod.APP1_COD,'') = case when tblmkt.NFC1_Code is null then nvl(prod.APP1_COD,'') else tblmkt.NFC1_Code end -# MAGIC and nvl(prod.APP2_COD,'') = case when tblmkt.NFC2_Code is null then nvl(prod.APP2_COD,'') else tblmkt.NFC2_Code end -# MAGIC and nvl(prod.APP3_COD,'') = case when tblmkt.NFC3_Code is null then nvl(prod.APP3_COD,'') else tblmkt.NFC3_Code end -# MAGIC -------------------------------------------------------------------------------------- -# MAGIC and nvl(prod.new_iqvia_prod_code, 0) = case when tblmkt.Product_Code is null then nvl(prod.new_iqvia_prod_code,0 ) else tblmkt.Product_Code end -# MAGIC and nvl(prod.new_iqvia_pack_code, 0) = case when tblmkt.Pack_Code is null then nvl(prod.new_iqvia_pack_code,0 ) else tblmkt.Pack_Code end -# MAGIC -------------------------------------------------------------------------------------- -# MAGIC and right(concat('000000',nvl(prod.cmps_cod,0 )),6) = case when tblmkt.Molecule_Code is null then right(concat('000000',nvl(prod.cmps_cod,0 )),6) else right(concat('000000',nvl(tblmkt.Molecule_Code,0 )),6) end -# MAGIC where tblmkt.market is not null -# MAGIC ) -# MAGIC , tmp2 as ( -# MAGIC select distinct -# MAGIC prod.iqvia_lineno -# MAGIC ------------------------------------------------------------------- -# MAGIC -- format pack_code & prod_code -# MAGIC ,prod.new_iqvia_pack_code as iqvia_pack_code -# MAGIC ,prod.new_iqvia_prod_code as PROD_COD -# MAGIC ------------------------------------------------------------------- -# MAGIC ,prod.iqvia_notes -# MAGIC ,prod.new_pack_flag -# MAGIC ,prod.is_exists_chpa -# MAGIC ,prod.product_id -# MAGIC ,prod.prescription_nature -# MAGIC ,prod.medicine_type -# MAGIC ,prod.zk_medicine_tier1 -# MAGIC ,prod.zk_medicine_tier2 -# MAGIC ,prod.zk_medicine_tier3 -# MAGIC ,prod.zk_medicine_tier4 -# MAGIC ,prod.common_name -# MAGIC ,prod.dosage_form -# MAGIC ,prod.user_type -# MAGIC ,prod.category_name -# MAGIC ,prod.product_name -# MAGIC ,prod.brand_name -# MAGIC ,prod.zk_manu_des -# MAGIC ,prod.zk_corp_des -# MAGIC ,prod.zk_pack_des -# MAGIC ,prod.counting_unit_a -# MAGIC ,prod.dosage_unit_a -# MAGIC ,prod.unit_a -# MAGIC ,prod.app1_cod -# MAGIC ,prod.app1_des -# MAGIC ,prod.app1_des_c -# MAGIC ,prod.app2_cod -# MAGIC ,prod.app2_des -# MAGIC ,prod.app2_des_c -# MAGIC ,prod.app3_cod -# MAGIC ,prod.app3_des -# MAGIC ,prod.app3_des_c -# MAGIC ,prod.atc1_cod -# MAGIC ,prod.atc1_des -# MAGIC ,prod.atc1_des_c -# MAGIC ,prod.atc2_cod -# MAGIC ,prod.atc2_des -# MAGIC ,prod.atc2_des_c -# MAGIC ,prod.atc3_cod -# MAGIC ,prod.atc3_des -# MAGIC ,prod.atc3_des_c -# MAGIC ,prod.atc4_cod -# MAGIC ,prod.atc4_des -# MAGIC ,prod.atc4_des_c -# MAGIC ,prod.bio_desc -# MAGIC ,right(concat('000000',nvl(prod.cmps_cod,0 )),6) cmps_cod -# MAGIC ,prod.cmps_des -# MAGIC ,prod.cmps_des_c -# MAGIC ,prod.corp_cod -# MAGIC ,prod.corp_des -# MAGIC ,prod.corp_des_c -# MAGIC ,prod.edl_desc -# MAGIC ,prod.eth_otc_desc -# MAGIC ,prod.gene_orig_desc -# MAGIC ,prod.gqce_desc -# MAGIC ,prod.manu_cod -# MAGIC ,prod.manu_des -# MAGIC ,prod.manu_des_c -# MAGIC ,prod.mnfl_cod -# MAGIC ,prod.mnfl_des -# MAGIC ,prod.nrdl_desc -# MAGIC ,prod.pack_des -# MAGIC ,prod.stgh_des -# MAGIC ,prod.pack_lch -# MAGIC ,prod.paed_desc -# MAGIC ,prod.prod_des -# MAGIC ,prod.prod_des_c -# MAGIC ,prod.tcm_desc -# MAGIC ,prod.vbp_desc -# MAGIC ,prod.unit -# MAGIC ,prod.counting_unit -# MAGIC ,prod.dosage_unit -# MAGIC ,nvl(MOLE.NRDL_Entry_Date,'') AS NRDL_ENTRY_DATE -# MAGIC ,tblmkt.market -# MAGIC ,tblmkt.bu -# MAGIC ,nvl(tblmkt.extend_market_ratio,1) as extend_market_ratio -# MAGIC ,1 as f_flag -# MAGIC from tmp_pack_property prod -# MAGIC LEFT JOIN tmp_pack_additional_attribute MOLE -# MAGIC ---------------------------------------------------------------------------------- -# MAGIC ON prod.new_iqvia_pack_code = MOLE.new_pack_code -# MAGIC ---------------------------------------------------------------------------------- -# MAGIC left join ( -# MAGIC select market -# MAGIC ,bu -# MAGIC ,atc1_code -# MAGIC ,atc2_code -# MAGIC ,atc3_code -# MAGIC ,atc4_code -# MAGIC ,nfc1_code -# MAGIC ,nfc2_code -# MAGIC ,nfc3_code -# MAGIC ,Molecule_Code -# MAGIC ,zk_common_name -# MAGIC ,extend_market_ratio -# MAGIC ,zk_product_id -# MAGIC ,zk_dosage_form -# MAGIC ------------------------------------- -# MAGIC ,new_pack_code as pack_code -# MAGIC ,new_prod_code as Product_Code -# MAGIC ------------------------------------- -# MAGIC ,not_in_flag -# MAGIC ,extend_market -# MAGIC from tmp_tblmarket -# MAGIC -- where (market not in( 'ZOK Default Market', 'Inhaled Extended Market') or (case when market in( 'Inhaled Extended Market') then zk_product_id is not null end)) -# MAGIC where 1=1 -# MAGIC and Extend_Market IS NULL and NOT_IN_FLAG ='0' -# MAGIC -# MAGIC )tblmkt -# MAGIC on nvl(prod.ATC1_COD,'') = case when tblmkt.ATC1_Code is null then nvl(prod.ATC1_COD,'') else tblmkt.ATC1_Code end -# MAGIC and nvl(prod.ATC2_COD,'') = case when tblmkt.ATC2_Code is null then nvl(prod.ATC2_COD,'') else tblmkt.ATC2_Code end -# MAGIC and nvl(prod.ATC3_COD,'') = case when tblmkt.ATC3_Code is null then nvl(prod.ATC3_COD,'') else tblmkt.ATC3_Code end -# MAGIC and nvl(prod.ATC4_COD,'') = case when tblmkt.ATC4_Code is null then nvl(prod.ATC4_COD,'') else tblmkt.ATC4_Code end -# MAGIC and nvl(prod.APP1_COD,'') = case when tblmkt.NFC1_Code is null then nvl(prod.APP1_COD,'') else tblmkt.NFC1_Code end -# MAGIC and nvl(prod.APP2_COD,'') = case when tblmkt.NFC2_Code is null then nvl(prod.APP2_COD,'') else tblmkt.NFC2_Code end -# MAGIC and nvl(prod.APP3_COD,'') = case when tblmkt.NFC3_Code is null then nvl(prod.APP3_COD,'') else tblmkt.NFC3_Code end -# MAGIC -------------------------------------------------------------------------------------- -# MAGIC and nvl(prod.new_iqvia_prod_code, 0) = case when tblmkt.Product_Code is null then nvl(prod.new_iqvia_prod_code,0 ) else tblmkt.Product_Code end -# MAGIC and nvl(prod.new_iqvia_pack_code, 0) = case when tblmkt.Pack_Code is null then nvl(prod.new_iqvia_pack_code,0 ) else tblmkt.Pack_Code end -# MAGIC -------------------------------------------------------------------------------------- -# MAGIC and right(concat('000000',nvl(prod.cmps_cod,0 )),6) = case when tblmkt.Molecule_Code is null then right(concat('000000',nvl(prod.cmps_cod,0 )),6) else right(concat('000000',nvl(tblmkt.Molecule_Code,0 )),6) end -# MAGIC where tblmkt.market is not null -# MAGIC -# MAGIC ) -# MAGIC , tmp3 as ( -# MAGIC select distinct -# MAGIC tmp1.iqvia_lineno -# MAGIC ,tmp1.iqvia_pack_code -# MAGIC ,tmp1.PROD_COD -# MAGIC ,tmp1.iqvia_notes -# MAGIC ,tmp1.new_pack_flag -# MAGIC ,tmp1.is_exists_chpa -# MAGIC ,tmp1.product_id -# MAGIC ,tmp1.prescription_nature -# MAGIC ,tmp1.medicine_type -# MAGIC ,tmp1.zk_medicine_tier1 -# MAGIC ,tmp1.zk_medicine_tier2 -# MAGIC ,tmp1.zk_medicine_tier3 -# MAGIC ,tmp1.zk_medicine_tier4 -# MAGIC ,tmp1.common_name -# MAGIC ,tmp1.dosage_form -# MAGIC ,tmp1.user_type -# MAGIC ,tmp1.category_name -# MAGIC ,tmp1.product_name -# MAGIC ,tmp1.brand_name -# MAGIC ,tmp1.zk_manu_des -# MAGIC ,tmp1.zk_corp_des -# MAGIC ,tmp1.zk_pack_des -# MAGIC ,tmp1.counting_unit_a -# MAGIC ,tmp1.dosage_unit_a -# MAGIC ,tmp1.unit_a -# MAGIC ,tmp1.app1_cod -# MAGIC ,tmp1.app1_des -# MAGIC ,tmp1.app1_des_c -# MAGIC ,tmp1.app2_cod -# MAGIC ,tmp1.app2_des -# MAGIC ,tmp1.app2_des_c -# MAGIC ,tmp1.app3_cod -# MAGIC ,tmp1.app3_des -# MAGIC ,tmp1.app3_des_c -# MAGIC ,tmp1.atc1_cod -# MAGIC ,tmp1.atc1_des -# MAGIC ,tmp1.atc1_des_c -# MAGIC ,tmp1.atc2_cod -# MAGIC ,tmp1.atc2_des -# MAGIC ,tmp1.atc2_des_c -# MAGIC ,tmp1.atc3_cod -# MAGIC ,tmp1.atc3_des -# MAGIC ,tmp1.atc3_des_c -# MAGIC ,tmp1.atc4_cod -# MAGIC ,tmp1.atc4_des -# MAGIC ,tmp1.atc4_des_c -# MAGIC ,tmp1.bio_desc -# MAGIC ,tmp1.cmps_cod -# MAGIC ,tmp1.cmps_des -# MAGIC ,tmp1.cmps_des_c -# MAGIC ,tmp1.corp_cod -# MAGIC ,tmp1.corp_des -# MAGIC ,tmp1.corp_des_c -# MAGIC ,tmp1.edl_desc -# MAGIC ,tmp1.eth_otc_desc -# MAGIC ,tmp1.gene_orig_desc -# MAGIC ,tmp1.gqce_desc -# MAGIC ,tmp1.manu_cod -# MAGIC ,tmp1.manu_des -# MAGIC ,tmp1.manu_des_c -# MAGIC ,tmp1.mnfl_cod -# MAGIC ,tmp1.mnfl_des -# MAGIC ,tmp1.nrdl_desc -# MAGIC ,tmp1.pack_des -# MAGIC ,tmp1.stgh_des -# MAGIC ,tmp1.pack_lch -# MAGIC ,tmp1.paed_desc -# MAGIC ,tmp1.prod_des -# MAGIC ,tmp1.prod_des_c -# MAGIC ,tmp1.tcm_desc -# MAGIC ,tmp1.vbp_desc -# MAGIC ,tmp1.unit -# MAGIC ,tmp1.counting_unit -# MAGIC ,tmp1.dosage_unit -# MAGIC ,tmp1.NRDL_ENTRY_DATE -# MAGIC ,tmp1.market -# MAGIC ,nvl(t2.bu,tmp1.bu) as bu -# MAGIC ,tmp1.extend_market_ratio -# MAGIC ,IF(tmp1.corp_des_c in('阿斯利康制药集团') ,'Y','N') is_az -# MAGIC from tmp1 left join tmp2 -# MAGIC on nvl(tmp1.ATC1_COD,'') = nvl(tmp2.ATC1_COD,'') -# MAGIC and nvl(tmp1.ATC2_COD,'') = nvl(tmp2.ATC2_COD,'') -# MAGIC and nvl(tmp1.ATC3_COD,'') = nvl(tmp2.ATC3_COD,'') -# MAGIC and nvl(tmp1.ATC4_COD,'') = nvl(tmp2.ATC4_COD,'') -# MAGIC and nvl(tmp1.APP1_COD,'') = nvl(tmp2.APP1_COD,'') -# MAGIC and nvl(tmp1.APP2_COD,'') = nvl(tmp2.APP2_COD,'') -# MAGIC and nvl(tmp1.APP3_COD,'') = nvl(tmp2.APP3_COD,'') -# MAGIC and nvl(tmp1.PROD_COD,'') = nvl(tmp2.PROD_COD,'') -# MAGIC and nvl(tmp1.iqvia_pack_code,'') = nvl(tmp2.iqvia_pack_code,'') -# MAGIC and nvl(tmp1.common_name ,'') = nvl(tmp2.common_name ,'') -# MAGIC and nvl(tmp1.product_id,'') = nvl(tmp2.product_id,'') -# MAGIC and nvl(tmp1.dosage_form ,'') = nvl(tmp2.dosage_form ,'') -# MAGIC and nvl(tmp1.CMPS_COD,'') = nvl(tmp2.CMPS_COD,'') -# MAGIC and nvl(tmp1.market ,'') = nvl(tmp2.market ,'') -# MAGIC left join (select Market, BU,Extend_Market,Extend_Market_Ratio from dwd.dwd_gnd_ext_retail_tblmarket -# MAGIC -- where (market not in( 'ZOK Default Market', 'Inhaled Extended Market') and Extend_Market IS NOT NULL -# MAGIC -- )or (case when market in( 'Inhaled Extended Market') then zk_product_id is not null end) -# MAGIC where Extend_Market IS NOT NULL -# MAGIC ) t2 on tmp1.Market=t2.Extend_Market -# MAGIC where NVL(tmp2.f_flag,0) !=1 -# MAGIC -# MAGIC ) -# MAGIC -# MAGIC -- 合并所有市场数据 -# MAGIC select -# MAGIC * -# MAGIC from tmp3 -# MAGIC --没有匹配上的给默认市场:Non AZ Retail Related Market -# MAGIC union all -# MAGIC select -# MAGIC prod.iqvia_lineno -# MAGIC ------------------------------------------------------------------- -# MAGIC -- format pack_code & prod_code -# MAGIC ,prod.new_iqvia_pack_code as iqvia_pack_code -# MAGIC ,prod.new_iqvia_prod_code as PROD_COD -# MAGIC ------------------------------------------------------------------- -# MAGIC ,prod.iqvia_notes -# MAGIC ,prod.new_pack_flag -# MAGIC ,prod.is_exists_chpa -# MAGIC ,prod.product_id -# MAGIC ,prod.prescription_nature -# MAGIC ,prod.medicine_type -# MAGIC ,prod.zk_medicine_tier1 -# MAGIC ,prod.zk_medicine_tier2 -# MAGIC ,prod.zk_medicine_tier3 -# MAGIC ,prod.zk_medicine_tier4 -# MAGIC ,prod.common_name -# MAGIC ,prod.dosage_form -# MAGIC ,prod.user_type -# MAGIC ,prod.category_name -# MAGIC ,prod.product_name -# MAGIC ,prod.brand_name -# MAGIC ,prod.zk_manu_des -# MAGIC ,prod.zk_corp_des -# MAGIC ,prod.zk_pack_des -# MAGIC ,prod.counting_unit_a -# MAGIC ,prod.dosage_unit_a -# MAGIC ,prod.unit_a -# MAGIC ,prod.app1_cod -# MAGIC ,prod.app1_des -# MAGIC ,prod.app1_des_c -# MAGIC ,prod.app2_cod -# MAGIC ,prod.app2_des -# MAGIC ,prod.app2_des_c -# MAGIC ,prod.app3_cod -# MAGIC ,prod.app3_des -# MAGIC ,prod.app3_des_c -# MAGIC ,prod.atc1_cod -# MAGIC ,prod.atc1_des -# MAGIC ,prod.atc1_des_c -# MAGIC ,prod.atc2_cod -# MAGIC ,prod.atc2_des -# MAGIC ,prod.atc2_des_c -# MAGIC ,prod.atc3_cod -# MAGIC ,prod.atc3_des -# MAGIC ,prod.atc3_des_c -# MAGIC ,prod.atc4_cod -# MAGIC ,prod.atc4_des -# MAGIC ,prod.atc4_des_c -# MAGIC ,prod.bio_desc -# MAGIC ,right(concat('00000',nvl(prod.cmps_cod,0 )),6) cmps_cod -# MAGIC ,prod.cmps_des -# MAGIC ,prod.cmps_des_c -# MAGIC ,prod.corp_cod -# MAGIC ,prod.corp_des -# MAGIC ,prod.corp_des_c -# MAGIC ,prod.edl_desc -# MAGIC ,prod.eth_otc_desc -# MAGIC ,prod.gene_orig_desc -# MAGIC ,prod.gqce_desc -# MAGIC ,prod.manu_cod -# MAGIC ,prod.manu_des -# MAGIC ,prod.manu_des_c -# MAGIC ,prod.mnfl_cod -# MAGIC ,prod.mnfl_des -# MAGIC ,prod.nrdl_desc -# MAGIC ,prod.pack_des -# MAGIC ,prod.stgh_des -# MAGIC ,prod.pack_lch -# MAGIC ,prod.paed_desc -# MAGIC ,prod.prod_des -# MAGIC ,prod.prod_des_c -# MAGIC ,prod.tcm_desc -# MAGIC ,prod.vbp_desc -# MAGIC ,prod.unit -# MAGIC ,prod.counting_unit -# MAGIC ,prod.dosage_unit -# MAGIC ,nvl(MOLE.NRDL_Entry_Date,'') AS NRDL_ENTRY_DATE -# MAGIC ,'Non AZ Retail Related Market' as market -# MAGIC ,tmp3.bu -# MAGIC ,nvl(tmp3.extend_market_ratio,1) as extend_market_ratio -# MAGIC ,IF(PROD.corp_des_c in('阿斯利康制药集团') ,'Y','N') is_az -# MAGIC from tmp_pack_property prod -# MAGIC left join tmp3 on prod.product_id = tmp3.product_id -# MAGIC LEFT JOIN tmp_pack_additional_attribute MOLE -# MAGIC ---------------------------------------------------------------------------------- -# MAGIC ON prod.new_iqvia_pack_code = MOLE.new_pack_code -# MAGIC ---------------------------------------------------------------------------------- -# MAGIC where tmp3.product_id is null - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-1: generate product_id&level relationship mapping table -# MAGIC -- 1.1 generate mapping table -# MAGIC -- 1.1.3 获取market信息,产品重新归属 -# MAGIC -- 1.1.3.2 对配置表的pack 对应公司、分子式 根据 dwd_gnd_tbl_corp_change 表进行产品重新归属 -# MAGIC -- pack_flag :0-倒减的others 1-不拆的 2-拆的 -# MAGIC -- brand_flag :0-倒减的others 1-买了这个品牌 2-没买这个品牌 -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC insert overwrite table tmp.tmp_zk_retail_pack_property_corp -# MAGIC select distinct a.iqvia_pack_code -# MAGIC ,COALESCE(c.corp_cod,b.corp_cod,a.corp_cod) corp_cod -# MAGIC ,COALESCE(c.corp_des,b.corp_des,a.corp_des) corp_des -# MAGIC ,COALESCE(d.corp_des_c,a.corp_des_c ) corp_des_c -# MAGIC ,COALESCE(c.manu_cod,b.manu_cod,a.manu_cod) manu_cod -# MAGIC ,COALESCE(c.manu_des,b.manu_des,a.manu_des) manu_des -# MAGIC ,COALESCE(e.manu_des_c,a.manu_des_c) manu_des_c -# MAGIC from ( -# MAGIC select -# MAGIC DISTINCT -# MAGIC iqvia_pack_code, -# MAGIC corp_cod, -# MAGIC corp_des, -# MAGIC corp_des_c, -# MAGIC right(concat('000000',manu_cod),6 ) manu_cod, -# MAGIC manu_des, -# MAGIC manu_des_c, -# MAGIC prod_cod -# MAGIC from tmp.tmp_zk_retail_pack_property -# MAGIC ) a -# MAGIC left join ( -# MAGIC select -# MAGIC ---------------------------------------------- -# MAGIC -- format prod_cod -# MAGIC case when length(prod_cod) < 9 then right(concat('000000000',prod_cod),9) else prod_cod end as prod_cod, -# MAGIC ---------------------------------------------- -# MAGIC corp_cod, -# MAGIC corp_des, -# MAGIC right(concat('000000',manu_cod),6 ) manu_cod, -# MAGIC manu_des -# MAGIC from dwd.dwd_gnd_tbl_corp_change where pack_cod is null -# MAGIC ) b on a.prod_cod = b.prod_cod -# MAGIC left join ( -# MAGIC select -# MAGIC ---------------------------------------------- -# MAGIC -- format pack_cod -# MAGIC case when length(trim(pack_cod)) < 12 and trim(pack_cod) REGEXP '^[0-9]' then right(concat('000000000000',trim(pack_cod)),12) else trim(pack_cod) end as pack_cod, -# MAGIC ---------------------------------------------- -# MAGIC corp_cod, -# MAGIC corp_des, -# MAGIC right(concat('000000',manu_cod),6 ) manu_cod, -# MAGIC manu_des -# MAGIC from dwd.dwd_gnd_tbl_corp_change -# MAGIC where pack_cod is not null -# MAGIC ) c on a.iqvia_pack_code = c.pack_cod -# MAGIC left join ( -# MAGIC select distinct corp_cod,corp_des_c -# MAGIC from dwd.dwd_gnd_ext_retail_pack_property -# MAGIC ) d on coalesce(C.corp_cod,B.corp_cod ) = d.corp_cod -# MAGIC Left join ( -# MAGIC select distinct right(concat('000000',manu_cod),6 ) manu_cod,manu_des,manu_des_c -# MAGIC from dwd.dwd_gnd_ext_retail_pack_property -# MAGIC ) e On coalesce(C.manu_cod,B.manu_cod ) = e.manu_cod - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-1: generate product_id&level relationship mapping table -# MAGIC -- 1.1 generate mapping table -# MAGIC -- 1.1.4 update special case 'CV-其他美托洛尔' -# MAGIC -- “酒石酸美托洛尔”和“琥珀酸美托洛尔”以及部分others分子式标准名都为“美托洛尔” -# MAGIC -- 这里需要根据市场把“酒石酸美托洛尔”以及这部分others区分出来,不能应用“琥珀酸美托洛尔”即level_molecule为“美托洛尔”的拆分比例 -# MAGIC -- 区分方式为取market为非“Metoprolol Succinate Market”即非“酒石酸美托洛尔市场”的pack_code -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC UPDATE tmp.tmp_retail_pack_mapping -# MAGIC SET -# MAGIC level_molecule = '其他美托洛尔', -# MAGIC brand_flag = 3 -# MAGIC where level_ta = 'CV' -# MAGIC and level_market = '高血压用药' -# MAGIC and level_molecule = '美托洛尔' -# MAGIC and pack_code not in ( -# MAGIC select distinct iqvia_pack_code -# MAGIC from tmp.tmp_zk_retail_pack_property -# MAGIC where market = 'Metoprolol Succinate Market' -# MAGIC ) - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-1: generate product_id&level relationship mapping table -# MAGIC -- 1.2 update the pack data extra column in tmp.tmp_retail_pack_rawdata when pack data has mapping -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -# MAGIC merge into tmp.tmp_retail_pack_rawdata a -# MAGIC using( -# MAGIC select * from tmp.tmp_retail_pack_mapping -# MAGIC ) as b -# MAGIC on a.product_id = b.product_id -# MAGIC and a.level_ta = b.level_ta -# MAGIC and a.level_market = b.level_market -# MAGIC when matched then -# MAGIC update set -# MAGIC a.pack_code = b.pack_code, -# MAGIC a.molecule_code = b.molecule_code, -# MAGIC a.molecule_desc = b.molecule_desc, -# MAGIC a.product_code = b.product_code, -# MAGIC a.product_desc = b.product_desc, -# MAGIC a.level_molecule = b.level_molecule, -# MAGIC a.level_brand = b.level_brand, -# MAGIC a.brand_flag = b.brand_flag - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-1: generate product_id&level relationship mapping table -# MAGIC -- 1.3 update the pack data extra column in tmp.tmp_retail_pack_rawdata when pack data without mapping -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -# MAGIC with tmp_pack_property as ( -# MAGIC --------------------------------------------------------------- -# MAGIC -- 以数字开头的iqvia_pack_code调整为12位(以字母开头的不变),不足位数补0 -# MAGIC -- iqvia_prod_code调整为9位,不足位数补0 -# MAGIC select -# MAGIC 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, -# MAGIC case when length(iqvia_prod_code) < 9 then right(concat('000000000',iqvia_prod_code),9) else iqvia_prod_code end as iqvia_prod_code, -# MAGIC product_id, -# MAGIC cmps_des, -# MAGIC cmps_des_c, -# MAGIC prod_des, -# MAGIC prod_des_c, -# MAGIC corp_cod, -# MAGIC app1_cod, -# MAGIC app2_cod, -# MAGIC app3_cod -# MAGIC from dwd.dwd_gnd_ext_retail_pack_property -# MAGIC ), tmp_b2c_label_total as ( -# MAGIC select -# MAGIC case when length(IQVIA_PROD_CODE) < 9 then right(concat('000000000',IQVIA_PROD_CODE),9) else IQVIA_PROD_CODE end as IQVIA_PROD_CODE, -# MAGIC ZK_Prod_C, -# MAGIC APP1_COD, -# MAGIC APP2_COD, -# MAGIC APP3_COD -# MAGIC from dwd.dwd_inc_gnd_retail_b2c_label_total -# MAGIC --------------------------------------------------------------- -# MAGIC ), tmp_suffix_brand as ( -# MAGIC select distinct split(brand,'-')[0] -# MAGIC from dwd.dwd_gnd_retail_split_automatic -# MAGIC where brand like '%-%' -# MAGIC ), tmp_mapping as ( -# MAGIC select -# MAGIC distinct -# MAGIC a.product_id as product_id, -# MAGIC a.iqvia_pack_code as pack_code, -# MAGIC a.cmps_des as molecule_code, -# MAGIC a.cmps_des_c as molecule_name, -# MAGIC ifnull(a.prod_des, concat(a.cmps_des,'_OTHER_PROD')) as product_code, -# MAGIC ifnull(a.prod_des_c, concat(a.cmps_des_c,'_OTHER_PROD')) as product_name -# MAGIC from tmp_pack_property a -# MAGIC where a.prod_des_c not in (select * from tmp_suffix_brand) -# MAGIC or a.prod_des_c is null -# MAGIC -# MAGIC union all -# MAGIC -# MAGIC select -# MAGIC distinct -# MAGIC a.product_id as product_id, -# MAGIC a.iqvia_pack_code as pack_code, -# MAGIC a.cmps_des as molecule_code, -# MAGIC a.cmps_des_c as molecule_name, -# MAGIC a.prod_des as product_code, -# MAGIC ifnull(b.ZK_Prod_C, a.prod_des_c) as product_name -# MAGIC from tmp_pack_property a -# MAGIC left join tmp_b2c_label_total b -# MAGIC on a.iqvia_prod_code = b.IQVIA_PROD_CODE -# MAGIC and a.app1_cod = b.APP1_COD -# MAGIC and a.app2_cod = b.APP2_COD -# MAGIC and a.app3_cod = b.APP3_COD -# MAGIC where a.prod_des_c in (select * from tmp_suffix_brand) -# MAGIC ) -# MAGIC -# MAGIC merge into tmp.tmp_retail_pack_rawdata a -# MAGIC using( -# MAGIC select * from tmp_mapping -# MAGIC ) as b -# MAGIC on a.product_id = b.product_id -# MAGIC and a.pack_code is null -# MAGIC when matched then -# MAGIC update set -# MAGIC a.pack_code = b.pack_code, -# MAGIC a.molecule_code = b.molecule_code, -# MAGIC a.molecule_desc = b.molecule_name, -# MAGIC a.product_code = b.product_code, -# MAGIC a.product_desc = b.product_name, -# MAGIC a.brand_flag = 3 - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-1: generate product_id&level relationship mapping table -# MAGIC -- 1.4 update the pack data brand flag to '1' which pack has regional data -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC with tmp_has_regional_data as ( -# MAGIC select -# MAGIC distinct -# MAGIC quarter, -# MAGIC product_id, -# MAGIC pack_code -# MAGIC from tmp.tmp_retail_pack_rawdata -# MAGIC where zk_regin <> '全国' -# MAGIC ) -# MAGIC -# MAGIC merge into tmp.tmp_retail_pack_rawdata a -# MAGIC using( -# MAGIC select * from tmp_has_regional_data -# MAGIC ) as b -# MAGIC on a.quarter = b.quarter -# MAGIC and a.product_id = b.product_id -# MAGIC and a.pack_code = b.pack_code -# MAGIC when matched then -# MAGIC update set -# MAGIC a.brand_flag = 1 - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-1: generate product_id&level relationship mapping table -# MAGIC -- 1.5 delete non GI data -# MAGIC -- “TA=GI”的数据,只取market为'Antacid anti GI swelling agent+PPI Oral'的数 -# MAGIC -- 非“TA=GI“的数据,无限制 -# MAGIC -- 此处筛选并移除TA为GI,但并未在此市场出现的数据 -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC delete from tmp.tmp_retail_pack_rawdata a -# MAGIC where a.level_ta = 'GI' -# MAGIC and a.pack_code not in ( -# MAGIC select distinct iqvia_pack_code -# MAGIC from tmp.tmp_zk_retail_pack_property -# MAGIC where market = 'Antacid anti GI swelling agent+PPI Oral' -# MAGIC ) - -# COMMAND ---------- - -# MAGIC %md -# MAGIC ## STEP-2: split regional data by brand ratio - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-2: split regional data by brand ratio when there is no regional data and there is a brand ratio -# MAGIC -- only split the pack data with brand ratio and without regional pack data -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -# MAGIC with tmp_has_regional_data as ( -# MAGIC select -# MAGIC distinct -# MAGIC quarter, -# MAGIC product_id -# MAGIC from tmp.tmp_retail_pack_rawdata -# MAGIC where zk_regin <> '全国' -# MAGIC ), tmp_has_brand_ratio as ( -# MAGIC select -# MAGIC distinct -# MAGIC b.product_id -# MAGIC from tmp.tmp_retail_level_brand a -# MAGIC inner join tmp.tmp_retail_pack_mapping b -# MAGIC on a.ta = b.level_ta -# MAGIC and a.market = b.level_market -# MAGIC and a.molecule = b.level_molecule -# MAGIC and a.brand = b.level_brand -# MAGIC ), tmp_pack_rawdata as ( -# MAGIC select * -# MAGIC from tmp.tmp_retail_pack_rawdata a -# MAGIC where not exists( -# MAGIC select b.quarter,b.product_id from tmp_has_regional_data b -# MAGIC where a.quarter = b.quarter -# MAGIC and a.product_id = b.product_id -# MAGIC ) and exists( -# MAGIC select c.product_id from tmp_has_brand_ratio c -# MAGIC where a.product_id = c.product_id -# MAGIC ) -# MAGIC ) -# MAGIC ----------------------------- append split regional data ---------------------------- -# MAGIC insert into table tmp.tmp_retail_pack_rawdata -# MAGIC -# MAGIC select -# MAGIC c.product_id, -# MAGIC c.zk_product_id, -# MAGIC a.province_city, -# MAGIC c.zk_rx_otc, -# MAGIC c.zk_medicine_type, -# MAGIC c.zk_medicine_tier1, -# MAGIC c.zk_medicine_tier2, -# MAGIC c.zk_medicine_tier3, -# MAGIC c.zk_medicine_tier4, -# MAGIC c.zk_common_name, -# MAGIC c.zk_dosage_form, -# MAGIC c.zk_user_type, -# MAGIC c.zk_category_name, -# MAGIC c.zk_product_name, -# MAGIC c.zk_brand_name, -# MAGIC c.zk_manu_des, -# MAGIC c.zk_corp_des, -# MAGIC c.zk_pack_des, -# MAGIC c.month, -# MAGIC c.quarter, -# MAGIC c.price, -# MAGIC round(c.sales_unit * a.ratio_vol ,10) as sales_unit, -# MAGIC round(c.sales_value * a.ratio_val ,10) as sales_value, -# MAGIC c.digital_spread_rate, -# MAGIC c.weighted_spread_rate, -# MAGIC c.counting_unit, -# MAGIC c.pack_code, -# MAGIC c.molecule_code, -# MAGIC c.molecule_desc, -# MAGIC c.product_code, -# MAGIC c.product_desc, -# MAGIC c.level_ta, -# MAGIC c.level_market, -# MAGIC c.level_molecule, -# MAGIC c.level_brand, -# MAGIC a.ratio_val, -# MAGIC a.ratio_vol, -# MAGIC 3 as data_flag, -# MAGIC b.brand_flag -# MAGIC from tmp.tmp_retail_level_brand a -# MAGIC inner join tmp.tmp_retail_pack_mapping b -# MAGIC on a.ta = b.level_ta -# MAGIC and a.market = b.level_market -# MAGIC and a.molecule = b.level_molecule -# MAGIC and a.brand = b.level_brand -# MAGIC inner join tmp_pack_rawdata c -# MAGIC on c.product_id = b.product_id -# MAGIC and c.quarter = a.quarter -# MAGIC where a.province_city <> '全国' -# MAGIC - -# COMMAND ---------- - -# MAGIC %md -# MAGIC ## STEP-3: substract ROC data - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-3: substract ROC data -# MAGIC -- if there is regional pack data or splited regional pack data, ROC = '全国' - 'sum regional data' -# MAGIC -- if there is not regional pack data, ROC = '全国' -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -# MAGIC with tmp_area_group as ( -# MAGIC select -# MAGIC product_id, -# MAGIC quarter, -# MAGIC month, -# MAGIC sum(sales_unit) as sales_unit, -# MAGIC sum(sales_value) as sales_value -# MAGIC from tmp.tmp_retail_pack_rawdata -# MAGIC where zk_regin <> '全国' -# MAGIC group by product_id,quarter,month -# MAGIC ), tmp_has_regional_data as ( -# MAGIC select -# MAGIC distinct -# MAGIC quarter, -# MAGIC product_id -# MAGIC from tmp.tmp_retail_pack_rawdata -# MAGIC where zk_regin <> '全国' -# MAGIC and data_flag = 0 -# MAGIC ) -# MAGIC -# MAGIC ----------------------------- append ROC data ------------------------------------------ -# MAGIC insert into table tmp.tmp_retail_pack_rawdata -# MAGIC -# MAGIC select -# MAGIC a.product_id, -# MAGIC a.zk_product_id, -# MAGIC 'ROC', -# MAGIC a.zk_rx_otc, -# MAGIC a.zk_medicine_type, -# MAGIC a.zk_medicine_tier1, -# MAGIC a.zk_medicine_tier2, -# MAGIC a.zk_medicine_tier3, -# MAGIC a.zk_medicine_tier4, -# MAGIC a.zk_common_name, -# MAGIC a.zk_dosage_form, -# MAGIC a.zk_user_type, -# MAGIC a.zk_category_name, -# MAGIC a.zk_product_name, -# MAGIC a.zk_brand_name, -# MAGIC a.zk_manu_des, -# MAGIC a.zk_corp_des, -# MAGIC a.zk_pack_des, -# MAGIC a.month, -# MAGIC a.quarter, -# MAGIC a.price, -# MAGIC a.sales_unit - ifnull(b.sales_unit,0) as sales_unit, -# MAGIC a.sales_value - ifnull(b.sales_value,0) as sales_value, -# MAGIC a.digital_spread_rate, -# MAGIC a.weighted_spread_rate, -# MAGIC a.counting_unit, -# MAGIC a.pack_code, -# MAGIC a.molecule_code, -# MAGIC a.molecule_desc, -# MAGIC a.product_code, -# MAGIC a.product_desc, -# MAGIC a.level_ta, -# MAGIC a.level_market, -# MAGIC a.level_molecule, -# MAGIC a.level_brand, -# MAGIC a.ratio_val, -# MAGIC a.ratio_vol, -# MAGIC ------------------------------------------------------------------------------- -# MAGIC -- 有省份pack的数(包括无品牌数据的数)计算出来的ROC所对应的pack_flag,也需要是1-原始值,不能是2-拆分的值 -# MAGIC -- 所以这里针对这类有省份数据的ROC数据,data_flag赋值为0-原始值,其他的仍为1-倒减值 -# MAGIC case when c.product_id is not null then 0 else 1 end as data_flag, -# MAGIC ------------------------------------------------------------------------------- -# MAGIC a.brand_flag -# MAGIC from tmp.tmp_retail_pack_rawdata a -# MAGIC inner join tmp_area_group b -# MAGIC on a.product_id = b.product_id -# MAGIC and a.quarter = b.quarter -# MAGIC and nvl(a.month,'') = nvl(b.month,'') -# MAGIC left join tmp_has_regional_data c -# MAGIC on a.quarter = c.quarter -# MAGIC and a.product_id = c.product_id -# MAGIC where a.zk_regin = '全国' - -# COMMAND ---------- - -############################################################END############################################################## \ No newline at end of file diff --git a/EXTERNAL/Retail/03 split_pack_data.py:Zone.Identifier b/EXTERNAL/Retail/03 split_pack_data.py:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2x 'others' then a.product_desc else null end as prod_des_c, -# MAGIC case when a.product_desc <> 'others' then a.product_desc else concat('Others_', a.molecule_desc) end as PROD_MAPPING, -# MAGIC a.zk_regin as province_city, -# MAGIC a.level_market as market, -# MAGIC a.sales_value, -# MAGIC a.sales_unit, -# MAGIC ------------------------------------------------------ -# MAGIC -- counting_unit取值逻辑: -# MAGIC -- 不能直接取原始pack文件表中的值,改为取pack_property表中counting_unit / unit的值 -# MAGIC a.sales_unit * (b.counting_unit/ coalesce(b.unit,1)) as counting_unit, -# MAGIC ------------------------------------------------------ -# MAGIC case when data_flag = 0 then 1 else 2 end as pack_flag, -# MAGIC case when brand_flag = 1 then 1 else 2 end as brand_flag -# MAGIC from tmp.tmp_retail_pack_rawdata a -# MAGIC left join dwd.dwd_gnd_ext_retail_pack_property b -# MAGIC on a.product_id = b.product_id -# MAGIC ), tmp_has_roc as ( -# MAGIC select -# MAGIC product_id, -# MAGIC quarter, -# MAGIC ------------------------------------------------------ -# MAGIC -- 有月度数据使用月度数据,无月度数据用季度数据去转 -# MAGIC nvl( -# MAGIC month, -# MAGIC CONCAT( -# MAGIC SUBSTRING(quarter, 1, 4), -- 提取年份(前4位) -# MAGIC CASE -# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '1' THEN '03' -- Q1 → 03月 -# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '2' THEN '06' -- Q2 → 06月 -# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '3' THEN '09' -- Q3 → 09月 -# MAGIC WHEN SUBSTRING(quarter, 6, 1) = '4' THEN '12' -- Q4 → 12月 -# MAGIC END -# MAGIC ) -# MAGIC ) as month, -# MAGIC ------------------------------------------------------ -# MAGIC pack_code -# MAGIC from tmp.tmp_retail_pack_rawdata -# MAGIC where zk_regin = 'ROC' -# MAGIC ), tmp_pack_this_year_with_roc as ( -# MAGIC select -# MAGIC * -# MAGIC from tmp_pack a -# MAGIC where exists( -# MAGIC select * from tmp_has_roc b -# MAGIC where a.YYYYMM = b.month -# MAGIC and a.iqvia_pack_code = b.pack_code -# MAGIC and a.zk_product_id = b.product_id -# MAGIC ) and a.province_city <> '全国' -# MAGIC ), tmp_pack_next_year_with_roc as ( -# MAGIC select -# MAGIC cast(YYYYMM + 100 as int) as YYYYMM, -# MAGIC iqvia_pack_code, -# MAGIC zk_product_id, -# MAGIC prod_des_c, -# MAGIC PROD_MAPPING, -# MAGIC province_city, -# MAGIC market, -# MAGIC sales_value as sales_value_ly, -# MAGIC sales_unit as sales_unit_ly, -# MAGIC counting_unit as counting_unit_ly, -# MAGIC pack_flag, -# MAGIC brand_flag -# MAGIC from tmp_pack a -# MAGIC where YYYYMM + 100 <= (select max(YYYYMM) from tmp_pack) -# MAGIC and exists( -# MAGIC select * from tmp_has_roc b -# MAGIC where a.YYYYMM = b.month -# MAGIC and a.iqvia_pack_code = b.pack_code -# MAGIC and a.zk_product_id = b.product_id -# MAGIC ) and a.province_city <> '全国' -# MAGIC -# MAGIC ), tmp_pack_this_year_without_roc as ( -# MAGIC select -# MAGIC * -# MAGIC from tmp_pack a -# MAGIC where not exists( -# MAGIC select * from tmp_has_roc b -# MAGIC where a.YYYYMM = b.month -# MAGIC and a.iqvia_pack_code = b.pack_code -# MAGIC and a.zk_product_id = b.product_id -# MAGIC ) -# MAGIC ), tmp_pack_next_year_without_roc as ( -# MAGIC select -# MAGIC cast(YYYYMM + 100 as int) as YYYYMM, -# MAGIC iqvia_pack_code, -# MAGIC zk_product_id, -# MAGIC prod_des_c, -# MAGIC PROD_MAPPING, -# MAGIC province_city, -# MAGIC market, -# MAGIC sales_value as sales_value_ly, -# MAGIC sales_unit as sales_unit_ly, -# MAGIC counting_unit as counting_unit_ly, -# MAGIC pack_flag, -# MAGIC brand_flag -# MAGIC from tmp_pack a -# MAGIC where YYYYMM + 100 <= (select max(YYYYMM) from tmp_pack) -# MAGIC and not exists( -# MAGIC select * from tmp_has_roc b -# MAGIC where a.YYYYMM = b.month -# MAGIC and a.iqvia_pack_code = b.pack_code -# MAGIC and a.zk_product_id = b.product_id -# MAGIC ) -# MAGIC ), tmp_final_sales as ( -# MAGIC select -# MAGIC ifnull(a.yyyymm, b.yyyymm) as yyyymm, -# MAGIC ifnull(a.iqvia_pack_code, b.iqvia_pack_code) as iqvia_pack_code, -# MAGIC ifnull(a.zk_product_id, b.zk_product_id) as zk_product_id, -# MAGIC ifnull(a.prod_des_c, b.prod_des_c) as prod_des_c, -# MAGIC ifnull(a.PROD_MAPPING, b.PROD_MAPPING) as PROD_MAPPING, -# MAGIC ifnull(a.province_city, b.province_city) as province_city, -# MAGIC ifnull(a.market, b.market) as market, -# MAGIC ifnull(a.sales_value, 0) as sales_value, -# MAGIC ifnull(a.sales_unit, 0) as sales_unit, -# MAGIC ifnull(a.counting_unit, 0) as counting_unit, -# MAGIC ifnull(a.pack_flag, b.pack_flag) as pack_flag, -# MAGIC ifnull(a.brand_flag,b.brand_flag ) as brand_flag, -# MAGIC ifnull(b.sales_value_ly, 0) as sales_value_ly, -# MAGIC ifnull(b.sales_unit_ly, 0) as sales_unit_ly, -# MAGIC ifnull(b.counting_unit_ly, 0) as counting_unit_ly -# MAGIC from tmp_pack_this_year_with_roc a -# MAGIC full outer join tmp_pack_next_year_with_roc b -# MAGIC on a.YYYYMM = b.YYYYMM -# MAGIC and a.iqvia_pack_code = b.iqvia_pack_code -# MAGIC and a.zk_product_id = b.zk_product_id -# MAGIC and a.province_city = b.province_city -# MAGIC -# MAGIC union all -# MAGIC -# MAGIC select -# MAGIC ifnull(c.yyyymm, d.yyyymm) as yyyymm, -# MAGIC ifnull(c.iqvia_pack_code, d.iqvia_pack_code) as iqvia_pack_code, -# MAGIC ifnull(c.zk_product_id, d.zk_product_id) as zk_product_id, -# MAGIC ifnull(c.prod_des_c, d.prod_des_c) as prod_des_c, -# MAGIC ifnull(c.PROD_MAPPING, d.PROD_MAPPING) as PROD_MAPPING, -# MAGIC 'ROC' as province_city, -# MAGIC ifnull(c.market, d.market) as market, -# MAGIC ifnull(c.sales_value, 0) as sales_value, -# MAGIC ifnull(c.sales_unit, 0) as sales_unit, -# MAGIC ifnull(c.counting_unit, 0) as counting_unit, -# MAGIC --ifnull(c.pack_flag, d.pack_flag) as pack_flag, -# MAGIC 2 as pack_flag, -- 此类没有拆分比例,且pack只有全国的数,pack_flag固定为2 -# MAGIC ifnull(c.brand_flag,d.brand_flag ) as brand_flag, -# MAGIC ifnull(d.sales_value_ly, 0) as sales_value_ly, -# MAGIC ifnull(d.sales_unit_ly, 0) as sales_unit_ly, -# MAGIC ifnull(d.counting_unit_ly, 0) as counting_unit_ly -# MAGIC from tmp_pack_this_year_without_roc c -# MAGIC full outer join tmp_pack_next_year_without_roc d -# MAGIC on c.YYYYMM = d.YYYYMM -# MAGIC and c.iqvia_pack_code = d.iqvia_pack_code -# MAGIC and c.zk_product_id = d.zk_product_id -# MAGIC and c.province_city = d.province_city -# MAGIC ) -# MAGIC -# MAGIC insert overwrite table tmp.tmp_retail_final_sales -# MAGIC -# MAGIC select -# MAGIC yyyymm, -# MAGIC iqvia_pack_code, -# MAGIC zk_product_id, -# MAGIC prod_des_c, -# MAGIC PROD_MAPPING, -# MAGIC province_city, -# MAGIC market, -# MAGIC sales_value, -# MAGIC sales_value_ly, -# MAGIC sales_unit, -# MAGIC sales_unit_ly, -# MAGIC counting_unit, -# MAGIC counting_unit_ly, -# MAGIC pack_flag, -# MAGIC brand_flag -# MAGIC from tmp_final_sales -# MAGIC order by yyyymm - -# COMMAND ---------- - -############################################################END################################################################ \ No newline at end of file diff --git a/EXTERNAL/Retail/04 map_to_dws_table.py:Zone.Identifier b/EXTERNAL/Retail/04 map_to_dws_table.py:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2xdl#JyUFr831@K2x 0 or sales_vol > 0 - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-2: substract data from level market to brand -# MAGIC -- 2.2 substract level molecule data and add 'OTHER_BRAND' data -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC with tmp_aggregate_molecule as ( -# MAGIC select -# MAGIC yyyymm, -# MAGIC province_city, -# MAGIC ta, -# MAGIC market, -# MAGIC molecule, -# MAGIC sum(sales_val) as sales_val, -# MAGIC sum(sales_vol) as sales_vol -# MAGIC from tmp.tmp_retail_dtp_level_brand -# MAGIC group by yyyymm,province_city ,ta ,market,molecule -# MAGIC ),tmp_brand as ( -# MAGIC select -# MAGIC a.yyyymm, -# MAGIC a.province_city, -# MAGIC a.ta, -# MAGIC a.market, -# MAGIC a.molecule, -# MAGIC a.sales_val - ifnull(b.sales_val, 0) as sales_val, -# MAGIC a.sales_vol - ifnull(b.sales_vol, 0) as sales_vol -# MAGIC from tmp.tmp_retail_dtp_level_molecule a -# MAGIC left join tmp_aggregate_molecule b -# MAGIC on a.yyyymm = b.yyyymm -# MAGIC and a.province_city = b.province_city -# MAGIC and a.ta = b.ta -# MAGIC and a.market = b.market -# MAGIC and a.molecule = b.molecule -# MAGIC ) -# MAGIC -# MAGIC -------append OTHER_BRAND to tmp.tmp_retail_dtp_level_brand -# MAGIC insert into tmp.tmp_retail_dtp_level_brand -# MAGIC select -# MAGIC yyyymm, -# MAGIC province_city, -# MAGIC ta, -# MAGIC market, -# MAGIC molecule, -# MAGIC 'OTHER_BRAND', -# MAGIC sales_val, -# MAGIC sales_vol, -# MAGIC null, -# MAGIC null, -# MAGIC null, -# MAGIC null, -# MAGIC 1 -# MAGIC from tmp_brand -# MAGIC where sales_val > 0 or sales_vol > 0 - -# COMMAND ---------- - -# MAGIC %md -# MAGIC ## STEP-3: accumulate data from level brand to market - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-3: accumulate data from level brand to market -# MAGIC -- 3.1 accumulate level molecule data and balance 'OTHER_BRAND' & 'OTHER_MOLECULE' data -# MAGIC -- 3.1.1 accumulate level molecule data -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC with tmp_aggregate_molecule as ( -# MAGIC select -# MAGIC yyyymm, -# MAGIC province_city, -# MAGIC ta, -# MAGIC market, -# MAGIC molecule, -# MAGIC sum(sales_val) as sales_val, -# MAGIC sum(sales_vol) as sales_vol -# MAGIC from tmp.tmp_retail_dtp_level_brand -# MAGIC group by yyyymm,province_city ,ta ,market,molecule -# MAGIC ), tmp_append_molecule as ( -# MAGIC select a.* -# MAGIC from tmp_aggregate_molecule a -# MAGIC where not exists ( -# MAGIC select 1 -# MAGIC from tmp.tmp_retail_dtp_level_molecule b -# MAGIC where a.yyyymm = b.yyyymm -# MAGIC and a.province_city = b.province_city -# MAGIC and a.ta = b.ta -# MAGIC and a.market = b.market -# MAGIC and a.molecule = b.molecule -# MAGIC ) -# MAGIC ) -# MAGIC -------append level molecule data accumulate from level brand -# MAGIC insert into tmp.tmp_retail_dtp_level_molecule -# MAGIC select -# MAGIC yyyymm, -# MAGIC province_city, -# MAGIC ta, -# MAGIC market, -# MAGIC molecule, -# MAGIC sales_val, -# MAGIC sales_vol, -# MAGIC 2 -# MAGIC from tmp_append_molecule - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-3: accumulate data from level brand to market -# MAGIC -- 3.1 accumulate level molecule data and balance 'OTHER_BRAND'& 'OTHER_MOLECULE' data -# MAGIC -- 3.1.2 balance 'OTHER_MOLECULE' data -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC merge into tmp.tmp_retail_dtp_level_molecule a -# MAGIC using( -# MAGIC select -# MAGIC yyyymm, -# MAGIC province_city, -# MAGIC ta, -# MAGIC market, -# MAGIC sum(sales_val) as sales_val, -# MAGIC sum(sales_vol) as sales_vol -# MAGIC from tmp.tmp_retail_dtp_level_molecule -# MAGIC where data_flag = 2 -# MAGIC group by yyyymm,province_city,ta,market -# MAGIC ) as b -# MAGIC on a.yyyymm = b.yyyymm -# MAGIC and a.province_city = b.province_city -# MAGIC and a.ta = b.ta -# MAGIC and a.market = b.market -# MAGIC and a.molecule = 'OTHER_MOLECULE' -# MAGIC and a.data_flag = 1 -# MAGIC when matched then -# MAGIC update set -# MAGIC a.sales_val = a.sales_val - b.sales_val, -# MAGIC a.sales_vol = a.sales_vol - b.sales_vol -# MAGIC - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-3: accumulate data from level brand to market -# MAGIC -- 3.1 accumulate level molecule data and balance 'OTHER_BRAND'& 'OTHER_MOLECULE' data -# MAGIC -- 3.1.3 balance 'OTHER_BRAND' data -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC merge into tmp.tmp_retail_dtp_level_brand a -# MAGIC using( -# MAGIC select -# MAGIC yyyymm, -# MAGIC province_city, -# MAGIC ta, -# MAGIC market, -# MAGIC sum(sales_val) as sales_val, -# MAGIC sum(sales_vol) as sales_vol -# MAGIC from tmp.tmp_retail_dtp_level_molecule -# MAGIC where data_flag = 2 -# MAGIC group by yyyymm,province_city,ta,market -# MAGIC ) as b -# MAGIC on a.yyyymm = b.yyyymm -# MAGIC and a.province_city = b.province_city -# MAGIC and a.ta = b.ta -# MAGIC and a.market = b.market -# MAGIC and a.molecule = 'OTHER_MOLECULE' -# MAGIC and a.brand = 'OTHER_BRAND' -# MAGIC and a.data_flag = 1 -# MAGIC when matched then -# MAGIC update set -# MAGIC a.sales_val = a.sales_val - b.sales_val, -# MAGIC a.sales_vol = a.sales_vol - b.sales_vol - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-3: accumulate data from level brand to market -# MAGIC -- 3.2 accumulate level market data and balance 'OTHER_MOLECULE' data -# MAGIC -- 3.2.1 accumulate level market data -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -# MAGIC with tmp_aggregate_market as ( -# MAGIC select -# MAGIC yyyymm, -# MAGIC province_city, -# MAGIC ta, -# MAGIC market, -# MAGIC sum(sales_val) as sales_val, -# MAGIC sum(sales_vol) as sales_vol -# MAGIC from tmp.tmp_retail_dtp_level_molecule -# MAGIC group by yyyymm,province_city ,ta ,market -# MAGIC ), tmp_append_market as ( -# MAGIC select a.* -# MAGIC from tmp_aggregate_market a -# MAGIC where not exists ( -# MAGIC select 1 -# MAGIC from tmp.tmp_retail_dtp_level_market b -# MAGIC where a.yyyymm = b.yyyymm -# MAGIC and a.province_city = b.province_city -# MAGIC and a.ta = b.ta -# MAGIC and a.market = b.market -# MAGIC ) -# MAGIC ) -# MAGIC -------append level market data accumulate from level molecule -# MAGIC insert into tmp.tmp_retail_dtp_level_market -# MAGIC select -# MAGIC yyyymm, -# MAGIC province_city, -# MAGIC ta, -# MAGIC market, -# MAGIC sales_val, -# MAGIC sales_vol, -# MAGIC 2 -# MAGIC from tmp_append_market - -# COMMAND ---------- - -# MAGIC %md -# MAGIC ## STEP-4: calculate brand ratio - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-4: calculate brand ratio -# MAGIC -- update total_val&total_vol and ratio_val&ratio_vol -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC merge into tmp.tmp_retail_dtp_level_brand a -# MAGIC using( -# MAGIC select * from tmp.tmp_retail_dtp_level_brand -# MAGIC where province_city = '全国' -# MAGIC ) as b -# MAGIC on a.yyyymm = b.yyyymm -# MAGIC and a.ta = b.ta -# MAGIC and a.market = b.market -# MAGIC and a.molecule = b.molecule -# MAGIC and a.brand = b.brand -# MAGIC when matched then -# MAGIC update set -# MAGIC a.total_val = b.sales_val, -# MAGIC a.total_vol = b.sales_vol, -# MAGIC a.ratio_val = round(a.sales_val/b.sales_val,10), -# MAGIC a.ratio_vol = round(a.sales_vol/b.sales_vol,10) - -# COMMAND ---------- - -############################################################END################################################################ \ No newline at end of file diff --git a/EXTERNAL/Retail/06 split_dtp_brand_data.py:Zone.Identifier b/EXTERNAL/Retail/06 split_dtp_brand_data.py:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2x EGFR TKI -# MAGIC -- Anti-HER2 mBC Market -> Anti-HER2 mBC -# MAGIC a.level_market = -# MAGIC case -# MAGIC when array_contains(markets, 'EGFR TKI Market') then 'EGFR TKI' -# MAGIC when array_contains(markets, 'Anti-HER2 mBC Market') then 'Anti-HER2 mBC' -# MAGIC else CONCAT_WS(',',markets) -# MAGIC end -# MAGIC --------------------* hard_code *----------------------- - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-2: update the pack data extra column -# MAGIC -- 2.2 generate tmp.tmp_retail_dtp_pack_mapping -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -# MAGIC with tmp_pack_mapping as ( -# MAGIC select -# MAGIC distinct -# MAGIC a.level_ta, -# MAGIC a.level_market, -# MAGIC a.pack_code, -# MAGIC a.molecule_code, -# MAGIC a.molecule_desc, -# MAGIC a.product_code, -# MAGIC a.product_desc, -# MAGIC b.corp_cod, -# MAGIC CONCAT_WS(',',collect_set(b.market)) as market_desc -# MAGIC from tmp.tmp_retail_dtp_pack_rawdata a -# MAGIC inner join tmp.tmp_zk_retail_dtp_market_corp b -# MAGIC on a.pack_code = b.iqvia_pack_code -# MAGIC and a.molecule_code = b.cmps_des -# MAGIC and a.product_desc = b.prod_des_c -# MAGIC group by 1,2,3,4,5,6,7,8 -# MAGIC ), tmp_level as ( -# MAGIC select -# MAGIC distinct -# MAGIC ta, -# MAGIC market, -# MAGIC molecule, -# MAGIC brand -# MAGIC from tmp.tmp_retail_dtp_level_brand -# MAGIC ), tmp_molecule_brand as ( -# MAGIC -----------------------ta matched & market matched & molecule matched & brand matched -------------- -# MAGIC select -# MAGIC a.*,b.*,1 as brand_flag -# MAGIC from tmp_pack_mapping a -# MAGIC inner join tmp_level b -# MAGIC on a.level_ta = b.ta -# MAGIC and a.level_market = b.market -# MAGIC and a.molecule_desc = b.molecule -# MAGIC and a.product_desc = b.brand -# MAGIC ), tmp_other_brand as ( -# MAGIC -----------------------ta matched & market matched & OTHER_MOLECULE & brand matched----------------- -# MAGIC select -# MAGIC a.*,b.*,1 as brand_flag -# MAGIC from tmp_pack_mapping a -# MAGIC inner join tmp_level b -# MAGIC on a.level_ta = b.ta -# MAGIC and a.level_market = b.market -# MAGIC and b.molecule = 'OTHER_MOLECULE' -# MAGIC and a.product_desc = b.brand -# MAGIC where a.pack_code not in ( -# MAGIC select distinct pack_code from tmp_molecule_brand -# MAGIC ) -# MAGIC ), tmp_molecule_other as( -# MAGIC -----------------------ta matched & market matched & molecule matched & OTHER_BRAND---------------- -# MAGIC select -# MAGIC a.*,b.*,2 as brand_flag -# MAGIC from tmp_pack_mapping a -# MAGIC inner join tmp_level b -# MAGIC on a.level_ta = b.ta -# MAGIC and a.level_market = b.market -# MAGIC and a.molecule_desc = b.molecule -# MAGIC and b.brand = 'OTHER_BRAND' -# MAGIC where a.pack_code not in ( -# MAGIC select distinct pack_code from tmp_molecule_brand -# MAGIC union all -# MAGIC select distinct pack_code from tmp_other_brand -# MAGIC ) -# MAGIC ), tmp_other_other as ( -# MAGIC -----------------------ta matched & market matched & OTHER_MOLECULE& OTHER_BRAND--------------------- -# MAGIC select -# MAGIC a.*,b.*,2 as brand_flag -# MAGIC from tmp_pack_mapping a -# MAGIC inner join tmp_level b -# MAGIC on a.level_ta = b.ta -# MAGIC and a.level_market = b.market -# MAGIC and b.molecule = 'OTHER_MOLECULE' -# MAGIC and b.brand = 'OTHER_BRAND' -# MAGIC where a.pack_code not in ( -# MAGIC select distinct pack_code from tmp_molecule_brand -# MAGIC union all -# MAGIC select distinct pack_code from tmp_other_brand -# MAGIC union all -# MAGIC select distinct pack_code from tmp_molecule_other -# MAGIC ) -# MAGIC ), tmp_brand_mapping as ( -# MAGIC select * from tmp_molecule_brand -# MAGIC union all -# MAGIC select * from tmp_other_brand -# MAGIC union all -# MAGIC select * from tmp_molecule_other -# MAGIC union all -# MAGIC select * from tmp_other_other -# MAGIC ) -# MAGIC -# MAGIC insert overwrite table tmp.tmp_retail_dtp_pack_mapping -# MAGIC -# MAGIC select -# MAGIC level_ta, -# MAGIC level_market, -# MAGIC molecule as level_molecule, -# MAGIC brand as level_brand, -# MAGIC pack_code, -# MAGIC molecule_code, -# MAGIC molecule_desc, -# MAGIC product_code, -# MAGIC product_desc, -# MAGIC corp_cod, -# MAGIC market_desc, -# MAGIC brand_flag -# MAGIC from tmp_brand_mapping - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-2: update the pack data extra column -# MAGIC -- 2.3 update level_molecule, level_brand ,brand_flag -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC merge into tmp.tmp_retail_dtp_pack_rawdata a -# MAGIC using( -# MAGIC select -# MAGIC distinct pack_code,level_molecule,level_brand,brand_flag -# MAGIC from tmp.tmp_retail_dtp_pack_mapping -# MAGIC ) as b -# MAGIC on a.pack_code = b.pack_code -# MAGIC when matched then -# MAGIC update set -# MAGIC a.level_molecule = b.level_molecule, -# MAGIC a.level_brand = b.level_brand, -# MAGIC a.brand_flag = b.brand_flag - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-2: update the pack data extra column -# MAGIC -- 2.4 update the pack data brand flag to '1' which pack has regional data -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC with tmp_has_regional_data as ( -# MAGIC select -# MAGIC distinct -# MAGIC time, -# MAGIC pack_code -# MAGIC from tmp.tmp_retail_dtp_pack_rawdata -# MAGIC where region <> '全国' -# MAGIC and data_flag = 0 -# MAGIC ) -# MAGIC -# MAGIC merge into tmp.tmp_retail_dtp_pack_rawdata a -# MAGIC using( -# MAGIC select * from tmp_has_regional_data -# MAGIC ) as b -# MAGIC on a.time = b.time -# MAGIC and a.pack_code = b.pack_code -# MAGIC when matched then -# MAGIC update set -# MAGIC a.brand_flag = 1 - -# COMMAND ---------- - -# MAGIC %md -# MAGIC ## STEP-3: split regional data by brand ratio - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-3: split regional data by brand ratio when there is no regional data and there is a brand ratio -# MAGIC -- only split the pack data with brand ratio and without regional pack data -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC with tmp_has_regional_data as ( -# MAGIC select -# MAGIC distinct -# MAGIC time as yyyymm, -# MAGIC pack_code -# MAGIC from tmp.tmp_retail_dtp_pack_rawdata -# MAGIC where region <> '全国' -# MAGIC ), tmp_has_brand_ratio as ( -# MAGIC select -# MAGIC distinct -# MAGIC b.pack_code -# MAGIC from tmp.tmp_retail_dtp_level_brand a -# MAGIC inner join tmp.tmp_retail_dtp_pack_mapping b -# MAGIC on a.ta = b.level_ta -# MAGIC and a.market = b.level_market -# MAGIC and a.molecule = b.level_molecule -# MAGIC and a.brand = b.level_brand -# MAGIC ), tmp_pack_rawdata as ( -# MAGIC select * -# MAGIC from tmp.tmp_retail_dtp_pack_rawdata a -# MAGIC where not exists( -# MAGIC select b.yyyymm,b.pack_code from tmp_has_regional_data b -# MAGIC where a.time = b.yyyymm -# MAGIC and a.pack_code = b.pack_code -# MAGIC ) and exists( -# MAGIC select c.pack_code from tmp_has_brand_ratio c -# MAGIC where a.pack_code = c.pack_code -# MAGIC ) -# MAGIC ) -# MAGIC ----------------------------- append split regional data ---------------------------- -# MAGIC insert into table tmp.tmp_retail_dtp_pack_rawdata -# MAGIC -# MAGIC select -# MAGIC -- c.region_type, -# MAGIC c.iqvia_pack_code, -# MAGIC c.year, -# MAGIC c.time, -# MAGIC -- c.higher_level_region, -# MAGIC a.province_city as region, -# MAGIC -- c.prescription_nature, -# MAGIC -- c.medicine_attribute, -# MAGIC -- c.dosage_form, -# MAGIC -- c.object, -# MAGIC -- c.zk_classify1, -# MAGIC -- c.zk_classify2, -# MAGIC -- c.zk_classify3, -# MAGIC c.target_points, -# MAGIC -- c.common_name, -# MAGIC -- c.brand_name, -# MAGIC -- c.product_name, -# MAGIC -- c.category_name, -# MAGIC -- c.pack_des, -# MAGIC c.counting_unit, -# MAGIC -- c.factory, -# MAGIC -- c.corp_des, -# MAGIC c.average_price, -# MAGIC round(c.sales_amount * a.ratio_val ,10) as sales_amount, -# MAGIC round(c.sales_volume * a.ratio_vol ,10) as sales_volume, -# MAGIC c.counting_units_obversion, -# MAGIC c.pack_code, -# MAGIC c.molecule_code, -# MAGIC c.molecule_desc, -# MAGIC c.product_code, -# MAGIC c.product_desc, -# MAGIC c.level_ta, -# MAGIC c.level_market, -# MAGIC c.level_molecule, -# MAGIC c.level_brand, -# MAGIC a.ratio_val, -# MAGIC a.ratio_vol, -# MAGIC 3 as data_flag, -# MAGIC b.brand_flag -# MAGIC from tmp.tmp_retail_dtp_level_brand a -# MAGIC inner join tmp.tmp_retail_dtp_pack_mapping b -# MAGIC on a.ta = b.level_ta -# MAGIC and a.market = b.level_market -# MAGIC and a.molecule = b.level_molecule -# MAGIC and a.brand = b.level_brand -# MAGIC inner join tmp_pack_rawdata c -# MAGIC on c.pack_code = b.pack_code -# MAGIC and c.time = a.yyyymm -# MAGIC where a.province_city <> '全国' -# MAGIC - -# COMMAND ---------- - -# MAGIC %md -# MAGIC ## STEP-4: substract ROC data - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-4: substract ROC data -# MAGIC -- if there is regional pack data or splited regional pack data, ROC = '全国' - 'sum regional data' -# MAGIC -- if there is not regional pack data, ROC = '全国' -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -# MAGIC with tmp_area_group as ( -# MAGIC select -# MAGIC pack_code, -# MAGIC time, -# MAGIC sum(sales_amount) as sales_amount, -# MAGIC sum(sales_volume) as sales_volume -# MAGIC from tmp.tmp_retail_dtp_pack_rawdata -# MAGIC where region <> '全国' -# MAGIC group by pack_code,time -# MAGIC ), tmp_has_regional_data as ( -# MAGIC select -# MAGIC distinct -# MAGIC time, -# MAGIC pack_code -# MAGIC from tmp.tmp_retail_dtp_pack_rawdata -# MAGIC where region <> '全国' -# MAGIC and data_flag = 0 -# MAGIC ) -# MAGIC -# MAGIC ----------------------------- append ROC data ------------------------------------------ -# MAGIC insert into table tmp.tmp_retail_dtp_pack_rawdata -# MAGIC -# MAGIC select -# MAGIC a.iqvia_pack_code, -# MAGIC -- a.region_type, -# MAGIC a.year, -# MAGIC a.time, -# MAGIC -- a.higher_level_region, -# MAGIC 'ROC' as region, -# MAGIC -- a.prescription_nature, -# MAGIC -- a.medicine_attribute, -# MAGIC -- a.dosage_form, -# MAGIC -- a.object, -# MAGIC -- a.zk_classify1, -# MAGIC -- a.zk_classify2, -# MAGIC -- a.zk_classify3, -# MAGIC a.target_points, -# MAGIC -- a.common_name, -# MAGIC -- a.brand_name, -# MAGIC -- a.product_name, -# MAGIC -- a.category_name, -# MAGIC -- a.pack_des, -# MAGIC a.counting_unit, -# MAGIC -- a.factory, -# MAGIC -- a.corp_des, -# MAGIC a.average_price, -# MAGIC a.sales_amount - ifnull(b.sales_amount,0) as sales_amount, -# MAGIC a.sales_volume - ifnull(b.sales_volume,0) as sales_volume, -# MAGIC a.counting_units_obversion, -# MAGIC a.pack_code, -# MAGIC a.molecule_code, -# MAGIC a.molecule_desc, -# MAGIC a.product_code, -# MAGIC a.product_desc, -# MAGIC a.level_ta, -# MAGIC a.level_market, -# MAGIC a.level_molecule, -# MAGIC a.level_brand, -# MAGIC a.ratio_val, -# MAGIC a.ratio_vol, -# MAGIC ------------------------------------------------------------------------------- -# MAGIC -- 有省份pack的数(包括无品牌数据的数)计算出来的ROC所对应的pack_flag,也需要是1-原始值,不能是2-拆分的值 -# MAGIC -- 所以这里针对这类有省份数据的ROC数据,data_flag赋值为0-原始值,其他的仍为1-倒减值 -# MAGIC case when c.pack_code is not null then 0 else 1 end as data_flag, -# MAGIC ------------------------------------------------------------------------------- -# MAGIC a.brand_flag -# MAGIC from tmp.tmp_retail_dtp_pack_rawdata a -# MAGIC inner join tmp_area_group b -# MAGIC on a.pack_code = b.pack_code -# MAGIC and a.time = b.time -# MAGIC left join tmp_has_regional_data c -# MAGIC on a.time = c.time -# MAGIC and a.pack_code = c.pack_code -# MAGIC where a.region = '全国' - -# COMMAND ---------- - -############################################################END################################################################ \ No newline at end of file diff --git a/EXTERNAL/Retail/07 split_dtp_pack_data.py:Zone.Identifier b/EXTERNAL/Retail/07 split_dtp_pack_data.py:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2x '全国' -# MAGIC ), tmp_pack_next_year_with_roc ( -# MAGIC select -# MAGIC cast(a.year + 1 as int) as year, -# MAGIC concat(cast(a.year + 1 as int) , 'Q', CEIL(CAST(RIGHT(a.time,2) AS INT)/3)) as yq, -# MAGIC cast(a.time + 100 as int) as yyyymm, -# MAGIC a.pack_code as iqvia_pack_code, -# MAGIC a.region as geo_key, -# MAGIC a.counting_unit as count_unit, -# MAGIC a.average_price, -# MAGIC a.sales_amount as sales_value_ly, -# MAGIC a.sales_volume as sales_unit_ly, -# MAGIC a.counting_unit_property as counting_unit_ly, -# MAGIC a.counting_units_obversion, -# MAGIC case when a.data_flag = 0 then 1 else 2 end as pack_flag, -# MAGIC case when a.brand_flag = 1 then 1 else 2 end as brand_flag, -# MAGIC -- a.prescription_nature, -# MAGIC -- a.medicine_attribute, -# MAGIC -- a.dosage_form, -# MAGIC -- a.object, -# MAGIC -- a.zk_classify1, -# MAGIC -- a.zk_classify2, -# MAGIC -- a.zk_classify3, -# MAGIC a.target_points -# MAGIC -- a.common_name, -# MAGIC -- a.brand_name, -# MAGIC -- a.product_name, -# MAGIC -- a.pack_des, -# MAGIC -- a.factory, -# MAGIC -- a.corp_des -# MAGIC from tmp_pack a -# MAGIC where a.time + 100 <= (select max(time) from tmp_pack) -# MAGIC and exists ( -# MAGIC select * from tmp_has_roc c -# MAGIC where c.pack_code = a.pack_code -# MAGIC and c.time = a.time -# MAGIC ) and a.region <> '全国' -# MAGIC ), tmp_pack_with_roc as ( -# MAGIC select -# MAGIC ifnull(a.year, b.year) as year, -# MAGIC ifnull(a.yq, b.yq) as yq , -# MAGIC ifnull(a.yyyymm, b.yyyymm) as yyyymm, -# MAGIC ifnull(a.iqvia_pack_code, b.iqvia_pack_code) as iqvia_pack_code, -# MAGIC ifnull(a.geo_key, b.geo_key) as geo_key, -# MAGIC ifnull(a.count_unit, b.count_unit) as count_unit, -# MAGIC ifnull(a.average_price, b.average_price) as average_price, -# MAGIC ifnull(a.sales_value, 0) as sales_value, -# MAGIC ifnull(a.sales_unit, 0) as sales_unit, -# MAGIC ifnull(a.counting_unit, 0) as counting_unit, -# MAGIC ifnull(a.counting_units_obversion, b.counting_units_obversion) as counting_units_obversion, -# MAGIC ifnull(a.pack_flag, b.pack_flag) as pack_flag, -# MAGIC ifnull(a.brand_flag, b.brand_flag) as brand_flag, -# MAGIC ifnull(b.sales_value_ly, 0) as sales_value_ly, -# MAGIC ifnull(b.sales_unit_ly, 0) as sales_unit_ly, -# MAGIC ifnull(b.counting_unit_ly, 0) as counting_unit_ly -# MAGIC from tmp_pack_this_year_with_roc a -# MAGIC full outer join tmp_pack_next_year_with_roc b -# MAGIC on a.yyyymm = b.yyyymm -# MAGIC and a.iqvia_pack_code = b.iqvia_pack_code -# MAGIC and a.geo_key = b.geo_key -# MAGIC -- and nvl(a.prescription_nature,'') = nvl(b.prescription_nature,'') -# MAGIC -- and nvl(a.medicine_attribute,'') = nvl(b.medicine_attribute,'') -# MAGIC -- and nvl(a.dosage_form,'') = nvl(b.dosage_form,'') -# MAGIC -- and nvl(a.object,'') = nvl(b.object,'') -# MAGIC -- and nvl(a.zk_classify1,'') = nvl(b.zk_classify1,'') -# MAGIC -- and nvl(a.zk_classify2,'') = nvl(b.zk_classify2,'') -# MAGIC -- and nvl(a.zk_classify3,'') = nvl(b.zk_classify3,'') -# MAGIC and nvl(a.target_points,'') = nvl(b.target_points,'') -# MAGIC -- and nvl(a.common_name,'') = nvl(b.common_name,'') -# MAGIC -- and nvl(a.brand_name,'') = nvl(b.brand_name,'') -# MAGIC -- and nvl(a.product_name,'') = nvl(b.product_name,'') -# MAGIC -- and nvl(a.pack_des,'') = nvl(b.pack_des,'') -# MAGIC -- and nvl(a.factory,'') = nvl(b.factory,'') -# MAGIC -- and nvl(a.corp_des,'') = nvl(b.corp_des,'') -# MAGIC ), tmp_pack_this_year_without_roc ( -# MAGIC select -# MAGIC left(a.time, 4) year, -# MAGIC concat(a.year, 'Q', CEIL(CAST(RIGHT(a.time,2) AS INT)/3)) as yq, -# MAGIC a.time as yyyymm, -# MAGIC a.pack_code as iqvia_pack_code, -# MAGIC 'ROC' as geo_key, -# MAGIC a.counting_unit as count_unit, -# MAGIC a.average_price, -# MAGIC a.sales_amount as sales_value, -# MAGIC a.sales_volume as sales_unit, -# MAGIC a.counting_units_obversion, -# MAGIC a.counting_unit_property as counting_unit, -# MAGIC case when data_flag = 0 then 1 else 2 end as pack_flag, -# MAGIC case when brand_flag = 1 then 1 else 2 end as brand_flag, -# MAGIC -- a.prescription_nature, -# MAGIC -- a.medicine_attribute, -# MAGIC -- a.dosage_form, -# MAGIC -- a.object, -# MAGIC -- a.zk_classify1, -# MAGIC -- a.zk_classify2, -# MAGIC -- a.zk_classify3, -# MAGIC a.target_points -# MAGIC -- a.common_name, -# MAGIC -- a.brand_name, -# MAGIC -- a.product_name, -# MAGIC -- a.pack_des, -# MAGIC -- a.factory, -# MAGIC -- a.corp_des -# MAGIC from tmp_pack a -# MAGIC where not exists ( -# MAGIC select * from tmp_has_roc c -# MAGIC where c.pack_code = a.pack_code -# MAGIC and c.time = a.time -# MAGIC ) -# MAGIC ), tmp_pack_next_year_without_roc as ( -# MAGIC select -# MAGIC cast(a.year + 1 as int) as year, -# MAGIC concat(cast(a.year + 1 as int) , 'Q', CEIL(CAST(RIGHT(a.time,2) AS INT)/3)) as yq, -# MAGIC cast(a.time + 100 as int) as yyyymm, -# MAGIC a.pack_code as iqvia_pack_code, -# MAGIC 'ROC' as geo_key, -# MAGIC a.counting_unit as count_unit, -# MAGIC a.average_price, -# MAGIC a.sales_amount as sales_value_ly, -# MAGIC a.sales_volume as sales_unit_ly, -# MAGIC a.counting_unit_property as counting_unit_ly, -# MAGIC a.counting_units_obversion, -# MAGIC case when data_flag = 0 then 1 else 2 end as pack_flag, -# MAGIC case when brand_flag = 1 then 1 else 2 end as brand_flag, -# MAGIC -- a.prescription_nature, -# MAGIC -- a.medicine_attribute, -# MAGIC -- a.dosage_form, -# MAGIC -- a.object, -# MAGIC -- a.zk_classify1, -# MAGIC -- a.zk_classify2, -# MAGIC -- a.zk_classify3, -# MAGIC a.target_points -# MAGIC -- a.common_name, -# MAGIC -- a.brand_name, -# MAGIC -- a.product_name, -# MAGIC -- a.pack_des, -# MAGIC -- a.factory, -# MAGIC -- a.corp_des -# MAGIC from tmp_pack a -# MAGIC where a.time + 100 <= (select max(time) from tmp_pack) -# MAGIC and not exists ( -# MAGIC select * from tmp_has_roc c -# MAGIC where c.pack_code = a.pack_code -# MAGIC and c.time = a.time -# MAGIC ) -# MAGIC ),tmp_pack_without_roc as ( -# MAGIC select -# MAGIC ifnull(a.year, b.year) as year, -# MAGIC ifnull(a.yq, b.yq) as yq , -# MAGIC ifnull(a.yyyymm, b.yyyymm) as yyyymm, -# MAGIC ifnull(a.iqvia_pack_code, b.iqvia_pack_code) as iqvia_pack_code, -# MAGIC ifnull(a.geo_key, b.geo_key) as geo_key, -# MAGIC ifnull(a.count_unit, b.count_unit) as count_unit, -# MAGIC ifnull(a.average_price, b.average_price) as average_price, -# MAGIC ifnull(a.sales_value, 0) as sales_value, -# MAGIC ifnull(a.sales_unit, 0) as sales_unit, -# MAGIC ifnull(a.counting_unit, 0) as counting_unit, -# MAGIC ifnull(a.counting_units_obversion, b.counting_units_obversion) as counting_units_obversion, -# MAGIC ifnull(a.pack_flag, b.pack_flag) as pack_flag, -# MAGIC ifnull(a.brand_flag, b.brand_flag) as brand_flag, -# MAGIC ifnull(b.sales_value_ly, 0) as sales_value_ly, -# MAGIC ifnull(b.sales_unit_ly, 0) as sales_unit_ly, -# MAGIC ifnull(b.counting_unit_ly, 0) as counting_unit_ly -# MAGIC from tmp_pack_this_year_without_roc a -# MAGIC full outer join tmp_pack_next_year_without_roc b -# MAGIC on a.yyyymm = b.yyyymm -# MAGIC and a.iqvia_pack_code = b.iqvia_pack_code -# MAGIC and a.geo_key = b.geo_key -# MAGIC -- and nvl(a.prescription_nature,'') = nvl(b.prescription_nature,'') -# MAGIC -- and nvl(a.medicine_attribute,'') = nvl(b.medicine_attribute,'') -# MAGIC -- and nvl(a.dosage_form,'') = nvl(b.dosage_form,'') -# MAGIC -- and nvl(a.object,'') = nvl(b.object,'') -# MAGIC -- and nvl(a.zk_classify1,'') = nvl(b.zk_classify1,'') -# MAGIC -- and nvl(a.zk_classify2,'') = nvl(b.zk_classify2,'') -# MAGIC -- and nvl(a.zk_classify3,'') = nvl(b.zk_classify3,'') -# MAGIC and nvl(a.target_points,'') = nvl(b.target_points,'') -# MAGIC -- and nvl(a.common_name,'') = nvl(b.common_name,'') -# MAGIC -- and nvl(a.brand_name,'') = nvl(b.brand_name,'') -# MAGIC -- and nvl(a.product_name,'') = nvl(b.product_name,'') -# MAGIC -- and nvl(a.pack_des,'') = nvl(b.pack_des,'') -# MAGIC -- and nvl(a.factory,'') = nvl(b.factory,'') -# MAGIC -- and nvl(a.corp_des,'') = nvl(b.corp_des,'') -# MAGIC ), tmp_final_sales as ( -# MAGIC select * from tmp_pack_with_roc -# MAGIC union all -# MAGIC select * from tmp_pack_without_roc -# MAGIC ) -# MAGIC -# MAGIC insert overwrite table tmp.tmp_retail_dtp_final_sales -# MAGIC -# MAGIC select -# MAGIC year, -# MAGIC yq, -# MAGIC yyyymm, -# MAGIC iqvia_pack_code, -# MAGIC geo_key, -# MAGIC count_unit, -# MAGIC average_price, -# MAGIC sales_value, -# MAGIC sales_unit, -# MAGIC counting_units_obversion, -# MAGIC counting_unit, -# MAGIC sales_value_ly, -# MAGIC sales_unit_ly, -# MAGIC counting_unit_ly, -# MAGIC pack_flag, -# MAGIC brand_flag -# MAGIC from tmp_final_sales -# MAGIC order by yyyymm -# MAGIC - -# COMMAND ---------- - -# MAGIC %md -# MAGIC ## STEP-2: calculate OTHERS data - -# COMMAND ---------- - -# DBTITLE 1,不再计算 -# %sql -# ------------------------------------------------------------------------------------- -# -- STEP-2: calculate OTHERS data -# -- 2.1 calaulate DTP_AZ_OTHERS data -# ------------------------------------------------------------------------------------- -# with tmp_az_total_now as ( -# select -# cast(top_corp.sales_quarter as int ) yyyymm, -# top_corp.corp_name, -# top_corp.sales_amount *1000000.0 sales_amount, -# pack.CORP_COD -# from dwd.dwd_gnd_ext_retail_dtp_top_copd top_corp -# left join ( -# select distinct ZK_Corp_C,CORP_COD -# from dwd.dwd_inc_gnd_retail_b2c_label_total -# ) pack on replace(top_corp.corp_name,'-','')=pack.ZK_Corp_C -# where pack.CORP_COD='A5Z' -# ), tmp_az_total_ly as ( -# select -# cast(yyyymm + 100 as int) as yyyymm, -# corp_name, -# sales_amount as sales_amount_ly, -# CORP_COD -# from tmp_az_total_now -# ), tmp_az_total as ( -# select -# a.*, -# ifnull(b.sales_amount_ly, 0) as sales_amount_ly -# from tmp_az_total_now a -# left join tmp_az_total_ly b -# on a.yyyymm = b.yyyymm -# and a.corp_name = b.corp_name -# and a.CORP_COD = b.CORP_COD -# ),tmp_az_pack_total as ( -# select -# a.year, -# a.yq, -# a.yyyymm, -# sum(a.sales_value) as sales_value, -# sum(a.sales_unit) as sales_unit, -# sum(a.counting_unit) as counting_unit, -# sum(a.sales_value_ly) as sales_value_ly, -# sum(a.sales_unit_ly) as sales_unit_ly, -# sum(a.counting_unit_ly) as counting_unit_ly -# from tmp.tmp_retail_dtp_final_sales a -# where a.iqvia_pack_code in ( -# select distinct iqvia_pack_code -# from tmp.tmp_zk_retail_dtp_market_corp -# where corp_cod = 'A5Z' -# ) -# group by a.year,a.yq,a.yyyymm -# order by a.yyyymm -# ) - -# insert into table tmp.tmp_retail_dtp_final_sales - -# select -# left(a.yyyymm, 4) as year, -# concat(left(a.yyyymm, 4), 'Q', CEIL(CAST(RIGHT(a.yyyymm,2) AS INT)/3)) as yq, -# a.yyyymm, -# 'DTP_AZ_OTHERS' as iqvia_pack_code, -# 'ROC' as geo_key, -# 0 as count_unit, -# 0 as average_price, -# a.sales_amount - nvl(b.sales_value, 0) as sales_value, -# 0 as sales_unit, -# 0 as counting_units_obversion, -# 0 as counting_unit, -# a.sales_amount_ly - nvl(b.sales_value_ly, 0) as sales_value_ly, -# 0 as sales_unit_ly, -# 0 as counting_unit_ly, -# 0 as pack_flag, -# 0 as brand_flag -# from tmp_az_total a -# left join tmp_az_pack_total b -# on a.yyyymm = b.yyyymm -# order by a.yyyymm - -# COMMAND ---------- - -# DBTITLE 1,不再计算 -# %sql -# ------------------------------------------------------------------------------------- -# -- STEP-2: calculate OTHERS data -# -- 2.2 calaulate DTP_OTHERS data -# ------------------------------------------------------------------------------------- - -# with tmp_total_now as ( -# SELECT -# dtp_name, -# sales_quarter as yyyymm, -# sales_amount * 1000000.0 as sales_amount -# FROM dwd.dwd_gnd_ext_retail_dtp_overall_market -# ), tmp_total_ly as ( -# select -# dtp_name, -# cast(yyyymm + 100 as int) as yyyymm, -# sales_amount as sales_amount_ly -# from tmp_total_now -# ), tmp_total as ( -# select -# a.*, -# ifnull(b.sales_amount_ly, 0) as sales_amount_ly -# from tmp_total_now a -# left join tmp_total_ly b -# on a.yyyymm = b.yyyymm -# ),tmp_pack_total as ( -# select -# a.year, -# a.yq, -# a.yyyymm, -# sum(a.sales_value) as sales_value, -# sum(a.sales_unit) as sales_unit, -# sum(a.counting_unit) as counting_unit, -# sum(a.sales_value_ly) as sales_value_ly, -# sum(a.sales_unit_ly) as sales_unit_ly, -# sum(a.counting_unit_ly) as counting_unit_ly -# from tmp.tmp_retail_dtp_final_sales a -# group by a.year,a.yq,a.yyyymm -# order by a.yyyymm -# ) - -# insert into table tmp.tmp_retail_dtp_final_sales - -# select -# left(a.yyyymm, 4) as year, -# concat(left(a.yyyymm, 4), 'Q', CEIL(CAST(RIGHT(a.yyyymm,2) AS INT)/3)) as yq, -# a.yyyymm, -# 'DTP_OTHERS' as iqvia_pack_code, -# 'ROC' as geo_key, -# 0 as count_unit, -# 0 as average_price, -# a.sales_amount - nvl(b.sales_value, 0) as sales_value, -# 0 as sales_unit, -# 0 as counting_units_obversion, -# 0 as counting_unit, -# a.sales_amount_ly - nvl(b.sales_value_ly, 0) as sales_value_ly, -# 0 as sales_unit_ly, -# 0 as counting_unit_ly, -# 0 as pack_flag, -# 0 as brand_flag -# from tmp_total a -# left join tmp_pack_total b -# on a.yyyymm = b.yyyymm -# order by a.yyyymm - -# COMMAND ---------- - -############################################################END################################################################ \ No newline at end of file diff --git a/EXTERNAL/Retail/08 map_to_dtp_dws_table.py:Zone.Identifier b/EXTERNAL/Retail/08 map_to_dtp_dws_table.py:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2xdl#JyUFr831@K2x 'ROC' -# MAGIC ) -# MAGIC -# MAGIC -------------------省份、自治区等处理----------------------- -# MAGIC insert overwrite table dm.dm_zk_retail_geo -# MAGIC SELECT -# MAGIC geo_key -# MAGIC ,city_name_en -# MAGIC ,replace(city_name,'市') city_c -# MAGIC ,case when city_code is not null then 'City' else 'Province' END city_type -# MAGIC ,city_tier -# MAGIC ,AZ_City_tier -# MAGIC ,province_name_en -# MAGIC ,province_name -# MAGIC ,province_code -# MAGIC ,city_name city_map -# MAGIC ,case when province_code in ('TJ','CQ','BJ','SH') then concat(province_name,'市') -# MAGIC when province_code in ('SC','YN','LN','SA','GZ','HN','HL','SX','ZJ','JS','SD','JL','FJ','GD','HU','AH','GS','HE','JX','HB') then concat(province_name,'省') -# MAGIC when province_code ='GX' THEN concat(province_name,'壮族自治区') -# MAGIC when province_code ='IM' THEN concat(province_name,'自治区') -# MAGIC ELSE province_name -# MAGIC end province_map -# MAGIC ,city_code -# MAGIC ,province_city -# MAGIC ,area_code -# MAGIC ,area_name -# MAGIC ,area_name_en -# MAGIC ,rc_code -# MAGIC ,rc_name -# MAGIC ,rc_name_en -# MAGIC ,from_utc_timestamp(current_timestamp(),'UTC+8') etl_insert_dt -# MAGIC ,from_utc_timestamp(current_timestamp(),'UTC+8') etl_update_dt -# MAGIC from tmp -# MAGIC -# MAGIC UNION ALL -# MAGIC -# MAGIC SELECT -# MAGIC 'ROC' -# MAGIC ,'Other Low Tiers' -# MAGIC ,'Other Low Tiers' -# MAGIC ,'City' -# MAGIC , 1 -# MAGIC , 1 -# MAGIC ,'Other Low Tiers' -# MAGIC ,'Other Low Tiers' -# MAGIC , null -# MAGIC ,'Other Low Tiers' -# MAGIC ,'Other Low Tiers' -# MAGIC ,'Other Low Tiers' -# MAGIC ,'Other Low Tiers' -# MAGIC ,'Other Low Tiers' -# MAGIC ,'Other Low Tiers' -# MAGIC ,'Other Low Tiers' -# MAGIC ,'Other Low Tiers' -# MAGIC ,'Other Low Tiers' -# MAGIC ,'Other Low Tiers' -# MAGIC ,from_utc_timestamp(current_timestamp(),'UTC+8') etl_insert_dt -# MAGIC ,from_utc_timestamp(current_timestamp(),'UTC+8') etl_update_dt -# MAGIC - -# COMMAND ---------- - -# MAGIC %md -# MAGIC ## STEP-2: map to dm.dm_ext_rc_ratio - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-2: map to dm.dm_ext_rc_ratio -# MAGIC -- 2.1 rc 拆分逻辑处理 -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC insert overwrite table dws.dws_ext_rc_ratio -# MAGIC select -# MAGIC a.sub_bu -# MAGIC ,a.mkt -# MAGIC ,a.region_code -# MAGIC ,nvl(b.PROVINCE_CODE,c.PROVINCE_CODE ) PROVINCE_CODE -# MAGIC ,nvl(b.AUDIT_COD,c.PROVINCE_CODE) city_code -# MAGIC ,a.ratio -# MAGIC ,From_utc_timestamp(CURRENT_TIMESTAMP(), 'UTC+8') etl_insert_dt -# MAGIC ,From_utc_timestamp(CURRENT_TIMESTAMP(), 'UTC+8') etl_update_dt -# MAGIC from dwd.dwd_gnd_ext_rc_ratio a -# MAGIC left join dm.dm_ims_td_geo b on a.city = b.CITY_C -# MAGIC left join ( -# MAGIC select province_code,province_name -# MAGIC from dm.dm_td_geography group by province_name,province_code -# MAGIC ) c on a.city = c.province_name - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-2: map to dm.dm_ext_rc_ratio -# MAGIC -- 2.2 rc 拆分逻辑处理 -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC insert overwrite table dm.dm_ext_rc_ratio -# MAGIC select -# MAGIC sub_bu -# MAGIC ,mkt -# MAGIC ,region_code -# MAGIC ,PROVINCE_CODE -# MAGIC ,city_code -# MAGIC ,ratio -# MAGIC ,From_utc_timestamp(CURRENT_TIMESTAMP(), 'UTC+8') etl_insert_dt -# MAGIC ,From_utc_timestamp(CURRENT_TIMESTAMP(), 'UTC+8') etl_update_dt -# MAGIC from dws.dws_ext_rc_ratio - -# COMMAND ---------- - -# MAGIC %md -# MAGIC ## STEP-3: map to dm.dm_zk_retail_sales - -# COMMAND ---------- - -# MAGIC %md -# MAGIC ### 3.1 将数据写入最终表的临时表 - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-3: map to dm.dm_zk_retail_sales -# MAGIC -- 3.2 write pack data from tmp.tmp_retail_final_sales to tmp.tmp_retail_dm_zk_retail_sales_final -# MAGIC -- pack_flag :0-倒减的others 1-不拆的 2-拆的 -# MAGIC -- brand_flag :0-倒减的others 1-买了这个品牌 2-没买这个品牌 -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC with tmp_source as ( -# MAGIC select -# MAGIC distinct -# MAGIC yyyymm, -# MAGIC iqvia_pack_code, -# MAGIC province_city, -# MAGIC collect_list(distinct market) as source -# MAGIC from tmp.tmp_retail_final_sales -# MAGIC group by yyyymm,iqvia_pack_code,province_city -# MAGIC ), tmp_pack as ( -# MAGIC select -# MAGIC yyyymm, -# MAGIC iqvia_pack_code, -# MAGIC province_city, -# MAGIC market, -# MAGIC pack_flag, -# MAGIC brand_flag, -# MAGIC sum(sales_unit) as sales_unit, -# MAGIC sum(sales_unit_ly) as sales_unit_ly, -# MAGIC sum(sales_value) as sales_value, -# MAGIC sum(sales_value_ly) as sales_value_ly, -# MAGIC sum(counting_unit) as counting_unit, -# MAGIC sum(counting_unit_ly) as counting_unit_ly -# MAGIC from tmp.tmp_retail_final_sales -# MAGIC group by yyyymm,iqvia_pack_code,province_city,market,pack_flag,brand_flag -# MAGIC ) -# MAGIC -# MAGIC insert overwrite table tmp.tmp_retail_dm_zk_retail_sales_final -# MAGIC select -# MAGIC a.yyyymm, -# MAGIC a.iqvia_pack_code, -# MAGIC CASE WHEN a.province_city ='ROC' then 'ROC' ELSE b.geo_key END as AUDIT_COD, -# MAGIC a.province_city, -# MAGIC c.corp_cod, -# MAGIC a.sales_unit, -# MAGIC a.sales_unit_ly, -# MAGIC a.sales_value, -# MAGIC a.sales_value_ly, -# MAGIC a.counting_unit, -# MAGIC a.counting_unit_ly, -# MAGIC 'Retail(Quarterly)' as DATA_SOURCE, -# MAGIC d.source, -# MAGIC a.pack_flag, -# MAGIC a.brand_flag, -# MAGIC case -# MAGIC when a.market in ('他汀类+血脂康','高血压用药','Brilinta Market') then 'CV' -# MAGIC when a.market in ('NIAD','RD Market') then 'CVRM' -# MAGIC ELSE '' -# MAGIC END as FLAG -# MAGIC from tmp_pack a -# MAGIC left join dm.dm_zk_retail_geo b -# MAGIC on a.province_city = b.province_city -# MAGIC left join tmp.tmp_zk_retail_pack_property_corp c -# MAGIC on a.iqvia_pack_code = c.iqvia_pack_code -# MAGIC left join tmp_source d -# MAGIC on a.yyyymm = d.yyyymm -# MAGIC and a.iqvia_pack_code = d.iqvia_pack_code -# MAGIC and a.province_city = d.province_city - -# COMMAND ---------- - -# MAGIC %md -# MAGIC ### 3.2 计算OTHERS数据 - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-5: map to dm.dm_zk_retail_sales -# MAGIC -- 3.3 calculate OTHERS DATA -# MAGIC -- 3.3.1 将数据处理到dws -# MAGIC -- 3.3.1.1 维度信息计算 -# MAGIC -- STEP1: nataional_top_corp -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC --直接写入旧的文件对应的表,这样后面的代码都不用改动。 -# MAGIC --新文件《全国-集团排名》筛选:TA=Retail Total,Rx/OTC= Rx,Top/Top Incre. = Top Sales,对应了旧文件:《全国-Rx-TOP集团》 -# MAGIC insert overwrite table dwd.dwd_gnd_ext_retail_nataional_top_corp -# MAGIC ( -# MAGIC rank1, -# MAGIC corp_desc, -# MAGIC corporation, -# MAGIC corp_type, -# MAGIC sales_quarter, -# MAGIC sales_amount, -# MAGIC ytd_gr, -# MAGIC ytd_ms, -# MAGIC ytd_delta_ms, -# MAGIC builtinarchivedate, -# MAGIC source_file_path, -# MAGIC source_file_name, -# MAGIC etl_insert_dt -# MAGIC ) -# MAGIC select -# MAGIC trim(rank1) as rank1, -# MAGIC corp_desc, -# MAGIC corporation, -# MAGIC `type` as corp_type, -# MAGIC sales_quarter, -# MAGIC sales_amount, -# MAGIC null as ytd_gr, -# MAGIC null as ytd_ms, -# MAGIC null as ytd_delta_ms, -# MAGIC builtinarchivedate, -# MAGIC source_file_path, -# MAGIC source_file_name, -# MAGIC etl_insert_dt -# MAGIC from dwd.dwd_gnd_retail_national_corp_rank -# MAGIC where upper(ta) = 'RETAIL TOTAL' -# MAGIC and upper(rx_otc) = 'RX' -# MAGIC and upper(top_top_incre) = 'TOP SALES' - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-5: map to dm.dm_zk_retail_sales -# MAGIC -- 3.3 calculate OTHERS DATA -# MAGIC -- 3.3.1 将数据处理到dws -# MAGIC -- 3.3.1.1 维度信息计算 -# MAGIC -- STEP2: nataional_ta_top_corp -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC --直接写入旧的文件对应的表,这样后面的代码都不用改动。 -# MAGIC --新文件《全国-集团排名》筛选:TA <> Retail Total,Top/Top Incre. = Top Sales,对应了旧文件:《全国-分TA-TOP集团》 -# MAGIC insert overwrite table dwd.dwd_gnd_ext_retail_nataional_ta_top_corp -# MAGIC ( -# MAGIC rank1, -# MAGIC corp_desc, -# MAGIC corp_name, -# MAGIC corp_type, -# MAGIC source_name, -# MAGIC sales_quarter, -# MAGIC sales_amount, -# MAGIC ytd_gr, -# MAGIC ytd_ms, -# MAGIC ytd_delta_ms, -# MAGIC builtinarchivedate, -# MAGIC source_file_path, -# MAGIC source_file_name, -# MAGIC etl_insert_dt -# MAGIC ) -# MAGIC select -# MAGIC trim(rank1) as rank1, -# MAGIC corp_desc, -# MAGIC corporation as corp_name, -# MAGIC `type` as corp_type, -# MAGIC case when ta = 'GI' then concat(ta,'-',rx_otc) -# MAGIC when ta = 'NIAD-excl. GLP1' then 'DM' -# MAGIC else ta end as source_name, -# MAGIC sales_quarter, -# MAGIC sales_amount, -# MAGIC null as ytd_gr, -# MAGIC null as ytd_ms, -# MAGIC null as ytd_delta_ms, -# MAGIC builtinarchivedate, -# MAGIC source_file_path, -# MAGIC source_file_name, -# MAGIC etl_insert_dt -# MAGIC from dwd.dwd_gnd_retail_national_corp_rank -# MAGIC where upper(ta) <> 'RETAIL TOTAL' -# MAGIC and upper(top_top_incre) = 'TOP SALES' - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-5: map to dm.dm_zk_retail_sales -# MAGIC -- 3.3 calculate OTHERS DATA -# MAGIC -- 3.3.1 将数据处理到dws -# MAGIC -- 3.3.1.2 将 top_corp 的数据处理到dws -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC --------------------获取 全国total 本同期数据------------------------ -# MAGIC insert overwrite table dws.dws_zk_retail_top_corp -# MAGIC SELECT -# MAGIC yyyymm, -# MAGIC rank1, -# MAGIC corp_desc, -# MAGIC corporation, -# MAGIC -- source_name, -# MAGIC sum(sales_amount) as sales_amount, -# MAGIC sum(sales_amount_ly) as sales_amount_ly -# MAGIC FROM -# MAGIC ( -# MAGIC SELECT -# MAGIC nvl(rank1,'' ) as rank1 , -# MAGIC corp_desc, -# MAGIC corporation, -# MAGIC corp_type, -# MAGIC -- source_name, -# MAGIC CAST(sales_quarter AS int ) as yyyymm, -# MAGIC sales_amount * 1000000 AS sales_amount, -# MAGIC 0 AS sales_amount_ly -# MAGIC FROM dwd.dwd_gnd_ext_retail_nataional_top_corp -# MAGIC UNION ALL -# MAGIC SELECT -# MAGIC nvl(rank1,'' ) rank1, -# MAGIC corp_desc, -# MAGIC corporation, -# MAGIC corp_type, -# MAGIC -- source_name, -# MAGIC CAST(sales_quarter + 100 AS int ) as yyyymm, -# MAGIC 0 AS sales_amount, -# MAGIC sales_amount * 1000000 AS sales_amount_ly -# MAGIC FROM dwd.dwd_gnd_ext_retail_nataional_top_corp -# MAGIC WHERE CAST(sales_quarter + 100 AS int ) -# MAGIC <=(SELECT -# MAGIC max(CAST(sales_quarter AS int )) -# MAGIC FROM dwd.dwd_gnd_ext_retail_nataional_top_corp ) ) -# MAGIC GROUP BY -# MAGIC yyyymm, -# MAGIC rank1, -# MAGIC corp_desc, -# MAGIC corporation -# MAGIC -- source_name - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-3: map to dm.dm_zk_retail_sales -# MAGIC -- 3.3 calculate OTHERS DATA -# MAGIC -- 3.3.1 将数据处理到dws -# MAGIC -- 3.3.1.3 将 ta_top_corp 的数据处理到dws -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC --------------------获取 ta total 本同期数据,用于后续取 total 及 az 值 -# MAGIC insert overwrite table dws.dws_zk_retail_ta_top_corp -# MAGIC SELECT -# MAGIC source_name, -# MAGIC rank1, -# MAGIC corp_desc, -# MAGIC CORP_COD, -# MAGIC yyyymm, -# MAGIC sum(sales_amount) sales_amount, -# MAGIC sum(sales_amount_ly) sales_amount_ly -# MAGIC FROM -# MAGIC ( -# MAGIC SELECT -# MAGIC a.rank1, -# MAGIC source_name, -# MAGIC A.corp_desc, -# MAGIC B.CORP_COD, --A.corp_name as CORP_COD, --自有的corp_name 是 corp_code -# MAGIC CAST(sales_quarter AS int ) yyyymm , -# MAGIC sales_amount * 1000000 AS sales_amount, -# MAGIC 0 AS sales_amount_ly -# MAGIC FROM dwd.dwd_gnd_ext_retail_nataional_ta_top_corp a -# MAGIC LEFT JOIN (SELECT DISTINCT ZK_Corp_C,CORP_COD FROM dwd.dwd_inc_gnd_retail_b2c_label_total) b -# MAGIC ON a.corp_desc = b.ZK_Corp_C -# MAGIC UNION ALL -# MAGIC SELECT -# MAGIC a.rank1, -# MAGIC source_name, -# MAGIC A.corp_desc, -# MAGIC B.CORP_COD, --A.corp_name as CORP_COD, --自有的corp_name 是 corp_code -# MAGIC CAST(sales_quarter + 100 AS int ) yyyymm , -# MAGIC 0 AS sales_amount, -# MAGIC sales_amount * 1000000 AS sales_amount_ly -# MAGIC FROM dwd.dwd_gnd_ext_retail_nataional_ta_top_corp a -# MAGIC LEFT JOIN (SELECT DISTINCT ZK_Corp_C,CORP_COD FROM dwd.dwd_inc_gnd_retail_b2c_label_total) b -# MAGIC ON a.corp_desc = b.ZK_Corp_C -# MAGIC WHERE -# MAGIC CAST(sales_quarter + 100 AS int ) -# MAGIC <=( SELECT max(CAST(sales_quarter AS int )) -# MAGIC FROM dwd.dwd_gnd_ext_retail_nataional_ta_top_corp ) -# MAGIC ) -# MAGIC GROUP BY -# MAGIC 1,2,3,4,5 - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-3: map to dm.dm_zk_retail_sales -# MAGIC -- 3.3.2 calculate TA OTHERS -# MAGIC -- 3.3.2.1 calculate CV_AZ_OTHERS -# MAGIC -- pack_flag :0-倒减的others 1-不拆的 2-拆的 -# MAGIC -- brand_flag :0-倒减的others 1-买了这个品牌 2-没买这个品牌 -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC with tmp_az_total as ( -# MAGIC select -# MAGIC yyyymm, -# MAGIC sales_amount, -# MAGIC sales_amount_ly -# MAGIC from dws.dws_zk_retail_ta_top_corp -# MAGIC where source_name='CV' -# MAGIC AND CORP_COD ='A5Z' -# MAGIC ), tmp_az_pack_total as ( -# MAGIC select -# MAGIC a.YYYYMM, -# MAGIC a.corp_cod, -# MAGIC sum(a.sales_value) as sales_value , -# MAGIC sum(a.sales_value_ly) as sales_value_ly -# MAGIC from tmp.tmp_retail_dm_zk_retail_sales_final a -# MAGIC where nvl(a.corp_cod,'') ='A5Z' -# MAGIC and FLAG = 'CV' -# MAGIC group by a.YYYYMM,a.corp_cod -# MAGIC ) -# MAGIC -# MAGIC insert into table tmp.tmp_retail_dm_zk_retail_sales_final -# MAGIC -# MAGIC select -# MAGIC a.YYYYMM, -# MAGIC 'CV_AZ_OTHERS' as iqvia_pack_code, -# MAGIC 'ROC' as AUDIT_COD, -# MAGIC 'ROC' as province_city, -# MAGIC a.corp_cod, -# MAGIC 0 as sales_unit, -# MAGIC 0 as sales_unit_ly, -# MAGIC -------------------------* hard_code * ------------------------- -# MAGIC -- 25年没有TA大数,此类数据直接赋值0 -# MAGIC 0, --case when b.sales_amount is not null then b.sales_amount - a.sales_value else 0 end as sales_value, -# MAGIC 0, --case when b.sales_amount_ly is not null then b.sales_amount_ly - a.sales_value_ly else 0 end as sales_value_ly, -# MAGIC -------------------------* hard_code * ------------------------- -# MAGIC 0 as counting_unit, -# MAGIC 0 as counting_unit_ly, -# MAGIC 'Retail(Quarterly)' as DATA_SOURCE, -# MAGIC null as source, -# MAGIC 0 as pack_flag, -# MAGIC 0 as brand_flag, -# MAGIC 'CV' as FLAG -# MAGIC from tmp_az_pack_total a -# MAGIC left join tmp_az_total b -# MAGIC on a.YYYYMM = b.yyyymm - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-3: map to dm.dm_zk_retail_sales -# MAGIC -- 3.3.2 calculate TA OTHERS -# MAGIC -- 3.3.2.2 calculate CV_OTHERS -# MAGIC -- pack_flag :0-倒减的others 1-不拆的 2-拆的 -# MAGIC -- brand_flag :0-倒减的others 1-买了这个品牌 2-没买这个品牌 -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC with tmp_total as ( -# MAGIC select -# MAGIC yyyymm, -# MAGIC sales_amount, -# MAGIC sales_amount_ly -# MAGIC from dws.dws_zk_retail_ta_top_corp -# MAGIC where source_name='CV' -# MAGIC AND rank1 = 'Total' -# MAGIC ), tmp_pack_total as ( -# MAGIC select -# MAGIC a.YYYYMM, -# MAGIC sum(a.sales_value) as sales_value, -# MAGIC sum(a.sales_value_ly) as sales_value_ly -# MAGIC from tmp.tmp_retail_dm_zk_retail_sales_final a -# MAGIC where FLAG = 'CV' -# MAGIC group by a.YYYYMM -# MAGIC ) -# MAGIC -# MAGIC insert into table tmp.tmp_retail_dm_zk_retail_sales_final -# MAGIC -# MAGIC select -# MAGIC a.YYYYMM, -# MAGIC 'CV_OTHERS' as iqvia_pack_code, -# MAGIC 'ROC' as AUDIT_COD, -# MAGIC 'ROC' as province_city, -# MAGIC 'CV_OTHERS' as corp_cod, -# MAGIC 0 as sales_unit, -# MAGIC 0 as sales_unit_ly, -# MAGIC -------------------------* hard_code * ------------------------- -# MAGIC -- 25年没有TA大数,此类数据直接赋值0 -# MAGIC 0, --case when b.sales_amount is not null then b.sales_amount - a.sales_value else 0 end as sales_value, -# MAGIC 0, --case when b.sales_amount_ly is not null then b.sales_amount_ly - a.sales_value_ly else 0 end as sales_value_ly, -# MAGIC -------------------------* hard_code * ------------------------- -# MAGIC 0 as counting_unit, -# MAGIC 0 as counting_unit_ly, -# MAGIC 'Retail(Quarterly)' as DATA_SOURCE, -# MAGIC null as source, -# MAGIC 0 as pack_flag, -# MAGIC 0 as brand_flag, -# MAGIC 'CV' as FLAG -# MAGIC from tmp_pack_total a -# MAGIC left join tmp_total b -# MAGIC on a.YYYYMM = b.yyyymm - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-3: map to dm.dm_zk_retail_sales -# MAGIC -- 3.3.2 calculate TA OTHERS -# MAGIC -- 3.3.2.3 calculate CVRM_AZ_OTHERS (TODO) -# MAGIC -- pack_flag :0-倒减的others 1-不拆的 2-拆的 -# MAGIC -- brand_flag :0-倒减的others 1-买了这个品牌 2-没买这个品牌 -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC with tmp_az_total as ( -# MAGIC select -# MAGIC yyyymm, -# MAGIC sales_amount, -# MAGIC sales_amount_ly -# MAGIC from dws.dws_zk_retail_ta_top_corp -# MAGIC where source_name='CVRM' -# MAGIC AND CORP_COD ='A5Z' -# MAGIC ), tmp_az_pack_total as ( -# MAGIC select -# MAGIC a.YYYYMM, -# MAGIC a.corp_cod, -# MAGIC sum(a.sales_value) as sales_value , -# MAGIC sum(a.sales_value_ly) as sales_value_ly -# MAGIC from tmp.tmp_retail_dm_zk_retail_sales_final a -# MAGIC where nvl(a.corp_cod,'') ='A5Z' -# MAGIC and FLAG = 'CVRM' -# MAGIC group by a.YYYYMM,a.corp_cod -# MAGIC ) -# MAGIC -# MAGIC insert into table tmp.tmp_retail_dm_zk_retail_sales_final -# MAGIC -# MAGIC select -# MAGIC a.YYYYMM, -# MAGIC 'CVRM_AZ_OTHERS' as iqvia_pack_code, -# MAGIC 'ROC' as AUDIT_COD, -# MAGIC 'ROC' as province_city, -# MAGIC a.corp_cod, -# MAGIC 0 as sales_unit, -# MAGIC 0 as sales_unit_ly, -# MAGIC -------------------------* hard_code * ------------------------- -# MAGIC -- 25年没有TA大数,此类数据直接赋值0 -# MAGIC 0, --case when b.sales_amount is not null then b.sales_amount - a.sales_value else 0 end as sales_value, -# MAGIC 0, --case when b.sales_amount_ly is not null then b.sales_amount_ly - a.sales_value_ly else 0 end as sales_value_ly, -# MAGIC -------------------------* hard_code * ------------------------- -# MAGIC 0 as counting_unit, -# MAGIC 0 as counting_unit_ly, -# MAGIC 'Retail(Quarterly)' as DATA_SOURCE, -# MAGIC null as source, -# MAGIC 0 as pack_flag, -# MAGIC 0 as brand_flag, -# MAGIC 'CVRM' as FLAG -# MAGIC from tmp_az_pack_total a -# MAGIC left join tmp_az_total b -# MAGIC on a.YYYYMM = b.yyyymm - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-5: map to dm.dm_zk_retail_sales -# MAGIC -- 5.3.2 calculate TA OTHERS -# MAGIC -- 5.3.2.4 calculate CVRM_OTHERS (TODO) -# MAGIC -- pack_flag :0-倒减的others 1-不拆的 2-拆的 -# MAGIC -- brand_flag :0-倒减的others 1-买了这个品牌 2-没买这个品牌 -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC with tmp_total as ( -# MAGIC select -# MAGIC yyyymm, -# MAGIC sales_amount, -# MAGIC sales_amount_ly -# MAGIC from dws.dws_zk_retail_ta_top_corp -# MAGIC where source_name='CVRM' -# MAGIC AND rank1 = 'Total' -# MAGIC ), tmp_pack_total as ( -# MAGIC select -# MAGIC a.YYYYMM, -# MAGIC sum(a.sales_value) as sales_value, -# MAGIC sum(a.sales_value_ly) as sales_value_ly -# MAGIC from tmp.tmp_retail_dm_zk_retail_sales_final a -# MAGIC where FLAG = 'CVRM' -# MAGIC group by a.YYYYMM -# MAGIC ) -# MAGIC -# MAGIC insert into table tmp.tmp_retail_dm_zk_retail_sales_final -# MAGIC select -# MAGIC a.YYYYMM, -# MAGIC 'CVRM_OTHERS' as iqvia_pack_code, -# MAGIC 'ROC' as AUDIT_COD, -# MAGIC 'ROC' as province_city, -# MAGIC 'CV_OTHERS' as corp_cod, -# MAGIC 0 as sales_unit, -# MAGIC 0 as sales_unit_ly, -# MAGIC -------------------------* hard_code * ------------------------- -# MAGIC -- 25年没有TA大数,此类数据直接赋值0 -# MAGIC 0, --case when b.sales_amount is not null then b.sales_amount - a.sales_value else 0 end as sales_value, -# MAGIC 0, --case when b.sales_amount_ly is not null then b.sales_amount_ly - a.sales_value_ly else 0 end as sales_value_ly, -# MAGIC -------------------------* hard_code * ------------------------- -# MAGIC 0 as counting_unit, -# MAGIC 0 as counting_unit_ly, -# MAGIC 'Retail(Quarterly)' as DATA_SOURCE, -# MAGIC null as source, -# MAGIC 0 as pack_flag, -# MAGIC 0 as brand_flag, -# MAGIC 'CVRM' as FLAG -# MAGIC from tmp_pack_total a -# MAGIC left join tmp_total b -# MAGIC on a.YYYYMM = b.yyyymm - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-5: map to dm.dm_zk_retail_sales -# MAGIC -- 5.3.3 calculate OTHERS -# MAGIC -- 5.3.3.1 calculate OTHERS_AZ_TA -# MAGIC -- pack_flag :0-倒减的others 1-不拆的 2-拆的 -# MAGIC -- brand_flag :0-倒减的others 1-买了这个品牌 2-没买这个品牌 -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC with tmp_az_total as ( -# MAGIC select -# MAGIC yyyymm, -# MAGIC sales_amount, -# MAGIC sales_amount_ly -# MAGIC from dws.dws_zk_retail_top_corp -# MAGIC where corp_desc = '阿斯利康' -# MAGIC ), tmp_az_pack_total as ( -# MAGIC select -# MAGIC a.YYYYMM, -# MAGIC a.corp_cod, -# MAGIC sum(a.sales_value) as sales_value , -# MAGIC sum(a.sales_value_ly) as sales_value_ly -# MAGIC from tmp.tmp_retail_dm_zk_retail_sales_final a -# MAGIC where nvl(a.corp_cod,'') ='A5Z' -# MAGIC group by a.YYYYMM,a.corp_cod -# MAGIC ) -# MAGIC -# MAGIC insert into table tmp.tmp_retail_dm_zk_retail_sales_final -# MAGIC -# MAGIC select -# MAGIC a.YYYYMM, -# MAGIC 'OTHERS_AZ_TA' as iqvia_pack_code, -# MAGIC 'ROC' as AUDIT_COD, -# MAGIC 'ROC' as province_city, -# MAGIC a.corp_cod, -# MAGIC 0 as sales_unit, -# MAGIC 0 as sales_unit_ly, -# MAGIC case when b.sales_amount is not null then b.sales_amount - a.sales_value else 0 end as sales_value, -# MAGIC case when b.sales_amount_ly is not null then b.sales_amount_ly - a.sales_value_ly else 0 end as sales_value_ly, -# MAGIC 0 as counting_unit, -# MAGIC 0 as counting_unit_ly, -# MAGIC 'Retail(Quarterly)' as DATA_SOURCE, -# MAGIC null as source, -# MAGIC 0 as pack_flag, -# MAGIC 0 as brand_flag, -# MAGIC 'TA_AZ' as FLAG -# MAGIC from tmp_az_pack_total a -# MAGIC left join tmp_az_total b -# MAGIC on a.YYYYMM = b.yyyymm -# MAGIC - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-5: map to dm.dm_zk_retail_sales -# MAGIC -- 5.3.3 calculate OTHERS -# MAGIC -- 5.3.3.2 calculate OTHERS_TA -# MAGIC -- pack_flag :0-倒减的others 1-不拆的 2-拆的 -# MAGIC -- brand_flag :0-倒减的others 1-买了这个品牌 2-没买这个品牌 -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC with tmp_total as ( -# MAGIC select -# MAGIC yyyymm, -# MAGIC sales_amount, -# MAGIC sales_amount_ly -# MAGIC from dws.dws_zk_retail_top_corp -# MAGIC where rank1 = 'Total' -# MAGIC ), tmp_pack_total as ( -# MAGIC select -# MAGIC a.YYYYMM, -# MAGIC sum(a.sales_value) as sales_value, -# MAGIC sum(a.sales_value_ly) as sales_value_ly -# MAGIC from tmp.tmp_retail_dm_zk_retail_sales_final a -# MAGIC group by a.YYYYMM -# MAGIC ) -# MAGIC -# MAGIC insert into table tmp.tmp_retail_dm_zk_retail_sales_final -# MAGIC -# MAGIC select -# MAGIC a.YYYYMM, -# MAGIC 'OTHERS_TA' as iqvia_pack_code, -# MAGIC 'ROC' as AUDIT_COD, -# MAGIC 'ROC' as province_city, -# MAGIC 'OTHERS_TA' as corp_cod, -# MAGIC 0 as sales_unit, -# MAGIC 0 as sales_unit_ly, -# MAGIC case when b.sales_amount is not null then b.sales_amount - a.sales_value else 0 end as sales_value, -# MAGIC case when b.sales_amount_ly is not null then b.sales_amount_ly - a.sales_value_ly else 0 end as sales_value_ly, -# MAGIC 0 as counting_unit, -# MAGIC 0 as counting_unit_ly, -# MAGIC 'Retail(Quarterly)' as DATA_SOURCE, -# MAGIC null as source, -# MAGIC 0 as pack_flag, -# MAGIC 0 as brand_flag, -# MAGIC 'OTHERS_TA' as FLAG -# MAGIC from tmp_pack_total a -# MAGIC left join tmp_total b -# MAGIC on a.YYYYMM = b.yyyymm - -# COMMAND ---------- - -# MAGIC %md -# MAGIC ### 3.3 映射到DM最终表 - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-3: map to dm.dm_zk_retail_sales -# MAGIC -- 3.4 write into final table: dm.dm_zk_retail_sales -# MAGIC -- pack_flag :0-倒减的others 1-不拆的 2-拆的 -# MAGIC -- brand_flag :0-倒减的others 1-买了这个品牌 2-没买这个品牌 -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC insert overwrite table dm.dm_zk_retail_sales -# MAGIC -# MAGIC select -# MAGIC yyyymm, -# MAGIC iqvia_pack_code, -# MAGIC AUDIT_COD, -# MAGIC province_city, -# MAGIC corp_cod, -# MAGIC sales_unit, -# MAGIC sales_unit_ly, -# MAGIC sales_value, -# MAGIC sales_value_ly, -# MAGIC counting_unit, -# MAGIC counting_unit_ly, -# MAGIC DATA_SOURCE, -# MAGIC source, -# MAGIC pack_flag, -# MAGIC brand_flag, -# MAGIC FLAG, -# MAGIC from_utc_timestamp(current_timestamp(),'UTC+8') etl_insert_dt, -# MAGIC from_utc_timestamp(current_timestamp(),'UTC+8') etl_update_dt -# MAGIC from tmp.tmp_retail_dm_zk_retail_sales_final - -# COMMAND ---------- - -# MAGIC %md -# MAGIC ### 3.4 补充新增的OTHERS数据到配置表中 - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-3: map to dm.dm_zk_retail_sales -# MAGIC -- 3.5 将倒减的OTHERS数据补充到配置表中 -# MAGIC -- pack_flag :0-倒减的others 1-不拆的 2-拆的 -# MAGIC -- brand_flag :0-倒减的others 1-买了这个品牌 2-没买这个品牌 -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -# MAGIC insert overwrite table dws.dws_zk_retail_pack_property -# MAGIC ( -# MAGIC iqvia_lineno, -# MAGIC iqvia_pack_code, -# MAGIC PROD_COD, -# MAGIC iqvia_notes, -# MAGIC new_pack_flag, -# MAGIC is_exists_chpa, -# MAGIC product_id, -# MAGIC prescription_nature, -# MAGIC medicine_type, -# MAGIC zk_medicine_tier1, -# MAGIC zk_medicine_tier2, -# MAGIC zk_medicine_tier3, -# MAGIC zk_medicine_tier4, -# MAGIC common_name, -# MAGIC dosage_form, -# MAGIC user_type, -# MAGIC category_name, -# MAGIC product_name, -# MAGIC brand_name, -# MAGIC zk_manu_des, -# MAGIC zk_corp_des, -# MAGIC zk_pack_des, -# MAGIC counting_unit_a, -# MAGIC dosage_unit_a, -# MAGIC unit_a, -# MAGIC app1_cod, -# MAGIC app1_des, -# MAGIC app1_des_c, -# MAGIC app2_cod, -# MAGIC app2_des, -# MAGIC app2_des_c, -# MAGIC app3_cod, -# MAGIC app3_des, -# MAGIC app3_des_c, -# MAGIC atc1_cod, -# MAGIC atc1_des, -# MAGIC atc1_des_c, -# MAGIC atc2_cod, -# MAGIC atc2_des, -# MAGIC atc2_des_c, -# MAGIC atc3_cod, -# MAGIC atc3_des, -# MAGIC atc3_des_c, -# MAGIC atc4_cod, -# MAGIC atc4_des, -# MAGIC atc4_des_c, -# MAGIC bio_desc, -# MAGIC cmps_cod, -# MAGIC cmps_des, -# MAGIC cmps_des_c, -# MAGIC corp_cod, -# MAGIC corp_des, -# MAGIC corp_des_c, -# MAGIC edl_desc, -# MAGIC eth_otc_desc, -# MAGIC gene_orig_desc, -# MAGIC gqce_desc, -# MAGIC manu_cod, -# MAGIC manu_des, -# MAGIC manu_des_c, -# MAGIC mnfl_cod, -# MAGIC mnfl_des, -# MAGIC nrdl_desc, -# MAGIC pack_des, -# MAGIC stgh_des, -# MAGIC pack_lch, -# MAGIC paed_desc, -# MAGIC prod_des, -# MAGIC prod_des_c, -# MAGIC tcm_desc, -# MAGIC vbp_desc, -# MAGIC unit, -# MAGIC counting_unit, -# MAGIC dosage_unit, -# MAGIC NRDL_ENTRY_DATE, -# MAGIC market, -# MAGIC bu, -# MAGIC extend_market_ratio, -# MAGIC is_az, -# MAGIC etl_insert_dt, -# MAGIC etl_update_dt -# MAGIC ) -# MAGIC select -# MAGIC iqvia_lineno, -# MAGIC iqvia_pack_code, -# MAGIC PROD_COD, -# MAGIC iqvia_notes, -# MAGIC new_pack_flag, -# MAGIC is_exists_chpa, -# MAGIC product_id, -# MAGIC prescription_nature, -# MAGIC medicine_type, -# MAGIC zk_medicine_tier1, -# MAGIC zk_medicine_tier2, -# MAGIC zk_medicine_tier3, -# MAGIC zk_medicine_tier4, -# MAGIC common_name, -# MAGIC dosage_form, -# MAGIC user_type, -# MAGIC category_name, -# MAGIC product_name, -# MAGIC brand_name, -# MAGIC zk_manu_des, -# MAGIC zk_corp_des, -# MAGIC zk_pack_des, -# MAGIC counting_unit_a, -# MAGIC dosage_unit_a, -# MAGIC unit_a, -# MAGIC app1_cod, -# MAGIC app1_des, -# MAGIC app1_des_c, -# MAGIC app2_cod, -# MAGIC app2_des, -# MAGIC app2_des_c, -# MAGIC app3_cod, -# MAGIC app3_des, -# MAGIC app3_des_c, -# MAGIC atc1_cod, -# MAGIC atc1_des, -# MAGIC atc1_des_c, -# MAGIC atc2_cod, -# MAGIC atc2_des, -# MAGIC atc2_des_c, -# MAGIC atc3_cod, -# MAGIC atc3_des, -# MAGIC atc3_des_c, -# MAGIC atc4_cod, -# MAGIC atc4_des, -# MAGIC atc4_des_c, -# MAGIC bio_desc, -# MAGIC cmps_cod, -# MAGIC cmps_des, -# MAGIC cmps_des_c, -# MAGIC corp_cod, -# MAGIC corp_des, -# MAGIC corp_des_c, -# MAGIC edl_desc, -# MAGIC eth_otc_desc, -# MAGIC gene_orig_desc, -# MAGIC gqce_desc, -# MAGIC manu_cod, -# MAGIC manu_des, -# MAGIC manu_des_c, -# MAGIC mnfl_cod, -# MAGIC mnfl_des, -# MAGIC nrdl_desc, -# MAGIC pack_des, -# MAGIC stgh_des, -# MAGIC pack_lch, -# MAGIC paed_desc, -# MAGIC prod_des, -# MAGIC prod_des_c, -# MAGIC tcm_desc, -# MAGIC vbp_desc, -# MAGIC unit, -# MAGIC counting_unit, -# MAGIC dosage_unit, -# MAGIC NRDL_ENTRY_DATE, -# MAGIC market, -# MAGIC bu, -# MAGIC extend_market_ratio, -# MAGIC is_az, -# MAGIC from_utc_timestamp(current_timestamp(),'UTC+8') etl_insert_dt -# MAGIC ,from_utc_timestamp(current_timestamp(),'UTC+8') etl_update_dt -# MAGIC from tmp.tmp_zk_retail_pack_property -# MAGIC union all -# MAGIC ------事实表中倒减出来的pack 需要补充到配置表中 -# MAGIC select -# MAGIC '' iqvia_lineno -# MAGIC ,iqvia_pack_code -# MAGIC ,'' prod_cod -# MAGIC ,'' iqvia_notes -# MAGIC ,'' new_pack_flag -# MAGIC ,'' Is_exists_chpa -# MAGIC ,iqvia_pack_code product_id -# MAGIC ,'' prescription_nature -# MAGIC ,'' medicine_type -# MAGIC ,'' zk_medicine_tier1 -# MAGIC ,'' zk_medicine_tier2 -# MAGIC ,'' zk_medicine_tier3 -# MAGIC ,'' zk_medicine_tier4 -# MAGIC ,'' common_name -# MAGIC ,'' dosage_form -# MAGIC ,'' user_type -# MAGIC ,'' category_name -# MAGIC ,'' product_name -# MAGIC ,'' brand_name -# MAGIC ,'' zk_manu_des -# MAGIC ,'' zk_corp_des -# MAGIC ,'' zk_pack_des -# MAGIC ,'' counting_unit_a -# MAGIC ,'' dosage_unit_a -# MAGIC ,'' unit_a -# MAGIC ,'' app1_cod -# MAGIC ,'' app1_des -# MAGIC ,'' app1_des_c -# MAGIC ,'' app2_cod -# MAGIC ,'' app2_des -# MAGIC ,'' app2_des_c -# MAGIC ,'' app3_cod -# MAGIC ,'' app3_des -# MAGIC ,'' app3_des_c -# MAGIC ,'' atc1_cod -# MAGIC ,'' atc1_des -# MAGIC ,'' atc1_des_c -# MAGIC ,'' atc2_cod -# MAGIC ,'' atc2_des -# MAGIC ,'' atc2_des_c -# MAGIC ,'' atc3_cod -# MAGIC -# MAGIC ,'' atc3_des -# MAGIC ,'' atc3_des_c -# MAGIC ,'' atc4_cod -# MAGIC ,'' atc4_des -# MAGIC ,'' atc4_des_c -# MAGIC ,'' bio_desc -# MAGIC ,'' cmps_cod -# MAGIC ,'' cmps_des -# MAGIC ,'' cmps_des_c -# MAGIC ,corp_cod corp_cod -# MAGIC ,'' corp_des -# MAGIC ,'' corp_des_c -# MAGIC ,'' edl_desc -# MAGIC ,'' eth_otc_desc -# MAGIC ,'' gene_orig_desc -# MAGIC ,'' gqce_desc -# MAGIC ,'' manu_cod -# MAGIC ,'' manu_des -# MAGIC ,'' manu_des_c -# MAGIC ,'' mnfl_cod -# MAGIC ,'' mnfl_des -# MAGIC ,'' nrdl_desc -# MAGIC ,'' pack_des -# MAGIC ,'' stgh_des -# MAGIC ,'' pack_lch -# MAGIC ,'' paed_desc -# MAGIC ,'Others' prod_des -# MAGIC ,'Others' prod_des_c -# MAGIC ,'' tcm_desc -# MAGIC ,'' vbp_desc -# MAGIC ,'' unit -# MAGIC ,'' counting_unit -# MAGIC ,'' dosage_unit -# MAGIC ,'' NRDL_ENTRY_DATE -# MAGIC ,'Non AZ Retail Related Market' market -# MAGIC ,'' bu -# MAGIC ,1 extend_market_ratio -# MAGIC ,CASE WHEN iqvia_pack_code LIKE '%AZ%' THEN 'Y' ELSE 'N' END is_az -# MAGIC ,from_utc_timestamp(current_timestamp(),'UTC+8') etl_insert_dt -# MAGIC ,from_utc_timestamp(current_timestamp(),'UTC+8') etl_update_dt -# MAGIC from ( -# MAGIC select distinct iqvia_pack_code,corp_cod -# MAGIC from DM.dm_zk_retail_sales -# MAGIC where iqvia_pack_code not in (select distinct iqvia_pack_code from tmp.tmp_zk_retail_pack_property) -# MAGIC ) - -# COMMAND ---------- - -# MAGIC %md -# MAGIC ## STEP-4: map to dm.dm_zk_retail_pack_property - -# COMMAND ---------- - -# MAGIC %md -# MAGIC ### 4.1 对公司归属从新划分 - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-4: map to dm.dm_zk_retail_pack_property -# MAGIC -- 4.1 对公司归属从新划分 -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC insert overwrite table tmp.tmp_dm_zk_retail_pack_property -# MAGIC ( -# MAGIC iqvia_lineno, -# MAGIC iqvia_pack_code, -# MAGIC PROD_COD, -# MAGIC iqvia_notes, -# MAGIC new_pack_flag, -# MAGIC is_exists_chpa, -# MAGIC product_id, -# MAGIC prescription_nature, -# MAGIC medicine_type, -# MAGIC zk_medicine_tier1, -# MAGIC zk_medicine_tier2, -# MAGIC zk_medicine_tier3, -# MAGIC zk_medicine_tier4, -# MAGIC common_name, -# MAGIC dosage_form, -# MAGIC user_type, -# MAGIC category_name, -# MAGIC product_name, -# MAGIC brand_name, -# MAGIC zk_manu_des, -# MAGIC zk_corp_des, -# MAGIC zk_pack_des, -# MAGIC counting_unit_a, -# MAGIC dosage_unit_a, -# MAGIC unit_a, -# MAGIC app1_cod, -# MAGIC app1_des, -# MAGIC app1_des_c, -# MAGIC app2_cod, -# MAGIC app2_des, -# MAGIC app2_des_c, -# MAGIC app3_cod, -# MAGIC app3_des, -# MAGIC app3_des_c, -# MAGIC atc1_cod, -# MAGIC atc1_des, -# MAGIC atc1_des_c, -# MAGIC atc2_cod, -# MAGIC atc2_des, -# MAGIC atc2_des_c, -# MAGIC atc3_cod, -# MAGIC atc3_des, -# MAGIC atc3_des_c, -# MAGIC atc4_cod, -# MAGIC atc4_des, -# MAGIC atc4_des_c, -# MAGIC bio_desc, -# MAGIC cmps_cod, -# MAGIC cmps_des, -# MAGIC cmps_des_c, -# MAGIC corp_cod, -# MAGIC corp_des, -# MAGIC corp_des_c, -# MAGIC edl_desc, -# MAGIC eth_otc_desc, -# MAGIC gene_orig_desc, -# MAGIC gqce_desc, -# MAGIC manu_cod, -# MAGIC manu_des, -# MAGIC manu_des_c, -# MAGIC mnfl_cod, -# MAGIC mnfl_des, -# MAGIC nrdl_desc, -# MAGIC pack_des, -# MAGIC stgh_des, -# MAGIC pack_lch, -# MAGIC paed_desc, -# MAGIC prod_des, -# MAGIC prod_des_c, -# MAGIC tcm_desc, -# MAGIC vbp_desc, -# MAGIC unit, -# MAGIC counting_unit, -# MAGIC dosage_unit, -# MAGIC NRDL_ENTRY_DATE, -# MAGIC MARKET, -# MAGIC bu, -# MAGIC extend_market_ratio, -# MAGIC is_az -# MAGIC ) -# MAGIC select distinct -# MAGIC a.iqvia_lineno -# MAGIC ,a.iqvia_pack_code -# MAGIC ,a.PROD_COD -# MAGIC ,a.iqvia_notes -# MAGIC ,a.new_pack_flag -# MAGIC ,a.is_exists_chpa -# MAGIC ,a.product_id -# MAGIC ,a.prescription_nature -# MAGIC ,a.medicine_type -# MAGIC ,a.zk_medicine_tier1 -# MAGIC ,a.zk_medicine_tier2 -# MAGIC ,a.zk_medicine_tier3 -# MAGIC ,a.zk_medicine_tier4 -# MAGIC ,a.common_name -# MAGIC ,a.dosage_form -# MAGIC ,a.user_type -# MAGIC ,a.category_name -# MAGIC ,a.product_name -# MAGIC ,a.brand_name -# MAGIC ,a.zk_manu_des -# MAGIC ,a.zk_corp_des -# MAGIC ,a.zk_pack_des -# MAGIC ,a.counting_unit_a -# MAGIC ,a.dosage_unit_a -# MAGIC ,a.unit_a -# MAGIC ,a.app1_cod -# MAGIC ,a.app1_des -# MAGIC ,a.app1_des_c -# MAGIC ,a.app2_cod -# MAGIC ,a.app2_des -# MAGIC ,a.app2_des_c -# MAGIC ,a.app3_cod -# MAGIC ,a.app3_des -# MAGIC ,a.app3_des_c -# MAGIC ,a.atc1_cod -# MAGIC ,a.atc1_des -# MAGIC ,a.atc1_des_c -# MAGIC ,a.atc2_cod -# MAGIC ,a.atc2_des -# MAGIC ,a.atc2_des_c -# MAGIC ,a.atc3_cod -# MAGIC ,a.atc3_des -# MAGIC ,a.atc3_des_c -# MAGIC ,a.atc4_cod -# MAGIC ,a.atc4_des -# MAGIC ,a.atc4_des_c -# MAGIC ,a.bio_desc -# MAGIC ,a.cmps_cod -# MAGIC ,a.cmps_des -# MAGIC ,a.cmps_des_c -# MAGIC ,COALESCE(c.corp_cod,b.corp_cod,a.corp_cod) corp_cod -# MAGIC ,COALESCE(c.corp_des,b.corp_des,a.corp_des) corp_des -# MAGIC ,COALESCE(d.corp_des_c,a.corp_des_c ) corp_des_c -# MAGIC ,a.edl_desc -# MAGIC ,a.eth_otc_desc -# MAGIC ,a.gene_orig_desc -# MAGIC ,a.gqce_desc -# MAGIC ,COALESCE(c.manu_cod,b.manu_cod,a.manu_cod) manu_cod -# MAGIC ,COALESCE(c.manu_des,b.manu_des,a.manu_des) manu_des -# MAGIC ,COALESCE(e.manu_des_c,a.manu_des_c) manu_des_c -# MAGIC ,a.mnfl_cod -# MAGIC ,a.mnfl_des -# MAGIC ,a.nrdl_desc -# MAGIC ,a.pack_des -# MAGIC ,a.stgh_des -# MAGIC ,a.pack_lch -# MAGIC ,a.paed_desc -# MAGIC ,a.prod_des -# MAGIC ,a.prod_des_c -# MAGIC ,a.tcm_desc -# MAGIC ,a.vbp_desc -# MAGIC ,a.unit -# MAGIC ,a.counting_unit -# MAGIC ,a.dosage_unit -# MAGIC ,a.NRDL_ENTRY_DATE -# MAGIC ,A.MARKET -# MAGIC ,a.bu -# MAGIC ,a.extend_market_ratio -# MAGIC ,a.is_az -# MAGIC from dws.dws_zk_retail_pack_property a -# MAGIC left join ( -# MAGIC select -# MAGIC ---------------------------------------------- -# MAGIC -- format prod_cod -# MAGIC case when length(prod_cod) < 9 then right(concat('000000000',prod_cod),9) else prod_cod end as prod_cod, -# MAGIC ---------------------------------------------- -# MAGIC corp_cod,corp_des, -# MAGIC right(concat('000000',manu_cod ),6) manu_cod, -# MAGIC manu_des -# MAGIC from dwd.dwd_gnd_tbl_corp_change -# MAGIC where pack_cod is null -# MAGIC ) b on a.prod_cod = b.prod_cod -# MAGIC left join ( -# MAGIC select -# MAGIC ---------------------------------------------- -# MAGIC -- format pack_cod -# MAGIC case when length(trim(pack_cod)) < 12 and trim(pack_cod) REGEXP '^[0-9]' then right(concat('000000000000',trim(pack_cod)),12) else trim(pack_cod) end as pack_cod, -# MAGIC ---------------------------------------------- -# MAGIC corp_cod, -# MAGIC corp_des, -# MAGIC right(concat('000000',manu_cod ),6) manu_cod, -# MAGIC manu_des -# MAGIC from dwd.dwd_gnd_tbl_corp_change -# MAGIC where pack_cod is not null -# MAGIC ) c on a.iqvia_pack_code = c.pack_cod -# MAGIC left join ( -# MAGIC select distinct corp_cod,corp_des_c from dwd.dwd_gnd_ext_retail_pack_property -# MAGIC ) d on coalesce(C.corp_cod,B.corp_cod ) = d.corp_cod -# MAGIC Left join ( -# MAGIC select -# MAGIC distinct -# MAGIC right(concat('000000',manu_cod ),6) manu_cod, -# MAGIC manu_des, -# MAGIC manu_des_c -# MAGIC from dwd.dwd_gnd_ext_retail_pack_property -# MAGIC ) e On coalesce(C.manu_cod,B.manu_cod ) = e.manu_cod - -# COMMAND ---------- - -# MAGIC %md -# MAGIC ### 4.2 获取pack market的对应关系 - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-4: map to dm.dm_zk_retail_pack_property -# MAGIC -- 4.2 获取pack market的对应关系 -# MAGIC -- 4.2.1 从底表获取market 与ta 对应关系 -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC insert overwrite table dws.dws_ext_retail_td_ta -# MAGIC select -# MAGIC market, -# MAGIC ta, -# MAGIC from_utc_timestamp(current_timestamp(),'UTC+8') etl_insert_dt, -# MAGIC from_utc_timestamp(current_timestamp(),'UTC+8') etl_update_dt -# MAGIC from dwd.dwd_gnd_ext_retail_dim_ta; - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-4: map to dm.dm_zk_retail_pack_property -# MAGIC -- 4.2 获取pack market的对应关系 -# MAGIC -- 4.2.2 获取pack market的对应关系, 映射到dm -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC INSERT OVERWRITE table dm.dm_zk_retail_pack_property -# MAGIC SELECT -# MAGIC MARKET_PACK_KEY -# MAGIC ,iqvia_pack_code iqvia_pack_code -# MAGIC ,MAX(pack_des) pack_des -# MAGIC ,MAX(stgh_des) stgh_des -# MAGIC ,MAX(pack_lch) pack_lch -# MAGIC ,MAX(Family_Code) Family_Code -# MAGIC ,MAX(Family_Name) Family_Name -# MAGIC ,MAX(iqvia_prod_code) iqvia_prod_code -# MAGIC ,MAX(prod_des) prod_des -# MAGIC ,MAX(prod_des_c) prod_des_c -# MAGIC ,MAX(cmps_cod) cmps_cod -# MAGIC ,MAX(CMPS_DES) CMPS_DES -# MAGIC ,MAX(cmps_des_c) cmps_des_c -# MAGIC ,MAX(atc1_cod) atc1_cod -# MAGIC ,MAX(atc2_cod) atc2_cod -# MAGIC ,MAX(atc3_cod) atc3_cod -# MAGIC ,MAX(atc4_cod) atc4_cod -# MAGIC ,MAX(APP1_COD) APP1_COD -# MAGIC ,MAX(APP2_COD) APP2_COD -# MAGIC ,MAX(APP3_COD) APP3_COD -# MAGIC ,MAX(BIO_DESC) BIO_DESC -# MAGIC ,MAX(gene_orig_desc) gene_orig_desc -# MAGIC ,MAX(ETH_OTC_DESC) ETH_OTC_DESC -# MAGIC ,MAX(nrdl_desc) nrdl_desc -# MAGIC ,MAX(NRDL_ENTRY_DATE) NRDL_ENTRY_DATE -# MAGIC ,MAX(edl_desc) edl_desc -# MAGIC ,MAX(TCM_DESC) TCM_DESC -# MAGIC ,MAX(PAED_DESC) PAED_DESC -# MAGIC ,MAX(GQCE_DESC) GQCE_DESC -# MAGIC ,MAX(VBP_DESC) VBP_DESC -# MAGIC ,MAX(MANU_COD) MANU_COD -# MAGIC ,MAX(MANU_DES) MANU_DES -# MAGIC ,MAX(MANU_DES_C) MANU_DES_C -# MAGIC ,MAX(MNFL_COD) MNFL_COD -# MAGIC ,MAX(MNFL_DES) MNFL_DES -# MAGIC ,MAX(corp_cod) corp_cod -# MAGIC ,MAX(corp_des) corp_des -# MAGIC ,MAX(CORP_DES_C) CORP_DES_C -# MAGIC ,MAX(BrandType) BrandType -# MAGIC ,MAX(market) market -# MAGIC ,MAX(KEY_COMPETITOR) KEY_COMPETITOR -# MAGIC ,MAX(is_az) is_az -# MAGIC ,MAX(AZ_MAIN) AZ_MAIN -# MAGIC ,MAX(AZ_Related) AZ_Related -# MAGIC ,MAX(atc1_des) atc1_des -# MAGIC ,MAX(atc1_des_c) atc1_des_c -# MAGIC ,MAX(atc2_des) atc2_des -# MAGIC ,MAX(atc2_des_c) atc2_des_c -# MAGIC ,MAX(atc3_des) atc3_des -# MAGIC ,MAX(atc3_des_c) atc3_des_c -# MAGIC ,MAX(atc4_des) atc4_des -# MAGIC ,MAX(atc4_des_c) atc4_des_c -# MAGIC ,MAX(app1_des) app1_des -# MAGIC ,MAX(app1_des_c) app1_des_c -# MAGIC ,MAX(app2_des) app2_des -# MAGIC ,MAX(app2_des_c) app2_des_c -# MAGIC ,MAX(app3_des) app3_des -# MAGIC ,MAX(app3_des_c) app3_des_c -# MAGIC ,MAX(class) class -# MAGIC ,MAX(TA) TA -# MAGIC FROM ( -# MAGIC select -# MAGIC distinct -# MAGIC CASE when a.iqvia_pack_code IN ('CVRM_AZ_OTHERS','CVRM_OTHERS') THEN 'CVRM_OTHER Market' -# MAGIC WHEN a.iqvia_pack_code IN ('CV_AZ_OTHERS','CV_OTHERS') THEN 'CV_OTHER Market' -# MAGIC WHEN A.iqvia_pack_code IN ('OTHERS_AZ_TA','OTHERS_TA') THEN 'OTHERS Market' -# MAGIC ELSE a.market -# MAGIC END ||'_'||a.iqvia_pack_code MARKET_PACK_KEY -# MAGIC ,a.iqvia_pack_code -# MAGIC ,c.pack_des -# MAGIC ,c.stgh_des -# MAGIC ,c.pack_lch -# MAGIC ,'' Family_Code -# MAGIC ,'' Family_Name -# MAGIC ,c.iqvia_prod_code -# MAGIC ,case when c.iqvia_pack_code like '%O%' THEN 'Others' else c.prod_des end prod_des -# MAGIC ,case when c.iqvia_pack_code like '%O%' THEN 'Others' else c.prod_des_c end prod_des_c -# MAGIC ,c.cmps_cod -# MAGIC ,c.CMPS_DES -# MAGIC ,c.cmps_des_c -# MAGIC ,c.atc1_cod -# MAGIC ,c.atc2_cod -# MAGIC ,c.atc3_cod -# MAGIC ,c.atc4_cod -# MAGIC ,c.APP1_COD -# MAGIC ,c.APP2_COD -# MAGIC ,c.APP3_COD -# MAGIC ,c.BIO_DESC -# MAGIC ,c.gene_orig_desc -# MAGIC ,c.ETH_OTC_DESC -# MAGIC ,c.nrdl_desc -# MAGIC ,nvl(MOLE.NRDL_Entry_Date,'') AS NRDL_ENTRY_DATE -# MAGIC ,c.edl_desc -# MAGIC ,c.TCM_DESC -# MAGIC ,c.PAED_DESC -# MAGIC ,c.GQCE_DESC -# MAGIC ,c.VBP_DESC -# MAGIC ,a.MANU_COD -# MAGIC ,a.MANU_DES -# MAGIC ,a.MANU_DES_C -# MAGIC ,c.MNFL_COD -# MAGIC ,c.MNFL_DES -# MAGIC ,CASE WHEN A.iqvia_pack_code LIKE '%AZ%' THEN 'A5Z' else a.CORP_COD END as corp_cod -# MAGIC ,CASE WHEN A.iqvia_pack_code LIKE '%AZ%' THEN 'ASTRAZENECA' else case when a.CORP_DES like '% GROUP%' THEN replace(a.CORP_DES ,' GROUP','' ) ELSE a.CORP_DES END END as corp_des -# MAGIC ,CASE WHEN A.iqvia_pack_code LIKE '%AZ%' THEN '阿斯利康制药集团' else a.CORP_DES_C END CORP_DES_C -# MAGIC ,'' BrandType -# MAGIC ,CASE when a.iqvia_pack_code IN ('CVRM_AZ_OTHERS','CVRM_OTHERS') THEN 'CVRM_OTHER Market' -# MAGIC WHEN a.iqvia_pack_code IN ('CV_AZ_OTHERS','CV_OTHERS') THEN 'CV_OTHER Market' -# MAGIC WHEN A.iqvia_pack_code IN ('OTHERS_AZ_TA','OTHERS_TA') THEN 'OTHERS Market' -# MAGIC ELSE a.market -# MAGIC END market -# MAGIC ,t5.KEY_COMPETITOR -# MAGIC ,IF(a.corp_des_c in('阿斯利康制药集团') or A.iqvia_pack_code LIKE '%AZ%' ,'Y','N') is_az -# MAGIC ,'' AZ_MAIN -# MAGIC ,'' AZ_Related -# MAGIC ,c.atc1_des -# MAGIC ,c.atc1_des_c -# MAGIC ,c.atc2_des -# MAGIC ,c.atc2_des_c -# MAGIC ,c.atc3_des -# MAGIC ,c.atc3_des_c -# MAGIC ,c.atc4_des -# MAGIC ,c.atc4_des_c -# MAGIC ,c.app1_des -# MAGIC ,c.app1_des_c -# MAGIC ,c.app2_des -# MAGIC ,c.app2_des_c -# MAGIC ,c.app3_des -# MAGIC ,c.app3_des_c -# MAGIC ,nvl(t3.class,'Others') class -# MAGIC ,case when a.market ='Antacid anti GI swelling agent+PPI Oral' then 'GI' -# MAGIC when a.MARKET ='RD Market' then 'RD' -# MAGIC ELSE -# MAGIC CASE when a.iqvia_pack_code IN ('CVRM_AZ_OTHERS','CVRM_OTHERS') THEN 'CVRM' -# MAGIC WHEN a.iqvia_pack_code IN ('CV_AZ_OTHERS','CV_OTHERS') THEN 'CV' -# MAGIC ELSE t2.ta END -# MAGIC END TA -# MAGIC from tmp.tmp_dm_zk_retail_pack_property a -# MAGIC left join dwd.dwd_gnd_ext_retail_pack_property c on a.product_id = c.product_id -# MAGIC LEFT JOIN dwd.dwd_ims_td_pack_additional_attribute MOLE -# MAGIC -------------------------------------------------------------------- -# MAGIC -- format pack_code from dwd_ims_td_pack_additional_attribute -# MAGIC ON a.iqvia_pack_code = -# MAGIC case when length(trim(MOLE.Pack_Code)) < 12 and trim(MOLE.Pack_Code) REGEXP '^[0-9]' -# MAGIC then right(concat('000000000000',trim(MOLE.Pack_Code)),12) -# MAGIC else trim(MOLE.Pack_Code) -# MAGIC end -# MAGIC -------------------------------------------------------------------- -# MAGIC left join dws.dws_ext_retail_td_ta t2 on a.market = t2.market -# MAGIC left join dwd.dwd_gnd_tblclass t3 on a.MARKET = case when t3.market is null then a.market else t3.market end -# MAGIC ----------------------------------------------------------------------------- -# MAGIC -- format pack_code from dwd_gnd_tblclass -# MAGIC and nvl(a.iqvia_pack_code,'') = -# MAGIC case when t3.pack_code is null -# MAGIC then nvl(a.iqvia_pack_code,'') -# MAGIC else -# MAGIC case when length(trim(t3.pack_code)) < 12 and trim(t3.pack_code) REGEXP '^[0-9]' -# MAGIC then right(concat('000000000000',trim(t3.pack_code)),12) -# MAGIC else trim(t3.pack_code) -# MAGIC end -# MAGIC end -# MAGIC ----------------------------------------------------------------------------- -# MAGIC -- format product_code from dwd_gnd_tblclass -# MAGIC and nvl(a.PROD_COD,'') = -# MAGIC case when t3.product_code is null -# MAGIC then nvl(a.PROD_COD,'') -# MAGIC else case when length(t3.product_code) < 9 then right(concat('000000000',t3.product_code),9) else t3.product_code end -# MAGIC end -# MAGIC ----------------------------------------------------------------------------- -# MAGIC and nvl(a.cmps_cod,'') = case when t3.molecule_code is null then nvl(a.cmps_cod ,'') else right(concat('000000', t3.molecule_code ),6 ) end -# MAGIC and nvl(a.corp_cod,'') = case when t3.Corporation_code is null then nvl(a.corp_cod ,'') else t3.Corporation_code end -# MAGIC and nvl(a.manu_cod,'')=case when t3.Manufacturer_Code is null then nvl(a.manu_cod,'') else t3.Manufacturer_Code end -# MAGIC and nvl(c.atc1_cod,'') = case when t3.ATC1_Code is null then nvl(c.atc1_cod ,'') else t3.ATC1_Code end -# MAGIC and nvl(c.ATC2_COD,'') = case when t3.ATC2_Code is null then nvl(c.ATC2_COD ,'') else t3.ATC2_Code end -# MAGIC and nvl(c.ATC3_COD,'') = case when t3.ATC3_Code is null then nvl(c.ATC3_COD ,'') else t3.ATC3_Code end -# MAGIC and nvl(c.ATC4_COD,'') = case when t3.ATC4_Code is null then nvl(c.ATC4_COD ,'') else t3.ATC4_Code end -# MAGIC and nvl(c.app1_cod,'') = case when t3.NFC1_Code is null then nvl(c.app1_cod ,'') else t3.NFC1_Code end -# MAGIC and nvl(c.APP2_COD,'') = case when t3.NFC2_Code is null then nvl(c.APP2_COD ,'') else t3.NFC2_Code end -# MAGIC and nvl(c.APP3_COD,'') = case when t3.NFC3_Code is null then nvl(c.APP3_COD ,'') else t3.NFC3_Code end -# MAGIC and nvl(c.stgh_des,'') = case when t3.Strength is null then nvl(c.stgh_des ,'') else t3.Strength end -# MAGIC left join (select distinct MARKET,PACK_CODE as pack_cod,KEY_COMPETITOR from DM.DM_TD_EXT_CHPA_MARKET_PACK_MAPPING) t5 -# MAGIC on a.market = t5.MARKET -# MAGIC and a.iqvia_pack_code = t5.PACK_COD -# MAGIC ) -# MAGIC group by MARKET_PACK_KEY ,iqvia_pack_code - -# COMMAND ---------- - -# MAGIC %md -# MAGIC ## STEP-5: map to dm.dm_zk_retail_market_property - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-5: map to dm.dm_zk_retail_market_property -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC insert overwrite table dm.dm_zk_retail_market_property -# MAGIC select -# MAGIC distinct -# MAGIC iqvia_pack_code, -# MAGIC market, -# MAGIC ta -# MAGIC from dm.dm_zk_retail_pack_property - -# COMMAND ---------- - -# MAGIC %md -# MAGIC ## STEP-6: map to dm.dm_zk_retail_dtp_pack_property - -# COMMAND ---------- - -# DBTITLE 1,overwrite dws.dws_zk_retail_dtp_market -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-6: map to dm.dm_zk_retail_dtp_pack_property -# MAGIC -- 6.1 dtp 部分生成dws -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC insert overwrite table dws.dws_zk_retail_dtp_market -# MAGIC ( -# MAGIC region_type, -# MAGIC higher_level_region, -# MAGIC market, -# MAGIC iqvia_pack_code, -# MAGIC iqvia_prod_code, -# MAGIC iqvia_notes, -# MAGIC new_pack_flag, -# MAGIC is_exists_chpa, -# MAGIC prescription_nature, -# MAGIC common_name, -# MAGIC dosage_form, -# MAGIC category_name, -# MAGIC product_name, -# MAGIC brand_name, -# MAGIC zk_corp_des, -# MAGIC zk_pack_des, -# MAGIC counting_unit_a, -# MAGIC app1_cod, -# MAGIC app1_des, -# MAGIC app1_des_c, -# MAGIC app2_cod, -# MAGIC app2_des, -# MAGIC app2_des_c, -# MAGIC app3_cod, -# MAGIC app3_des, -# MAGIC app3_des_c, -# MAGIC atc1_cod, -# MAGIC atc1_des, -# MAGIC atc1_des_c, -# MAGIC atc2_cod, -# MAGIC atc2_des, -# MAGIC atc2_des_c, -# MAGIC atc3_cod, -# MAGIC atc3_des, -# MAGIC atc3_des_c, -# MAGIC atc4_cod, -# MAGIC atc4_des, -# MAGIC atc4_des_c, -# MAGIC bio_desc, -# MAGIC cmps_cod, -# MAGIC cmps_des, -# MAGIC cmps_des_c, -# MAGIC corp_cod, -# MAGIC corp_des, -# MAGIC corp_des_c, -# MAGIC edl_desc, -# MAGIC eth_otc_desc, -# MAGIC gene_orig_desc, -# MAGIC gqce_desc, -# MAGIC manu_cod, -# MAGIC manu_des, -# MAGIC manu_des_c, -# MAGIC mnfl_cod, -# MAGIC mnfl_des, -# MAGIC nrdl_desc, -# MAGIC pack_des, -# MAGIC stgh_des, -# MAGIC pack_lch, -# MAGIC paed_desc, -# MAGIC prod_des, -# MAGIC prod_des_c, -# MAGIC tcm_desc, -# MAGIC vbp_desc, -# MAGIC unit, -# MAGIC counting_unit, -# MAGIC dosage_unit, -# MAGIC NRDL_ENTRY_DATE, -# MAGIC bu, -# MAGIC Market_Ratio -# MAGIC ) -# MAGIC select -# MAGIC distinct -# MAGIC NULL AS region_type, -# MAGIC NULL AS higher_level_region, -# MAGIC market, -# MAGIC iqvia_pack_code, -# MAGIC iqvia_prod_code, -# MAGIC iqvia_notes, -# MAGIC new_pack_flag, -# MAGIC is_exists_chpa, -# MAGIC NULL AS prescription_nature, -# MAGIC NULL AS common_name, -# MAGIC NULL AS dosage_form, -# MAGIC NULL AS category_name, -# MAGIC NULL AS product_name, -# MAGIC NULL AS brand_name, -# MAGIC NULL AS zk_corp_des, -# MAGIC NULL AS zk_pack_des, -# MAGIC NULL AS counting_unit_a, -# MAGIC app1_cod, -# MAGIC app1_des, -# MAGIC app1_des_c, -# MAGIC app2_cod, -# MAGIC app2_des, -# MAGIC app2_des_c, -# MAGIC app3_cod, -# MAGIC app3_des, -# MAGIC app3_des_c, -# MAGIC atc1_cod, -# MAGIC atc1_des, -# MAGIC atc1_des_c, -# MAGIC atc2_cod, -# MAGIC atc2_des, -# MAGIC atc2_des_c, -# MAGIC atc3_cod, -# MAGIC atc3_des, -# MAGIC atc3_des_c, -# MAGIC atc4_cod, -# MAGIC atc4_des, -# MAGIC atc4_des_c, -# MAGIC bio_desc, -# MAGIC cmps_cod, -# MAGIC cmps_des, -# MAGIC cmps_des_c, -# MAGIC corp_cod, -# MAGIC corp_des, -# MAGIC corp_des_c, -# MAGIC edl_desc, -# MAGIC eth_otc_desc, -# MAGIC gene_orig_desc, -# MAGIC gqce_desc, -# MAGIC manu_cod, -# MAGIC manu_des, -# MAGIC manu_des_c, -# MAGIC mnfl_cod, -# MAGIC mnfl_des, -# MAGIC nrdl_desc, -# MAGIC pack_des, -# MAGIC stgh_des, -# MAGIC pack_lch, -# MAGIC paed_desc, -# MAGIC prod_des, -# MAGIC prod_des_c, -# MAGIC tcm_desc, -# MAGIC vbp_desc, -# MAGIC unit, -# MAGIC counting_unit, -# MAGIC dosage_unit, -# MAGIC NRDL_ENTRY_DATE, -# MAGIC bu, -# MAGIC Market_Ratio -# MAGIC from tmp.tmp_zk_retail_dtp_market_corp t1 -# MAGIC union -# MAGIC select -# MAGIC distinct -# MAGIC '' region_type -# MAGIC ,'' higher_level_region -# MAGIC ,'DTP_OTHER Market' market -# MAGIC ,iqvia_pack_code -# MAGIC ,'' iqvia_prod_code -# MAGIC ,'' iqvia_notes -# MAGIC ,'' new_pack_flag -# MAGIC ,'' is_exists_chpa -# MAGIC ,'' prescription_nature -# MAGIC ,'' common_name -# MAGIC ,'' dosage_form -# MAGIC ,'' category_name -# MAGIC ,'' product_name -# MAGIC ,'' brand_name -# MAGIC ,'' zk_corp_des -# MAGIC ,'' zk_pack_des -# MAGIC ,'' counting_unit_a -# MAGIC ,'' app1_cod -# MAGIC ,'' app1_des -# MAGIC ,'' app1_des_c -# MAGIC ,'' app2_cod -# MAGIC ,'' app2_des -# MAGIC ,'' app2_des_c -# MAGIC ,'' app3_cod -# MAGIC ,'' app3_des -# MAGIC ,'' app3_des_c -# MAGIC ,'' atc1_cod -# MAGIC ,'' atc1_des -# MAGIC ,'' atc1_des_c -# MAGIC ,'' atc2_cod -# MAGIC ,'' atc2_des -# MAGIC ,'' atc2_des_c -# MAGIC ,'' atc3_cod -# MAGIC ,'' atc3_des -# MAGIC ,'' atc3_des_c -# MAGIC ,'' atc4_cod -# MAGIC ,'' atc4_des -# MAGIC ,'' atc4_des_c -# MAGIC ,'' bio_desc -# MAGIC ,'' cmps_cod -# MAGIC ,'' cmps_des -# MAGIC ,'' cmps_des_c -# MAGIC ,CASE WHEN t1.iqvia_pack_code LIKE '%AZ%' THEN 'A5Z' ELSE '' END corp_cod -# MAGIC ,CASE WHEN t1.iqvia_pack_code LIKE '%AZ%' THEN 'ASTRAZENECA' ELSE '' END corp_des -# MAGIC ,CASE WHEN t1.iqvia_pack_code LIKE '%AZ%' THEN '阿斯利康制药集团' ELSE '' END corp_des_c -# MAGIC ,'' edl_desc -# MAGIC ,'' eth_otc_desc -# MAGIC ,'' gene_orig_desc -# MAGIC ,'' gqce_desc -# MAGIC ,'' manu_cod -# MAGIC ,'' manu_des -# MAGIC ,'' manu_des_c -# MAGIC ,'' mnfl_cod -# MAGIC ,'' mnfl_des -# MAGIC ,'' nrdl_desc -# MAGIC ,'' pack_des -# MAGIC ,'' stgh_des -# MAGIC ,'' pack_lch -# MAGIC ,'' paed_desc -# MAGIC ,'' prod_des -# MAGIC ,'' prod_des_c -# MAGIC ,'' tcm_desc -# MAGIC ,'' vbp_desc -# MAGIC ,'' unit -# MAGIC ,'' counting_unit -# MAGIC ,'' dosage_unit -# MAGIC ,null NRDL_ENTRY_DATE -# MAGIC ,null -# MAGIC ,'1' Market_Ratio -# MAGIC from tmp.tmp_retail_dtp_final_sales t1 -# MAGIC where iqvia_pack_code LIKE '%OTHERS' - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-6: map to dm.dm_zk_retail_dtp_pack_property -# MAGIC -- 6.2 dtp 部分生成 dm -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC with tmp_tblclass as ( -# MAGIC select -# MAGIC ------------------------------------------------------------------- -# MAGIC -- format pack_code & product_code -# MAGIC case when length(trim(pack_code)) < 12 and trim(pack_code) REGEXP '^[0-9]' -# MAGIC then right(concat('000000000000',trim(pack_code)),12) -# MAGIC else trim(pack_code) -# MAGIC end as new_pack_code, -# MAGIC case when length(product_code) < 9 then right(concat('000000000',product_code),9) else product_code end as new_product_code, -# MAGIC ------------------------------------------------------------------- -# MAGIC * -# MAGIC from dwd.dwd_gnd_tblclass -# MAGIC ) -# MAGIC -# MAGIC ------------获取对应class 及其他维度------- -# MAGIC insert overwrite table dm.dm_zk_retail_dtp_pack_property -# MAGIC select distinct -# MAGIC A.market ||'_'|| A.iqvia_pack_code MARKET_PACK_KEY -# MAGIC ,A.iqvia_pack_code -# MAGIC ,A.pack_des -# MAGIC ,A.stgh_des -# MAGIC ,A.pack_lch -# MAGIC ,'' Family_cod -# MAGIC ,'' Family_Name -# MAGIC ,A.iqvia_prod_code PROD_COD -# MAGIC ,A.prod_des -# MAGIC ,A.prod_des_c -# MAGIC ,A.cmps_cod -# MAGIC ,A.cmps_des -# MAGIC ,A.cmps_des_c -# MAGIC ,A.atc1_cod -# MAGIC ,A.atc2_cod -# MAGIC ,A.atc3_cod -# MAGIC ,A.atc4_cod -# MAGIC ,A.app1_cod -# MAGIC ,A.app2_cod -# MAGIC ,A.app3_cod -# MAGIC ,A.BIO_DESC -# MAGIC ,A.gene_orig_desc -# MAGIC ,A.eth_otc_desc -# MAGIC ,A.nrdl_desc -# MAGIC ,A.NRDL_ENTRY_DATE -# MAGIC ,A.edl_desc -# MAGIC ,A.TCM_DESC -# MAGIC ,A.PAED_DESC -# MAGIC ,A.GQCE_DESC -# MAGIC ,A.VBP_DESC -# MAGIC ,A.MANU_COD -# MAGIC ,A.MANU_DES -# MAGIC ,A.MANU_DES_C -# MAGIC ,A.MNFL_COD -# MAGIC ,A.MNFL_DES -# MAGIC ,A.CORP_COD -# MAGIC ,CASE WHEN A.corp_des LIKE '% GROUP%' THEN replace(A.corp_des,' GROUP','' ) ELSE A.corp_des END corp_des -# MAGIC ,CORP_DES_C -# MAGIC ,'' BrandType -# MAGIC ,A.MARKET -# MAGIC ,t5.KEY_COMPETITOR -# MAGIC ,CASE WHEN CORP_COD ='A5Z' THEN 'Y' ELSE 'N' END IS_AZ -# MAGIC ,'' AZ_MAIN -# MAGIC ,case when dmt.TA is null then 'Others MKT' else 'AZ Related MKT' end as AZ_Related -# MAGIC ,atc1_des -# MAGIC ,atc1_des_c -# MAGIC ,atc2_des -# MAGIC ,atc2_des_c -# MAGIC ,atc3_des -# MAGIC ,atc3_des_c -# MAGIC ,atc4_des -# MAGIC ,atc4_des_c -# MAGIC ,app1_des -# MAGIC ,app1_des_c -# MAGIC ,app2_des -# MAGIC ,app2_des_c -# MAGIC ,app3_des -# MAGIC ,app3_des_c -# MAGIC ,ifnull(t3.class,'Others') as Class -# MAGIC ,from_utc_timestamp(current_timestamp(),'UTC+8') etl_insert_dt -# MAGIC ,from_utc_timestamp(current_timestamp(),'UTC+8') etl_update_dt -# MAGIC from dws.dws_zk_retail_dtp_market A -# MAGIC left join dwd.dwd_gnd_ims_tblmarket_ta_map dmt on dmt.Market = A.Market -# MAGIC left join tmp_tblclass t3 -# MAGIC on A.market = ifnull(t3.market , A.market ) -# MAGIC -------------------------------------------------------------- -# MAGIC -- format -# MAGIC and A.iqvia_pack_code = ifnull(t3.new_pack_code, A.iqvia_pack_code) -# MAGIC and A.iqvia_prod_code = ifnull(t3.new_product_code, A.iqvia_prod_code) -# MAGIC -------------------------------------------------------------- -# MAGIC and A.cmps_cod = ifnull(right(concat('000000',t3.molecule_code ), 6) , A.cmps_cod) -# MAGIC and A.corp_cod = ifnull(t3.Corporation_code , A.corp_cod) -# MAGIC and A.manu_cod = ifnull(t3.Manufacturer_Code , A.manu_cod) -# MAGIC and A.ATC1_COD = ifnull(t3.ATC1_Code , A.ATC1_COD) -# MAGIC and A.ATC2_COD = ifnull(t3.ATC2_Code , A.ATC2_COD) -# MAGIC and A.ATC3_COD = ifnull(t3.ATC3_Code , A.ATC3_COD) -# MAGIC and A.ATC4_COD = ifnull(t3.ATC4_Code , A.ATC4_COD) -# MAGIC and A.APP1_COD = ifnull(t3.NFC1_Code , A.APP1_COD) -# MAGIC and A.APP2_COD = ifnull(t3.NFC2_Code , A.APP2_COD) -# MAGIC and A.APP3_COD = ifnull(t3.NFC3_Code , A.APP3_COD) -# MAGIC and ifnull(A.STGH_DES, '') = ifnull(t3.Strength, ifnull(A.STGH_DES, '')) -# MAGIC left join (select distinct MARKET,PACK_CODE as PACK_COD,KEY_COMPETITOR from DM.DM_TD_EXT_CHPA_MARKET_PACK_MAPPING) t5 -# MAGIC on A.market = t5.MARKET -# MAGIC and A.iqvia_pack_code = t5.PACK_COD -# MAGIC - -# COMMAND ---------- - -# MAGIC %md -# MAGIC ## STEP-7: map to dm.dm_zk_retail_dtp_sales - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-7: map to dm.dm_zk_retail_dtp_sales -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC insert overwrite table dm.dm_zk_retail_dtp_sales -# MAGIC select -# MAGIC a.year, -# MAGIC a.yq, -# MAGIC a.yyyymm, -# MAGIC a.iqvia_pack_code, -# MAGIC nvl(b.geo_key, a.geo_key) as AUDIT_COD, -# MAGIC a.sales_value, -# MAGIC a.sales_unit, -# MAGIC a.counting_unit, -# MAGIC a.sales_value_ly, -# MAGIC a.sales_unit_ly, -# MAGIC a.counting_unit_ly, -# MAGIC ------------------------------------------------------------- -# MAGIC -- dtp相关的数据的pack_flag 除计算的OTHERS外(0),其余(1,2) 均为1 -# MAGIC case when a.pack_flag = 0 then 0 else 1 end as pack_flag, -# MAGIC ------------------------------------------------------------- -# MAGIC a.brand_flag -# MAGIC from tmp.tmp_retail_dtp_final_sales a -# MAGIC left join dm.dm_zk_retail_geo b -# MAGIC on a.geo_key = b.province_city -# MAGIC - -# COMMAND ---------- - -# MAGIC %md -# MAGIC ## STEP-8: map to dm.dm_zk_retail_sales_kpi - -# COMMAND ---------- - -# MAGIC %md -# MAGIC ### PART-1:品牌数据报告(13个) -# MAGIC - share -# MAGIC - key_brand_ytd -# MAGIC - key_brand_rank_ytd -# MAGIC - top_brand_ytd -# MAGIC - top_brand_ms_ytd -# MAGIC - top_brand_gr_ytd -# MAGIC - top_brand_inc_ms_ytd -# MAGIC - key_brand_qtd -# MAGIC - key_brand_rank_qtd -# MAGIC - top_brand_qtd -# MAGIC - top_brand_ms_qtd -# MAGIC - top_brand_inc_ms_qtd -# MAGIC - top_brand_gr_qtd - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi -# MAGIC -- 8.1 kpi: share -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC with exploded_data as ( -# MAGIC select -# MAGIC ta, -# MAGIC market, -# MAGIC brand, -# MAGIC ifnull(common_name,'' ) as common_name, -# MAGIC level, -# MAGIC split(level_ta,',') array_ta, -# MAGIC split(level_market,',') array_market, -# MAGIC split(level_molecule,',') array_molecule, -# MAGIC split(level_brand,',') array_brand -# MAGIC from dwd.dwd_gnd_retail_split_automatic -# MAGIC where level like '%MULTI_BRAND%' -# MAGIC ), tmp_config as ( -# MAGIC select -# MAGIC ta, -# MAGIC market, -# MAGIC brand, -# MAGIC common_name, -# MAGIC level, -# MAGIC array_ta[idx] as level_ta, -# MAGIC array_market[idx] as level_market, -# MAGIC array_molecule[idx] as level_molecule, -# MAGIC array_brand[idx] as level_brand -# MAGIC from exploded_data -# MAGIC lateral view posexplode(array_ta) AS idx, split_ta -# MAGIC -# MAGIC union all -# MAGIC -# MAGIC select -# MAGIC ta, -# MAGIC market, -# MAGIC brand, -# MAGIC common_name, -# MAGIC level, -# MAGIC level_ta, -# MAGIC level_market, -# MAGIC level_molecule, -# MAGIC level_brand -# MAGIC from dwd.dwd_gnd_retail_split_automatic -# MAGIC where level = 'BRAND' -# MAGIC ),max_pack_mapping as ( -# MAGIC select -# MAGIC level_ta, -# MAGIC level_market, -# MAGIC level_molecule, -# MAGIC level_brand, -# MAGIC molecule_desc, -# MAGIC product_desc, -# MAGIC corp_cod, -# MAGIC max(pack_code) as pack_code -# MAGIC from tmp.tmp_retail_pack_mapping -# MAGIC group by level_ta,level_market,level_molecule,level_brand,molecule_desc,product_desc,corp_cod -# MAGIC ), tmp_brand_kpi as ( -# MAGIC select -# MAGIC distinct -# MAGIC c.pack_code, -# MAGIC c.corp_cod, -# MAGIC a.YYYYMM, -# MAGIC null as ytd, -# MAGIC d.geo_key, -# MAGIC a.val_share as kpi_val, -# MAGIC a.vol_share as kpi_vol, -# MAGIC a.ta, -# MAGIC a.key_brand_ytd, -# MAGIC a.key_brand_rank_ytd, -# MAGIC a.top_brand_ytd, -# MAGIC a.top_brand_ms_ytd, -# MAGIC a.top_brand_inc_ms_ytd, -# MAGIC a.top_brand_gr_ytd, -# MAGIC a.key_brand_qtd, -# MAGIC a.key_brand_rank_qtd, -# MAGIC a.top_brand_qtd, -# MAGIC a.top_brand_ms_qtd, -# MAGIC a.top_brand_inc_ms_qtd, -# MAGIC a.top_brand_gr_qtd -# MAGIC from dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all a -# MAGIC inner join tmp_config b -# MAGIC on a.ta = b.ta -# MAGIC and a.market = b.market -# MAGIC and a.zk_brand_category = b.brand -# MAGIC and a.zk_common_name = b.common_name -# MAGIC inner join max_pack_mapping c -# MAGIC on c.level_ta = b.level_ta -# MAGIC and c.level_market = b.level_market -# MAGIC and c.level_molecule = b.level_molecule -# MAGIC and c.level_brand = b.level_brand -# MAGIC left join dm.dm_zk_retail_geo d -# MAGIC on a.province_city = d.province_city -# MAGIC ), tmp_brand_kpi_ly as ( -# MAGIC select -# MAGIC pack_code, -# MAGIC corp_cod, -# MAGIC cast(YYYYMM + 100 as int ) as YYYYMM, -# MAGIC ytd, -# MAGIC geo_key, -# MAGIC kpi_val as kpi_val_ly, -# MAGIC kpi_vol as kpi_vol_ly, -# MAGIC ta -# MAGIC from tmp_brand_kpi -# MAGIC ) -# MAGIC -# MAGIC insert overwrite table dws.dws_zk_retail_sales_kpi -# MAGIC -# MAGIC select -# MAGIC a.pack_code, -# MAGIC a.corp_cod, -# MAGIC a.yyyymm, -# MAGIC a.ytd, -# MAGIC a.geo_key, -# MAGIC 'share' as KPI_name, -# MAGIC a.kpi_val, -# MAGIC b.kpi_val_ly, -# MAGIC null as str_kpi_val, -# MAGIC null as str_kpi_val_ly, -# MAGIC a.kpi_vol, -# MAGIC b.kpi_vol_ly, -# MAGIC null as str_kpi_vol, -# MAGIC null as str_kpi_vol_ly, -# MAGIC 'N' as TOTAL_FLAG, -# MAGIC a.ta -# MAGIC from tmp_brand_kpi a -# MAGIC left join tmp_brand_kpi_ly b -# MAGIC on a.pack_code = b.pack_code -# MAGIC and a.YYYYMM = b.YYYYMM -# MAGIC and a.geo_key = b.geo_key - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi -# MAGIC -- 8.2 kpi: key_brand_ytd -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC with tmp_brand_ytd_value as ( -# MAGIC select -# MAGIC distinct -# MAGIC a.ta, -# MAGIC a.market, -# MAGIC a.ytd, -# MAGIC d.geo_key, -# MAGIC a.key_brand_ytd -# MAGIC from dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all a -# MAGIC left join dm.dm_zk_retail_geo d -# MAGIC on a.province_city = d.province_city -# MAGIC where a.ranked_by = 'value' -# MAGIC and a.ytd is not null -# MAGIC ), tmp_brand_ytd_volume as ( -# MAGIC select -# MAGIC distinct -# MAGIC a.ta, -# MAGIC a.market, -# MAGIC a.ytd, -# MAGIC d.geo_key, -# MAGIC a.key_brand_ytd -# MAGIC from dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all a -# MAGIC left join dm.dm_zk_retail_geo d -# MAGIC on a.province_city = d.province_city -# MAGIC where a.ranked_by = 'volume' -# MAGIC and a.ytd is not null -# MAGIC ), tmp_brand_ytd_value_ly as ( -# MAGIC select -# MAGIC ta, -# MAGIC market, -# MAGIC left(ytd,3) || cast(substr(ytd,4,2)+1 as int) || right( ytd,2 ) as ytd, -# MAGIC geo_key, -# MAGIC key_brand_ytd -# MAGIC from tmp_brand_ytd_value -# MAGIC ), tmp_brand_ytd_volume_ly as ( -# MAGIC select -# MAGIC ta, -# MAGIC market, -# MAGIC left(ytd,3) || cast(substr(ytd,4,2)+1 as int) || right( ytd,2 ) as ytd, -# MAGIC geo_key, -# MAGIC key_brand_ytd -# MAGIC from tmp_brand_ytd_volume -# MAGIC ), tmp_brand_ytd_value_all as ( -# MAGIC select -# MAGIC a.ta, -# MAGIC a.market, -# MAGIC a.ytd, -# MAGIC a.geo_key, -# MAGIC a.key_brand_ytd, -# MAGIC b.key_brand_ytd as key_brand_ytd_ly -# MAGIC from tmp_brand_ytd_value a -# MAGIC inner join tmp_brand_ytd_value_ly b -# MAGIC on a.ta = b.ta -# MAGIC and a.market = b.market -# MAGIC and a.ytd = b.ytd -# MAGIC and a.geo_key = b.geo_key -# MAGIC ), tmp_brand_ytd_volume_all as ( -# MAGIC select -# MAGIC a.ta, -# MAGIC a.market, -# MAGIC a.ytd, -# MAGIC a.geo_key, -# MAGIC a.key_brand_ytd, -# MAGIC b.key_brand_ytd as key_brand_ytd_ly -# MAGIC from tmp_brand_ytd_volume a -# MAGIC inner join tmp_brand_ytd_volume_ly b -# MAGIC on a.ta = b.ta -# MAGIC and a.market = b.market -# MAGIC and a.ytd = b.ytd -# MAGIC and a.geo_key = b.geo_key -# MAGIC ) -# MAGIC -# MAGIC insert into table dws.dws_zk_retail_sales_kpi -# MAGIC -# MAGIC select -# MAGIC distinct -# MAGIC '' as pack_code, -# MAGIC '' as corp_cod, -# MAGIC null as yyyymm, -# MAGIC a.ytd, -# MAGIC a.geo_key, -# MAGIC 'key_brand_ytd' as KPI_name, -# MAGIC null as kpi_val, -# MAGIC null as kpi_val_ly, -# MAGIC a.key_brand_ytd as str_kpi_val, -# MAGIC a.key_brand_ytd_ly as str_kpi_val_ly, -# MAGIC null as kpi_vol, -# MAGIC null as kpi_vol_ly, -# MAGIC b.key_brand_ytd as str_kpi_vol, -# MAGIC b.key_brand_ytd_ly as str_kpi_vol_ly, -# MAGIC 'N' as TOTAL_FLAG, -# MAGIC a.ta -# MAGIC from tmp_brand_ytd_value_all a -# MAGIC inner join tmp_brand_ytd_volume_all b -# MAGIC on a.ta = b.ta -# MAGIC and a.market = b.market -# MAGIC and a.ytd = b.ytd -# MAGIC and a.geo_key = b.geo_key -# MAGIC - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi -# MAGIC -- 8.3 kpi: key_brand_rank_ytd -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC with tmp_kpi_ytd_value as ( -# MAGIC select -# MAGIC distinct -# MAGIC a.ta, -# MAGIC a.market, -# MAGIC a.ytd, -# MAGIC d.geo_key, -# MAGIC a.key_brand_rank_ytd -# MAGIC from dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all a -# MAGIC left join dm.dm_zk_retail_geo d -# MAGIC on a.province_city = d.province_city -# MAGIC where a.ranked_by = 'value' -# MAGIC and a.ytd is not null -# MAGIC ), tmp_kpi_ytd_volume as ( -# MAGIC select -# MAGIC distinct -# MAGIC a.ta, -# MAGIC a.market, -# MAGIC a.ytd, -# MAGIC d.geo_key, -# MAGIC a.key_brand_rank_ytd -# MAGIC from dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all a -# MAGIC left join dm.dm_zk_retail_geo d -# MAGIC on a.province_city = d.province_city -# MAGIC where a.ranked_by = 'volume' -# MAGIC and a.ytd is not null -# MAGIC ), tmp_kpi_ytd_value_ly as ( -# MAGIC select -# MAGIC ta, -# MAGIC market, -# MAGIC left(ytd,3) || cast(substr(ytd,4,2)+1 as int) || right( ytd,2 ) as ytd, -# MAGIC geo_key, -# MAGIC key_brand_rank_ytd -# MAGIC from tmp_kpi_ytd_value -# MAGIC ), tmp_kpi_ytd_volume_ly as ( -# MAGIC select -# MAGIC ta, -# MAGIC market, -# MAGIC left(ytd,3) || cast(substr(ytd,4,2)+1 as int) || right( ytd,2 ) as ytd, -# MAGIC geo_key, -# MAGIC key_brand_rank_ytd -# MAGIC from tmp_kpi_ytd_volume -# MAGIC ), tmp_kpi_ytd_value_all as ( -# MAGIC select -# MAGIC a.ta, -# MAGIC a.market, -# MAGIC a.ytd, -# MAGIC a.geo_key, -# MAGIC a.key_brand_rank_ytd, -# MAGIC b.key_brand_rank_ytd as key_brand_rank_ytd_ly -# MAGIC from tmp_kpi_ytd_value a -# MAGIC inner join tmp_kpi_ytd_value_ly b -# MAGIC on a.ta = b.ta -# MAGIC and a.market = b.market -# MAGIC and a.ytd = b.ytd -# MAGIC and a.geo_key = b.geo_key -# MAGIC ), tmp_kpi_ytd_volume_all as ( -# MAGIC select -# MAGIC a.ta, -# MAGIC a.market, -# MAGIC a.ytd, -# MAGIC a.geo_key, -# MAGIC a.key_brand_rank_ytd, -# MAGIC b.key_brand_rank_ytd as key_brand_rank_ytd_ly -# MAGIC from tmp_kpi_ytd_volume a -# MAGIC inner join tmp_kpi_ytd_volume_ly b -# MAGIC on a.ta = b.ta -# MAGIC and a.market = b.market -# MAGIC and a.ytd = b.ytd -# MAGIC and a.geo_key = b.geo_key -# MAGIC ) -# MAGIC -# MAGIC insert into table dws.dws_zk_retail_sales_kpi -# MAGIC -# MAGIC select -# MAGIC distinct -# MAGIC '' as pack_code, -# MAGIC '' as corp_cod, -# MAGIC null as yyyymm, -# MAGIC a.ytd, -# MAGIC a.geo_key, -# MAGIC 'key_brand_rank_ytd' as KPI_name, -# MAGIC a.key_brand_rank_ytd as kpi_val, -# MAGIC a.key_brand_rank_ytd_ly as kpi_val_ly, -# MAGIC null as str_kpi_val, -# MAGIC null as str_kpi_val_ly, -# MAGIC b.key_brand_rank_ytd as kpi_vol, -# MAGIC b.key_brand_rank_ytd_ly as kpi_vol_ly, -# MAGIC null as str_kpi_vol, -# MAGIC null as str_kpi_vol_ly, -# MAGIC 'N' as TOTAL_FLAG, -# MAGIC a.ta -# MAGIC from tmp_kpi_ytd_value_all a -# MAGIC inner join tmp_kpi_ytd_volume_all b -# MAGIC on a.ta = b.ta -# MAGIC and a.market = b.market -# MAGIC and a.ytd = b.ytd -# MAGIC and a.geo_key = b.geo_key - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi -# MAGIC -- 8.4 kpi: top_brand_ytd -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC with tmp_kpi_ytd_value as ( -# MAGIC select -# MAGIC distinct -# MAGIC a.ta, -# MAGIC a.market, -# MAGIC a.ytd, -# MAGIC d.geo_key, -# MAGIC a.top_brand_ytd -# MAGIC from dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all a -# MAGIC left join dm.dm_zk_retail_geo d -# MAGIC on a.province_city = d.province_city -# MAGIC where a.ranked_by = 'value' -# MAGIC and a.ytd is not null -# MAGIC ), tmp_kpi_ytd_volume as ( -# MAGIC select -# MAGIC distinct -# MAGIC a.ta, -# MAGIC a.market, -# MAGIC a.ytd, -# MAGIC d.geo_key, -# MAGIC a.top_brand_ytd -# MAGIC from dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all a -# MAGIC left join dm.dm_zk_retail_geo d -# MAGIC on a.province_city = d.province_city -# MAGIC where a.ranked_by = 'volume' -# MAGIC and a.ytd is not null -# MAGIC ), tmp_kpi_ytd_value_ly as ( -# MAGIC select -# MAGIC ta, -# MAGIC market, -# MAGIC left(ytd,3) || cast(substr(ytd,4,2)+1 as int) || right( ytd,2 ) as ytd, -# MAGIC geo_key, -# MAGIC top_brand_ytd -# MAGIC from tmp_kpi_ytd_value -# MAGIC ), tmp_kpi_ytd_volume_ly as ( -# MAGIC select -# MAGIC ta, -# MAGIC market, -# MAGIC left(ytd,3) || cast(substr(ytd,4,2)+1 as int) || right( ytd,2 ) as ytd, -# MAGIC geo_key, -# MAGIC top_brand_ytd -# MAGIC from tmp_kpi_ytd_volume -# MAGIC ), tmp_kpi_ytd_value_all as ( -# MAGIC select -# MAGIC a.ta, -# MAGIC a.market, -# MAGIC a.ytd, -# MAGIC a.geo_key, -# MAGIC a.top_brand_ytd, -# MAGIC b.top_brand_ytd as top_brand_ytd_ly -# MAGIC from tmp_kpi_ytd_value a -# MAGIC inner join tmp_kpi_ytd_value_ly b -# MAGIC on a.ta = b.ta -# MAGIC and a.market = b.market -# MAGIC and a.ytd = b.ytd -# MAGIC and a.geo_key = b.geo_key -# MAGIC ), tmp_kpi_ytd_volume_all as ( -# MAGIC select -# MAGIC a.ta, -# MAGIC a.market, -# MAGIC a.ytd, -# MAGIC a.geo_key, -# MAGIC a.top_brand_ytd, -# MAGIC b.top_brand_ytd as top_brand_ytd_ly -# MAGIC from tmp_kpi_ytd_volume a -# MAGIC inner join tmp_kpi_ytd_volume_ly b -# MAGIC on a.ta = b.ta -# MAGIC and a.market = b.market -# MAGIC and a.ytd = b.ytd -# MAGIC and a.geo_key = b.geo_key -# MAGIC ) -# MAGIC -# MAGIC insert into table dws.dws_zk_retail_sales_kpi -# MAGIC -# MAGIC select -# MAGIC distinct -# MAGIC '' as pack_code, -# MAGIC '' as corp_cod, -# MAGIC null as yyyymm, -# MAGIC a.ytd, -# MAGIC a.geo_key, -# MAGIC 'top_brand_ytd' as KPI_name, -# MAGIC null as kpi_val, -# MAGIC null as kpi_val_ly, -# MAGIC a.top_brand_ytd as str_kpi_val, -# MAGIC a.top_brand_ytd_ly as str_kpi_val_ly, -# MAGIC null as kpi_vol, -# MAGIC null as kpi_vol_ly, -# MAGIC b.top_brand_ytd as str_kpi_vol, -# MAGIC b.top_brand_ytd_ly as str_kpi_vol_ly, -# MAGIC 'N' as TOTAL_FLAG, -# MAGIC a.ta -# MAGIC from tmp_kpi_ytd_value_all a -# MAGIC inner join tmp_kpi_ytd_volume_all b -# MAGIC on a.ta = b.ta -# MAGIC and a.market = b.market -# MAGIC and a.ytd = b.ytd -# MAGIC and a.geo_key = b.geo_key - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi -# MAGIC -- 8.5 kpi: top_brand_ms_ytd -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC with tmp_kpi_ytd_value as ( -# MAGIC select -# MAGIC distinct -# MAGIC a.ta, -# MAGIC a.market, -# MAGIC a.ytd, -# MAGIC d.geo_key, -# MAGIC a.top_brand_ms_ytd -# MAGIC from dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all a -# MAGIC left join dm.dm_zk_retail_geo d -# MAGIC on a.province_city = d.province_city -# MAGIC where a.ranked_by = 'value' -# MAGIC and a.ytd is not null -# MAGIC ), tmp_kpi_ytd_volume as ( -# MAGIC select -# MAGIC distinct -# MAGIC a.ta, -# MAGIC a.market, -# MAGIC a.ytd, -# MAGIC d.geo_key, -# MAGIC a.top_brand_ms_ytd -# MAGIC from dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all a -# MAGIC left join dm.dm_zk_retail_geo d -# MAGIC on a.province_city = d.province_city -# MAGIC where a.ranked_by = 'volume' -# MAGIC and a.ytd is not null -# MAGIC ), tmp_kpi_ytd_value_ly as ( -# MAGIC select -# MAGIC ta, -# MAGIC market, -# MAGIC left(ytd,3) || cast(substr(ytd,4,2)+1 as int) || right( ytd,2 ) as ytd, -# MAGIC geo_key, -# MAGIC top_brand_ms_ytd -# MAGIC from tmp_kpi_ytd_value -# MAGIC ), tmp_kpi_ytd_volume_ly as ( -# MAGIC select -# MAGIC ta, -# MAGIC market, -# MAGIC left(ytd,3) || cast(substr(ytd,4,2)+1 as int) || right( ytd,2 ) as ytd, -# MAGIC geo_key, -# MAGIC top_brand_ms_ytd -# MAGIC from tmp_kpi_ytd_volume -# MAGIC ), tmp_kpi_ytd_value_all as ( -# MAGIC select -# MAGIC a.ta, -# MAGIC a.market, -# MAGIC a.ytd, -# MAGIC a.geo_key, -# MAGIC a.top_brand_ms_ytd, -# MAGIC b.top_brand_ms_ytd as top_brand_ms_ytd_ly -# MAGIC from tmp_kpi_ytd_value a -# MAGIC inner join tmp_kpi_ytd_value_ly b -# MAGIC on a.ta = b.ta -# MAGIC and a.market = b.market -# MAGIC and a.ytd = b.ytd -# MAGIC and a.geo_key = b.geo_key -# MAGIC ), tmp_kpi_ytd_volume_all as ( -# MAGIC select -# MAGIC a.ta, -# MAGIC a.market, -# MAGIC a.ytd, -# MAGIC a.geo_key, -# MAGIC a.top_brand_ms_ytd, -# MAGIC b.top_brand_ms_ytd as top_brand_ms_ytd_ly -# MAGIC from tmp_kpi_ytd_volume a -# MAGIC inner join tmp_kpi_ytd_volume_ly b -# MAGIC on a.ta = b.ta -# MAGIC and a.market = b.market -# MAGIC and a.ytd = b.ytd -# MAGIC and a.geo_key = b.geo_key -# MAGIC ) -# MAGIC -# MAGIC insert into table dws.dws_zk_retail_sales_kpi -# MAGIC -# MAGIC select -# MAGIC distinct -# MAGIC '' as pack_code, -# MAGIC '' as corp_cod, -# MAGIC null as yyyymm, -# MAGIC a.ytd, -# MAGIC a.geo_key, -# MAGIC 'top_brand_ms_ytd' as KPI_name, -# MAGIC a.top_brand_ms_ytd as kpi_val, -# MAGIC a.top_brand_ms_ytd_ly as kpi_val_ly, -# MAGIC null as str_kpi_val, -# MAGIC null as str_kpi_val_ly, -# MAGIC b.top_brand_ms_ytd as kpi_vol, -# MAGIC b.top_brand_ms_ytd_ly as kpi_vol_ly, -# MAGIC null as str_kpi_vol, -# MAGIC null as str_kpi_vol_ly, -# MAGIC 'N' as TOTAL_FLAG, -# MAGIC a.ta -# MAGIC from tmp_kpi_ytd_value_all a -# MAGIC inner join tmp_kpi_ytd_volume_all b -# MAGIC on a.ta = b.ta -# MAGIC and a.market = b.market -# MAGIC and a.ytd = b.ytd -# MAGIC and a.geo_key = b.geo_key - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi -# MAGIC -- 8.6 kpi: top_brand_gr_ytd -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC with tmp_kpi_ytd_value as ( -# MAGIC select -# MAGIC distinct -# MAGIC a.ta, -# MAGIC a.market, -# MAGIC a.ytd, -# MAGIC d.geo_key, -# MAGIC a.top_brand_gr_ytd -# MAGIC from dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all a -# MAGIC left join dm.dm_zk_retail_geo d -# MAGIC on a.province_city = d.province_city -# MAGIC where a.ranked_by = 'value' -# MAGIC and a.ytd is not null -# MAGIC ), tmp_kpi_ytd_volume as ( -# MAGIC select -# MAGIC distinct -# MAGIC a.ta, -# MAGIC a.market, -# MAGIC a.ytd, -# MAGIC d.geo_key, -# MAGIC a.top_brand_gr_ytd -# MAGIC from dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all a -# MAGIC left join dm.dm_zk_retail_geo d -# MAGIC on a.province_city = d.province_city -# MAGIC where a.ranked_by = 'volume' -# MAGIC and a.ytd is not null -# MAGIC ), tmp_kpi_ytd_value_ly as ( -# MAGIC select -# MAGIC ta, -# MAGIC market, -# MAGIC left(ytd,3) || cast(substr(ytd,4,2)+1 as int) || right( ytd,2 ) as ytd, -# MAGIC geo_key, -# MAGIC top_brand_gr_ytd -# MAGIC from tmp_kpi_ytd_value -# MAGIC ), tmp_kpi_ytd_volume_ly as ( -# MAGIC select -# MAGIC ta, -# MAGIC market, -# MAGIC left(ytd,3) || cast(substr(ytd,4,2)+1 as int) || right( ytd,2 ) as ytd, -# MAGIC geo_key, -# MAGIC top_brand_gr_ytd -# MAGIC from tmp_kpi_ytd_volume -# MAGIC ), tmp_kpi_ytd_value_all as ( -# MAGIC select -# MAGIC a.ta, -# MAGIC a.market, -# MAGIC a.ytd, -# MAGIC a.geo_key, -# MAGIC a.top_brand_gr_ytd, -# MAGIC b.top_brand_gr_ytd as top_brand_gr_ytd_ly -# MAGIC from tmp_kpi_ytd_value a -# MAGIC inner join tmp_kpi_ytd_value_ly b -# MAGIC on a.ta = b.ta -# MAGIC and a.market = b.market -# MAGIC and a.ytd = b.ytd -# MAGIC and a.geo_key = b.geo_key -# MAGIC ), tmp_kpi_ytd_volume_all as ( -# MAGIC select -# MAGIC a.ta, -# MAGIC a.market, -# MAGIC a.ytd, -# MAGIC a.geo_key, -# MAGIC a.top_brand_gr_ytd, -# MAGIC b.top_brand_gr_ytd as top_brand_gr_ytd_ly -# MAGIC from tmp_kpi_ytd_volume a -# MAGIC inner join tmp_kpi_ytd_volume_ly b -# MAGIC on a.ta = b.ta -# MAGIC and a.market = b.market -# MAGIC and a.ytd = b.ytd -# MAGIC and a.geo_key = b.geo_key -# MAGIC ) -# MAGIC -# MAGIC insert into table dws.dws_zk_retail_sales_kpi -# MAGIC -# MAGIC select -# MAGIC distinct -# MAGIC '' as pack_code, -# MAGIC '' as corp_cod, -# MAGIC null as yyyymm, -# MAGIC a.ytd, -# MAGIC a.geo_key, -# MAGIC 'top_brand_gr_ytd' as KPI_name, -# MAGIC a.top_brand_gr_ytd as kpi_val, -# MAGIC a.top_brand_gr_ytd_ly as kpi_val_ly, -# MAGIC null as str_kpi_val, -# MAGIC null as str_kpi_val_ly, -# MAGIC b.top_brand_gr_ytd as kpi_vol, -# MAGIC b.top_brand_gr_ytd_ly as kpi_vol_ly, -# MAGIC null as str_kpi_vol, -# MAGIC null as str_kpi_vol_ly, -# MAGIC 'N' as TOTAL_FLAG, -# MAGIC a.ta -# MAGIC from tmp_kpi_ytd_value_all a -# MAGIC inner join tmp_kpi_ytd_volume_all b -# MAGIC on a.ta = b.ta -# MAGIC and a.market = b.market -# MAGIC and a.ytd = b.ytd -# MAGIC and a.geo_key = b.geo_key - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi -# MAGIC -- 8.7 kpi: top_brand_inc_ms_ytd -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC with tmp_kpi_ytd_value as ( -# MAGIC select -# MAGIC distinct -# MAGIC a.ta, -# MAGIC a.market, -# MAGIC a.ytd, -# MAGIC d.geo_key, -# MAGIC a.top_brand_inc_ms_ytd -# MAGIC from dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all a -# MAGIC left join dm.dm_zk_retail_geo d -# MAGIC on a.province_city = d.province_city -# MAGIC where a.ranked_by = 'value' -# MAGIC and a.ytd is not null -# MAGIC ), tmp_kpi_ytd_volume as ( -# MAGIC select -# MAGIC distinct -# MAGIC a.ta, -# MAGIC a.market, -# MAGIC a.ytd, -# MAGIC d.geo_key, -# MAGIC a.top_brand_inc_ms_ytd -# MAGIC from dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all a -# MAGIC left join dm.dm_zk_retail_geo d -# MAGIC on a.province_city = d.province_city -# MAGIC where a.ranked_by = 'volume' -# MAGIC and a.ytd is not null -# MAGIC ), tmp_kpi_ytd_value_ly as ( -# MAGIC select -# MAGIC ta, -# MAGIC market, -# MAGIC left(ytd,3) || cast(substr(ytd,4,2)+1 as int) || right( ytd,2 ) as ytd, -# MAGIC geo_key, -# MAGIC top_brand_inc_ms_ytd -# MAGIC from tmp_kpi_ytd_value -# MAGIC ), tmp_kpi_ytd_volume_ly as ( -# MAGIC select -# MAGIC ta, -# MAGIC market, -# MAGIC left(ytd,3) || cast(substr(ytd,4,2)+1 as int) || right( ytd,2 ) as ytd, -# MAGIC geo_key, -# MAGIC top_brand_inc_ms_ytd -# MAGIC from tmp_kpi_ytd_volume -# MAGIC ), tmp_kpi_ytd_value_all as ( -# MAGIC select -# MAGIC a.ta, -# MAGIC a.market, -# MAGIC a.ytd, -# MAGIC a.geo_key, -# MAGIC a.top_brand_inc_ms_ytd, -# MAGIC b.top_brand_inc_ms_ytd as top_brand_inc_ms_ytd_ly -# MAGIC from tmp_kpi_ytd_value a -# MAGIC inner join tmp_kpi_ytd_value_ly b -# MAGIC on a.ta = b.ta -# MAGIC and a.market = b.market -# MAGIC and a.ytd = b.ytd -# MAGIC and a.geo_key = b.geo_key -# MAGIC ), tmp_kpi_ytd_volume_all as ( -# MAGIC select -# MAGIC a.ta, -# MAGIC a.market, -# MAGIC a.ytd, -# MAGIC a.geo_key, -# MAGIC a.top_brand_inc_ms_ytd, -# MAGIC b.top_brand_inc_ms_ytd as top_brand_inc_ms_ytd_ly -# MAGIC from tmp_kpi_ytd_volume a -# MAGIC inner join tmp_kpi_ytd_volume_ly b -# MAGIC on a.ta = b.ta -# MAGIC and a.market = b.market -# MAGIC and a.ytd = b.ytd -# MAGIC and a.geo_key = b.geo_key -# MAGIC ) -# MAGIC -# MAGIC insert into table dws.dws_zk_retail_sales_kpi -# MAGIC -# MAGIC select -# MAGIC distinct -# MAGIC '' as pack_code, -# MAGIC '' as corp_cod, -# MAGIC null as yyyymm, -# MAGIC a.ytd, -# MAGIC a.geo_key, -# MAGIC 'top_brand_inc_ms_ytd' as KPI_name, -# MAGIC a.top_brand_inc_ms_ytd as kpi_val, -# MAGIC a.top_brand_inc_ms_ytd_ly as kpi_val_ly, -# MAGIC null as str_kpi_val, -# MAGIC null as str_kpi_val_ly, -# MAGIC b.top_brand_inc_ms_ytd as kpi_vol, -# MAGIC b.top_brand_inc_ms_ytd_ly as kpi_vol_ly, -# MAGIC null as str_kpi_vol, -# MAGIC null as str_kpi_vol_ly, -# MAGIC 'N' as TOTAL_FLAG, -# MAGIC a.ta -# MAGIC from tmp_kpi_ytd_value_all a -# MAGIC inner join tmp_kpi_ytd_volume_all b -# MAGIC on a.ta = b.ta -# MAGIC and a.market = b.market -# MAGIC and a.ytd = b.ytd -# MAGIC and a.geo_key = b.geo_key - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi -# MAGIC -- 8.8 kpi: key_brand_qtd -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC with tmp_kpi_ytd_value as ( -# MAGIC select -# MAGIC distinct -# MAGIC a.ta, -# MAGIC a.market, -# MAGIC a.yyyymm, -# MAGIC d.geo_key, -# MAGIC a.key_brand_qtd -# MAGIC from dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all a -# MAGIC left join dm.dm_zk_retail_geo d -# MAGIC on a.province_city = d.province_city -# MAGIC where a.ranked_by = 'value' -# MAGIC and a.ytd is not null -# MAGIC ), tmp_kpi_ytd_volume as ( -# MAGIC select -# MAGIC distinct -# MAGIC a.ta, -# MAGIC a.market, -# MAGIC a.yyyymm, -# MAGIC d.geo_key, -# MAGIC a.key_brand_qtd -# MAGIC from dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all a -# MAGIC left join dm.dm_zk_retail_geo d -# MAGIC on a.province_city = d.province_city -# MAGIC where a.ranked_by = 'volume' -# MAGIC and a.ytd is not null -# MAGIC ), tmp_kpi_ytd_value_ly as ( -# MAGIC select -# MAGIC ta, -# MAGIC market, -# MAGIC cast(yyyymm + 100 as int ) as yyyymm, -# MAGIC geo_key, -# MAGIC key_brand_qtd -# MAGIC from tmp_kpi_ytd_value -# MAGIC ), tmp_kpi_ytd_volume_ly as ( -# MAGIC select -# MAGIC ta, -# MAGIC market, -# MAGIC cast(yyyymm + 100 as int ) as yyyymm, -# MAGIC geo_key, -# MAGIC key_brand_qtd -# MAGIC from tmp_kpi_ytd_volume -# MAGIC ), tmp_kpi_ytd_value_all as ( -# MAGIC select -# MAGIC a.ta, -# MAGIC a.market, -# MAGIC a.yyyymm, -# MAGIC a.geo_key, -# MAGIC a.key_brand_qtd, -# MAGIC b.key_brand_qtd as key_brand_qtd_ly -# MAGIC from tmp_kpi_ytd_value a -# MAGIC inner join tmp_kpi_ytd_value_ly b -# MAGIC on a.ta = b.ta -# MAGIC and a.market = b.market -# MAGIC and a.yyyymm = b.yyyymm -# MAGIC and a.geo_key = b.geo_key -# MAGIC ), tmp_kpi_ytd_volume_all as ( -# MAGIC select -# MAGIC a.ta, -# MAGIC a.market, -# MAGIC a.yyyymm, -# MAGIC a.geo_key, -# MAGIC a.key_brand_qtd, -# MAGIC b.key_brand_qtd as key_brand_qtd_ly -# MAGIC from tmp_kpi_ytd_volume a -# MAGIC inner join tmp_kpi_ytd_volume_ly b -# MAGIC on a.ta = b.ta -# MAGIC and a.market = b.market -# MAGIC and a.yyyymm = b.yyyymm -# MAGIC and a.geo_key = b.geo_key -# MAGIC ) -# MAGIC -# MAGIC insert into table dws.dws_zk_retail_sales_kpi -# MAGIC -# MAGIC select -# MAGIC distinct -# MAGIC '' as pack_code, -# MAGIC '' as corp_cod, -# MAGIC a.yyyymm, -# MAGIC null as ytd, -# MAGIC a.geo_key, -# MAGIC 'key_brand_qtd' as KPI_name, -# MAGIC null as kpi_val, -# MAGIC null as kpi_val_ly, -# MAGIC a.key_brand_qtd as str_kpi_val, -# MAGIC a.key_brand_qtd_ly as str_kpi_val_ly, -# MAGIC null as kpi_vol, -# MAGIC null as kpi_vol_ly, -# MAGIC b.key_brand_qtd as str_kpi_vol, -# MAGIC b.key_brand_qtd_ly as str_kpi_vol_ly, -# MAGIC 'N' as TOTAL_FLAG, -# MAGIC a.ta -# MAGIC from tmp_kpi_ytd_value_all a -# MAGIC inner join tmp_kpi_ytd_volume_all b -# MAGIC on a.ta = b.ta -# MAGIC and a.market = b.market -# MAGIC and a.yyyymm = b.yyyymm -# MAGIC and a.geo_key = b.geo_key - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi -# MAGIC -- 8.9 kpi: key_brand_rank_qtd -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC with tmp_kpi_ytd_value as ( -# MAGIC select -# MAGIC distinct -# MAGIC a.ta, -# MAGIC a.market, -# MAGIC a.yyyymm, -# MAGIC d.geo_key, -# MAGIC a.key_brand_rank_qtd -# MAGIC from dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all a -# MAGIC left join dm.dm_zk_retail_geo d -# MAGIC on a.province_city = d.province_city -# MAGIC where a.ranked_by = 'value' -# MAGIC and a.ytd is not null -# MAGIC ), tmp_kpi_ytd_volume as ( -# MAGIC select -# MAGIC distinct -# MAGIC a.ta, -# MAGIC a.market, -# MAGIC a.yyyymm, -# MAGIC d.geo_key, -# MAGIC a.key_brand_rank_qtd -# MAGIC from dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all a -# MAGIC left join dm.dm_zk_retail_geo d -# MAGIC on a.province_city = d.province_city -# MAGIC where a.ranked_by = 'volume' -# MAGIC and a.ytd is not null -# MAGIC ), tmp_kpi_ytd_value_ly as ( -# MAGIC select -# MAGIC ta, -# MAGIC market, -# MAGIC cast(yyyymm + 100 as int ) as yyyymm, -# MAGIC geo_key, -# MAGIC key_brand_rank_qtd -# MAGIC from tmp_kpi_ytd_value -# MAGIC ), tmp_kpi_ytd_volume_ly as ( -# MAGIC select -# MAGIC ta, -# MAGIC market, -# MAGIC cast(yyyymm + 100 as int ) as yyyymm, -# MAGIC geo_key, -# MAGIC key_brand_rank_qtd -# MAGIC from tmp_kpi_ytd_volume -# MAGIC ), tmp_kpi_ytd_value_all as ( -# MAGIC select -# MAGIC a.ta, -# MAGIC a.market, -# MAGIC a.yyyymm, -# MAGIC a.geo_key, -# MAGIC a.key_brand_rank_qtd, -# MAGIC b.key_brand_rank_qtd as key_brand_rank_qtd_ly -# MAGIC from tmp_kpi_ytd_value a -# MAGIC inner join tmp_kpi_ytd_value_ly b -# MAGIC on a.ta = b.ta -# MAGIC and a.market = b.market -# MAGIC and a.yyyymm = b.yyyymm -# MAGIC and a.geo_key = b.geo_key -# MAGIC ), tmp_kpi_ytd_volume_all as ( -# MAGIC select -# MAGIC a.ta, -# MAGIC a.market, -# MAGIC a.yyyymm, -# MAGIC a.geo_key, -# MAGIC a.key_brand_rank_qtd, -# MAGIC b.key_brand_rank_qtd as key_brand_rank_qtd_ly -# MAGIC from tmp_kpi_ytd_volume a -# MAGIC inner join tmp_kpi_ytd_volume_ly b -# MAGIC on a.ta = b.ta -# MAGIC and a.market = b.market -# MAGIC and a.yyyymm = b.yyyymm -# MAGIC and a.geo_key = b.geo_key -# MAGIC ) -# MAGIC -# MAGIC insert into table dws.dws_zk_retail_sales_kpi -# MAGIC -# MAGIC select -# MAGIC distinct -# MAGIC '' as pack_code, -# MAGIC '' as corp_cod, -# MAGIC a.yyyymm, -# MAGIC null as ytd, -# MAGIC a.geo_key, -# MAGIC 'key_brand_rank_qtd' as KPI_name, -# MAGIC a.key_brand_rank_qtd as kpi_val, -# MAGIC a.key_brand_rank_qtd_ly as kpi_val_ly, -# MAGIC null as str_kpi_val, -# MAGIC null as str_kpi_val_ly, -# MAGIC b.key_brand_rank_qtd as kpi_vol, -# MAGIC b.key_brand_rank_qtd_ly as kpi_vol_ly, -# MAGIC null as str_kpi_vol, -# MAGIC null as str_kpi_vol_ly, -# MAGIC 'N' as TOTAL_FLAG, -# MAGIC a.ta -# MAGIC from tmp_kpi_ytd_value_all a -# MAGIC inner join tmp_kpi_ytd_volume_all b -# MAGIC on a.ta = b.ta -# MAGIC and a.market = b.market -# MAGIC and a.yyyymm = b.yyyymm -# MAGIC and a.geo_key = b.geo_key - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi -# MAGIC -- 8.10 kpi: top_brand_qtd -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC with tmp_kpi_ytd_value as ( -# MAGIC select -# MAGIC distinct -# MAGIC a.ta, -# MAGIC a.market, -# MAGIC a.yyyymm, -# MAGIC d.geo_key, -# MAGIC a.top_brand_qtd -# MAGIC from dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all a -# MAGIC left join dm.dm_zk_retail_geo d -# MAGIC on a.province_city = d.province_city -# MAGIC where a.ranked_by = 'value' -# MAGIC and a.ytd is not null -# MAGIC ), tmp_kpi_ytd_volume as ( -# MAGIC select -# MAGIC distinct -# MAGIC a.ta, -# MAGIC a.market, -# MAGIC a.yyyymm, -# MAGIC d.geo_key, -# MAGIC a.top_brand_qtd -# MAGIC from dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all a -# MAGIC left join dm.dm_zk_retail_geo d -# MAGIC on a.province_city = d.province_city -# MAGIC where a.ranked_by = 'volume' -# MAGIC and a.ytd is not null -# MAGIC ), tmp_kpi_ytd_value_ly as ( -# MAGIC select -# MAGIC ta, -# MAGIC market, -# MAGIC cast(yyyymm + 100 as int ) as yyyymm, -# MAGIC geo_key, -# MAGIC top_brand_qtd -# MAGIC from tmp_kpi_ytd_value -# MAGIC ), tmp_kpi_ytd_volume_ly as ( -# MAGIC select -# MAGIC ta, -# MAGIC market, -# MAGIC cast(yyyymm + 100 as int ) as yyyymm, -# MAGIC geo_key, -# MAGIC top_brand_qtd -# MAGIC from tmp_kpi_ytd_volume -# MAGIC ), tmp_kpi_ytd_value_all as ( -# MAGIC select -# MAGIC a.ta, -# MAGIC a.market, -# MAGIC a.yyyymm, -# MAGIC a.geo_key, -# MAGIC a.top_brand_qtd, -# MAGIC b.top_brand_qtd as top_brand_qtd_ly -# MAGIC from tmp_kpi_ytd_value a -# MAGIC inner join tmp_kpi_ytd_value_ly b -# MAGIC on a.ta = b.ta -# MAGIC and a.market = b.market -# MAGIC and a.yyyymm = b.yyyymm -# MAGIC and a.geo_key = b.geo_key -# MAGIC ), tmp_kpi_ytd_volume_all as ( -# MAGIC select -# MAGIC a.ta, -# MAGIC a.market, -# MAGIC a.yyyymm, -# MAGIC a.geo_key, -# MAGIC a.top_brand_qtd, -# MAGIC b.top_brand_qtd as top_brand_qtd_ly -# MAGIC from tmp_kpi_ytd_volume a -# MAGIC inner join tmp_kpi_ytd_volume_ly b -# MAGIC on a.ta = b.ta -# MAGIC and a.market = b.market -# MAGIC and a.yyyymm = b.yyyymm -# MAGIC and a.geo_key = b.geo_key -# MAGIC ) -# MAGIC -# MAGIC insert into table dws.dws_zk_retail_sales_kpi -# MAGIC -# MAGIC select -# MAGIC distinct -# MAGIC '' as pack_code, -# MAGIC '' as corp_cod, -# MAGIC a.yyyymm, -# MAGIC null as ytd, -# MAGIC a.geo_key, -# MAGIC 'top_brand_qtd' as KPI_name, -# MAGIC null as kpi_val, -# MAGIC null as kpi_val_ly, -# MAGIC a.top_brand_qtd as str_kpi_val, -# MAGIC a.top_brand_qtd_ly as str_kpi_val_ly, -# MAGIC null as kpi_vol, -# MAGIC null as kpi_vol_ly, -# MAGIC b.top_brand_qtd as str_kpi_vol, -# MAGIC b.top_brand_qtd_ly as str_kpi_vol_ly, -# MAGIC 'N' as TOTAL_FLAG, -# MAGIC a.ta -# MAGIC from tmp_kpi_ytd_value_all a -# MAGIC inner join tmp_kpi_ytd_volume_all b -# MAGIC on a.ta = b.ta -# MAGIC and a.market = b.market -# MAGIC and a.yyyymm = b.yyyymm -# MAGIC and a.geo_key = b.geo_key - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi -# MAGIC -- 8.11 kpi: top_brand_ms_qtd -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC with tmp_kpi_ytd_value as ( -# MAGIC select -# MAGIC distinct -# MAGIC a.ta, -# MAGIC a.market, -# MAGIC a.yyyymm, -# MAGIC d.geo_key, -# MAGIC a.top_brand_ms_qtd -# MAGIC from dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all a -# MAGIC left join dm.dm_zk_retail_geo d -# MAGIC on a.province_city = d.province_city -# MAGIC where a.ranked_by = 'value' -# MAGIC and a.ytd is not null -# MAGIC ), tmp_kpi_ytd_volume as ( -# MAGIC select -# MAGIC distinct -# MAGIC a.ta, -# MAGIC a.market, -# MAGIC a.yyyymm, -# MAGIC d.geo_key, -# MAGIC a.top_brand_ms_qtd -# MAGIC from dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all a -# MAGIC left join dm.dm_zk_retail_geo d -# MAGIC on a.province_city = d.province_city -# MAGIC where a.ranked_by = 'volume' -# MAGIC and a.ytd is not null -# MAGIC ), tmp_kpi_ytd_value_ly as ( -# MAGIC select -# MAGIC ta, -# MAGIC market, -# MAGIC cast(yyyymm + 100 as int ) as yyyymm, -# MAGIC geo_key, -# MAGIC top_brand_ms_qtd -# MAGIC from tmp_kpi_ytd_value -# MAGIC ), tmp_kpi_ytd_volume_ly as ( -# MAGIC select -# MAGIC ta, -# MAGIC market, -# MAGIC cast(yyyymm + 100 as int ) as yyyymm, -# MAGIC geo_key, -# MAGIC top_brand_ms_qtd -# MAGIC from tmp_kpi_ytd_volume -# MAGIC ), tmp_kpi_ytd_value_all as ( -# MAGIC select -# MAGIC a.ta, -# MAGIC a.market, -# MAGIC a.yyyymm, -# MAGIC a.geo_key, -# MAGIC a.top_brand_ms_qtd, -# MAGIC b.top_brand_ms_qtd as top_brand_ms_qtd_ly -# MAGIC from tmp_kpi_ytd_value a -# MAGIC inner join tmp_kpi_ytd_value_ly b -# MAGIC on a.ta = b.ta -# MAGIC and a.market = b.market -# MAGIC and a.yyyymm = b.yyyymm -# MAGIC and a.geo_key = b.geo_key -# MAGIC ), tmp_kpi_ytd_volume_all as ( -# MAGIC select -# MAGIC a.ta, -# MAGIC a.market, -# MAGIC a.yyyymm, -# MAGIC a.geo_key, -# MAGIC a.top_brand_ms_qtd, -# MAGIC b.top_brand_ms_qtd as top_brand_ms_qtd_ly -# MAGIC from tmp_kpi_ytd_volume a -# MAGIC inner join tmp_kpi_ytd_volume_ly b -# MAGIC on a.ta = b.ta -# MAGIC and a.market = b.market -# MAGIC and a.yyyymm = b.yyyymm -# MAGIC and a.geo_key = b.geo_key -# MAGIC ) -# MAGIC -# MAGIC insert into table dws.dws_zk_retail_sales_kpi -# MAGIC -# MAGIC select -# MAGIC distinct -# MAGIC '' as pack_code, -# MAGIC '' as corp_cod, -# MAGIC a.yyyymm, -# MAGIC null as ytd, -# MAGIC a.geo_key, -# MAGIC 'top_brand_ms_qtd' as KPI_name, -# MAGIC a.top_brand_ms_qtd as kpi_val, -# MAGIC a.top_brand_ms_qtd_ly as kpi_val_ly, -# MAGIC null as str_kpi_val, -# MAGIC null as str_kpi_val_ly, -# MAGIC b.top_brand_ms_qtd as kpi_vol, -# MAGIC b.top_brand_ms_qtd_ly as kpi_vol_ly, -# MAGIC null as str_kpi_vol, -# MAGIC null as str_kpi_vol_ly, -# MAGIC 'N' as TOTAL_FLAG, -# MAGIC a.ta -# MAGIC from tmp_kpi_ytd_value_all a -# MAGIC inner join tmp_kpi_ytd_volume_all b -# MAGIC on a.ta = b.ta -# MAGIC and a.market = b.market -# MAGIC and a.yyyymm = b.yyyymm -# MAGIC and a.geo_key = b.geo_key - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi -# MAGIC -- 8.12 kpi: top_brand_inc_ms_qtd -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC with tmp_kpi_ytd_value as ( -# MAGIC select -# MAGIC distinct -# MAGIC a.ta, -# MAGIC a.market, -# MAGIC a.yyyymm, -# MAGIC d.geo_key, -# MAGIC a.top_brand_inc_ms_qtd -# MAGIC from dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all a -# MAGIC left join dm.dm_zk_retail_geo d -# MAGIC on a.province_city = d.province_city -# MAGIC where a.ranked_by = 'value' -# MAGIC and a.ytd is not null -# MAGIC ), tmp_kpi_ytd_volume as ( -# MAGIC select -# MAGIC distinct -# MAGIC a.ta, -# MAGIC a.market, -# MAGIC a.yyyymm, -# MAGIC d.geo_key, -# MAGIC a.top_brand_inc_ms_qtd -# MAGIC from dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all a -# MAGIC left join dm.dm_zk_retail_geo d -# MAGIC on a.province_city = d.province_city -# MAGIC where a.ranked_by = 'volume' -# MAGIC and a.ytd is not null -# MAGIC ), tmp_kpi_ytd_value_ly as ( -# MAGIC select -# MAGIC ta, -# MAGIC market, -# MAGIC cast(yyyymm + 100 as int ) as yyyymm, -# MAGIC geo_key, -# MAGIC top_brand_inc_ms_qtd -# MAGIC from tmp_kpi_ytd_value -# MAGIC ), tmp_kpi_ytd_volume_ly as ( -# MAGIC select -# MAGIC ta, -# MAGIC market, -# MAGIC cast(yyyymm + 100 as int ) as yyyymm, -# MAGIC geo_key, -# MAGIC top_brand_inc_ms_qtd -# MAGIC from tmp_kpi_ytd_volume -# MAGIC ), tmp_kpi_ytd_value_all as ( -# MAGIC select -# MAGIC a.ta, -# MAGIC a.market, -# MAGIC a.yyyymm, -# MAGIC a.geo_key, -# MAGIC a.top_brand_inc_ms_qtd, -# MAGIC b.top_brand_inc_ms_qtd as top_brand_inc_ms_qtd_ly -# MAGIC from tmp_kpi_ytd_value a -# MAGIC inner join tmp_kpi_ytd_value_ly b -# MAGIC on a.ta = b.ta -# MAGIC and a.market = b.market -# MAGIC and a.yyyymm = b.yyyymm -# MAGIC and a.geo_key = b.geo_key -# MAGIC ), tmp_kpi_ytd_volume_all as ( -# MAGIC select -# MAGIC a.ta, -# MAGIC a.market, -# MAGIC a.yyyymm, -# MAGIC a.geo_key, -# MAGIC a.top_brand_inc_ms_qtd, -# MAGIC b.top_brand_inc_ms_qtd as top_brand_inc_ms_qtd_ly -# MAGIC from tmp_kpi_ytd_volume a -# MAGIC inner join tmp_kpi_ytd_volume_ly b -# MAGIC on a.ta = b.ta -# MAGIC and a.market = b.market -# MAGIC and a.yyyymm = b.yyyymm -# MAGIC and a.geo_key = b.geo_key -# MAGIC ) -# MAGIC -# MAGIC insert into table dws.dws_zk_retail_sales_kpi -# MAGIC -# MAGIC select -# MAGIC distinct -# MAGIC '' as pack_code, -# MAGIC '' as corp_cod, -# MAGIC a.yyyymm, -# MAGIC null as ytd, -# MAGIC a.geo_key, -# MAGIC 'top_brand_inc_ms_qtd' as KPI_name, -# MAGIC a.top_brand_inc_ms_qtd as kpi_val, -# MAGIC a.top_brand_inc_ms_qtd_ly as kpi_val_ly, -# MAGIC null as str_kpi_val, -# MAGIC null as str_kpi_val_ly, -# MAGIC b.top_brand_inc_ms_qtd as kpi_vol, -# MAGIC b.top_brand_inc_ms_qtd_ly as kpi_vol_ly, -# MAGIC null as str_kpi_vol, -# MAGIC null as str_kpi_vol_ly, -# MAGIC 'N' as TOTAL_FLAG, -# MAGIC a.ta -# MAGIC from tmp_kpi_ytd_value_all a -# MAGIC inner join tmp_kpi_ytd_volume_all b -# MAGIC on a.ta = b.ta -# MAGIC and a.market = b.market -# MAGIC and a.yyyymm = b.yyyymm -# MAGIC and a.geo_key = b.geo_key - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi -# MAGIC -- 8.13 kpi: top_brand_gr_qtd -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC with tmp_kpi_ytd_value as ( -# MAGIC select -# MAGIC distinct -# MAGIC a.ta, -# MAGIC a.market, -# MAGIC a.yyyymm, -# MAGIC d.geo_key, -# MAGIC a.top_brand_gr_qtd -# MAGIC from dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all a -# MAGIC left join dm.dm_zk_retail_geo d -# MAGIC on a.province_city = d.province_city -# MAGIC where a.ranked_by = 'value' -# MAGIC and a.ytd is not null -# MAGIC ), tmp_kpi_ytd_volume as ( -# MAGIC select -# MAGIC distinct -# MAGIC a.ta, -# MAGIC a.market, -# MAGIC a.yyyymm, -# MAGIC d.geo_key, -# MAGIC a.top_brand_gr_qtd -# MAGIC from dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all a -# MAGIC left join dm.dm_zk_retail_geo d -# MAGIC on a.province_city = d.province_city -# MAGIC where a.ranked_by = 'volume' -# MAGIC and a.ytd is not null -# MAGIC ), tmp_kpi_ytd_value_ly as ( -# MAGIC select -# MAGIC ta, -# MAGIC market, -# MAGIC cast(yyyymm + 100 as int ) as yyyymm, -# MAGIC geo_key, -# MAGIC top_brand_gr_qtd -# MAGIC from tmp_kpi_ytd_value -# MAGIC ), tmp_kpi_ytd_volume_ly as ( -# MAGIC select -# MAGIC ta, -# MAGIC market, -# MAGIC cast(yyyymm + 100 as int ) as yyyymm, -# MAGIC geo_key, -# MAGIC top_brand_gr_qtd -# MAGIC from tmp_kpi_ytd_volume -# MAGIC ), tmp_kpi_ytd_value_all as ( -# MAGIC select -# MAGIC a.ta, -# MAGIC a.market, -# MAGIC a.yyyymm, -# MAGIC a.geo_key, -# MAGIC a.top_brand_gr_qtd, -# MAGIC b.top_brand_gr_qtd as top_brand_gr_qtd_ly -# MAGIC from tmp_kpi_ytd_value a -# MAGIC inner join tmp_kpi_ytd_value_ly b -# MAGIC on a.ta = b.ta -# MAGIC and a.market = b.market -# MAGIC and a.yyyymm = b.yyyymm -# MAGIC and a.geo_key = b.geo_key -# MAGIC ), tmp_kpi_ytd_volume_all as ( -# MAGIC select -# MAGIC a.ta, -# MAGIC a.market, -# MAGIC a.yyyymm, -# MAGIC a.geo_key, -# MAGIC a.top_brand_gr_qtd, -# MAGIC b.top_brand_gr_qtd as top_brand_gr_qtd_ly -# MAGIC from tmp_kpi_ytd_volume a -# MAGIC inner join tmp_kpi_ytd_volume_ly b -# MAGIC on a.ta = b.ta -# MAGIC and a.market = b.market -# MAGIC and a.yyyymm = b.yyyymm -# MAGIC and a.geo_key = b.geo_key -# MAGIC ) -# MAGIC -# MAGIC insert into table dws.dws_zk_retail_sales_kpi -# MAGIC -# MAGIC select -# MAGIC distinct -# MAGIC '' as pack_code, -# MAGIC '' as corp_cod, -# MAGIC a.yyyymm, -# MAGIC null as ytd, -# MAGIC a.geo_key, -# MAGIC 'top_brand_gr_qtd' as KPI_name, -# MAGIC a.top_brand_gr_qtd as kpi_val, -# MAGIC a.top_brand_gr_qtd_ly as kpi_val_ly, -# MAGIC null as str_kpi_val, -# MAGIC null as str_kpi_val_ly, -# MAGIC b.top_brand_gr_qtd as kpi_vol, -# MAGIC b.top_brand_gr_qtd_ly as kpi_vol_ly, -# MAGIC null as str_kpi_vol, -# MAGIC null as str_kpi_vol_ly, -# MAGIC 'N' as TOTAL_FLAG, -# MAGIC a.ta -# MAGIC from tmp_kpi_ytd_value_all a -# MAGIC inner join tmp_kpi_ytd_volume_all b -# MAGIC on a.ta = b.ta -# MAGIC and a.market = b.market -# MAGIC and a.yyyymm = b.yyyymm -# MAGIC and a.geo_key = b.geo_key - -# COMMAND ---------- - -# MAGIC %md -# MAGIC ### PART-2:TOP数据(8个) -# MAGIC - top1_brand_val -# MAGIC - top1_brand_gr -# MAGIC - top2_brand_val -# MAGIC - top2_brand_gr -# MAGIC - top1_incremental_brand -# MAGIC - top1_incremental_gr -# MAGIC - top2_incremental_brand -# MAGIC - top2_incremental_gr - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi -# MAGIC -- 将RX市场数据合并并处理数据格式获取code -# MAGIC -- -------关联 corp code -# MAGIC -- -------是否total 数据打标 -# MAGIC -- -------格式处理 -# MAGIC -- -------dm 使用 niad 数据 -# MAGIC -- -------全国数据 地理编码 为 roc -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC insert overwrite table tmp.tmp_zk_retail_rx_ta_and_top_corp -# MAGIC select -# MAGIC distinct -# MAGIC case WHEN right(corporation,3) ='TTL' THEN 'ta_total' else 'ta_corp' end data_type -# MAGIC ,case when replace(a.rx_type,' TTL','') ='NIAD' THEN 'DM' -# MAGIC when replace(a.rx_type,' TTL','') ='GI-Rx+OTC' then 'GI' -# MAGIC ELSE replace(a.rx_type,' TTL','') END ta -# MAGIC ,nvl(b.CORP_COD ,CORP_COD) CORP_COD -# MAGIC ,CASE WHEN right(corporation,3) ='TTL' THEN 'Y' else 'N' end TOTAL_FLAG -# MAGIC ,a.quarter_flag YTD -# MAGIC ,'ROC' GEO_KEY -# MAGIC ,replace(a.top1_brand_val,'-','') top1_brand_val -# MAGIC ,coalesce(cast(a.top1_brand_gr as double ),0 ) top1_brand_gr -# MAGIC ,replace(a.top2_brand_val,'-','') top2_brand_val -# MAGIC ,coalesce(cast(a.top2_brand_gr as double ),0 ) top2_brand_gr -# MAGIC ,replace(a.top1_incremental_brand,'-','') top1_incremental_brand -# MAGIC ,coalesce(cast(a.top1_incremental_gr as double ),0 ) top1_incremental_gr -# MAGIC ,replace(a.top2_incremental_brand,'-','') top2_incremental_brand -# MAGIC ,coalesce(cast(a.top2_incremental_gr as double ),0 ) top2_incremental_gr -# MAGIC from dwd.dwd_gnd_ext_retail_rx_ta_top_corp a -# MAGIC left join (select ZK_Corp_C,max(case when CORP_COD ='F+N' then 'A5Z' ELSE CORP_COD END ) CORP_COD from dwd.dwd_inc_gnd_retail_b2c_label_total group by ZK_Corp_C ) b -# MAGIC on a.corporation = b.ZK_Corp_C -# MAGIC WHERE rx_type <>'DM' -# MAGIC UNION ALL -# MAGIC select -# MAGIC distinct -# MAGIC case WHEN right(corporation,3) ='TTL' THEN 'ta_total' else 'ta_corp' end data_type -# MAGIC ,replace(a.rx_type,' TTL','') ta -# MAGIC ,nvl(b.CORP_COD ,CORP_COD) CORP_COD -# MAGIC ,CASE WHEN right(corporation,3) ='TTL' THEN 'Y' else 'N' end TOTAL_FLAG -# MAGIC ,a.quarter_flag YTD -# MAGIC ,'ROC' GEO_KEY -# MAGIC ,replace(a.top1_brand_val,'-','') top1_brand_val -# MAGIC ,coalesce(cast(a.top1_brand_gr as double ) ,0 ) top1_brand_gr -# MAGIC ,replace(a.top2_brand_val,'-','') top2_brand_val -# MAGIC ,coalesce(cast(a.top2_brand_gr as double ) ,0 ) top2_brand_gr -# MAGIC ,replace(a.top1_incremental_brand,'-','') top1_incremental_brand -# MAGIC ,coalesce(cast(a.top1_incremental_gr as double ),0 ) top1_incremental_gr -# MAGIC ,replace(a.top2_incremental_brand,'-','') top2_incremental_brand -# MAGIC ,coalesce(cast(a.top2_incremental_gr as double ) ,0 ) top2_incremental_gr -# MAGIC from dwd.dwd_gnd_ext_retail_rx_ta_top_corp a -# MAGIC left join (select ZK_Corp_C,max(case when CORP_COD ='F+N' then 'A5Z' ELSE CORP_COD END ) CORP_COD from dwd.dwd_inc_gnd_retail_b2c_label_total group by ZK_Corp_C ) b -# MAGIC on a.corporation = b.ZK_Corp_C -# MAGIC WHERE rx_type ='NIAD' -# MAGIC union all -# MAGIC select distinct -# MAGIC 'top_corp' data_type -# MAGIC ,NULL ta -# MAGIC ,nvl(b.CORP_COD,a.corporation) CORP_COD -# MAGIC ,'Y' TOTAL_FLAG -# MAGIC ,a.quarter_flag -# MAGIC ,'ROC' GEO_KEY -# MAGIC ,replace(a.top1_brand_val,'-','') top1_brand_val -# MAGIC ,coalesce(cast(a.top1_brand_gr as double ),0 ) top1_brand_gr -# MAGIC ,replace(a.top2_brand_val,'-','') top2_brand_val -# MAGIC ,coalesce(cast(a.top2_brand_gr as double ),0 ) top2_brand_gr -# MAGIC ,replace(a.top1_incremental_brand,'-','') top1_incremental_brand -# MAGIC ,coalesce(cast(a.top1_incremental_gr as double ) ,0 ) top1_incremental_gr -# MAGIC ,replace(a.top2_incremental_brand,'-','') top2_incremental_brand -# MAGIC ,coalesce(cast(a.top2_incremental_gr as double ) ,0 ) top2_incremental_gr -# MAGIC from dwd.dwd_gnd_ext_retail_rx_top_corp a -# MAGIC left join (select ZK_Corp,max(case when CORP_COD ='F+N' then 'A5Z' ELSE CORP_COD END ) CORP_COD from dwd.dwd_inc_gnd_retail_b2c_label_total group by ZK_Corp ) b -# MAGIC on a.corporation = b.ZK_Corp -# MAGIC - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi -# MAGIC -- 8.14 top1_brand_val -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -# MAGIC insert into table dws.dws_zk_retail_sales_kpi -# MAGIC -# MAGIC SELECT distinct -# MAGIC '' pack_code -# MAGIC ,corp_cod -# MAGIC ,NULL YYYYMM -# MAGIC ,ytd -# MAGIC ,geo_key -# MAGIC ,'top1_brand_val' kpi_name -# MAGIC ,null kpi_val -# MAGIC ,NULL kpi_val_ly -# MAGIC ,top1_brand_val str_kpi_val -# MAGIC ,NULL str_kpi_val_ly -# MAGIC ,null kpi_vol -# MAGIC ,null kpi_vol_ly -# MAGIC ,null str_kpi_vol -# MAGIC ,null str_kpi_vol_ly -# MAGIC ,TOTAL_FLAG -# MAGIC ,ta -# MAGIC from tmp.tmp_zk_retail_rx_ta_and_top_corp -# MAGIC -# MAGIC - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi -# MAGIC -- 8.15 top1_brand_gr -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -# MAGIC insert into table dws.dws_zk_retail_sales_kpi -# MAGIC -# MAGIC SELECT distinct -# MAGIC '' pack_code -# MAGIC ,corp_cod -# MAGIC ,NULL YYYYMM -# MAGIC ,ytd -# MAGIC ,geo_key -# MAGIC ,'top1_brand_gr' kpi_name -# MAGIC ,top1_brand_gr kpi_val -# MAGIC ,NULL kpi_val_ly -# MAGIC ,NULL str_kpi_val -# MAGIC ,NULL str_kpi_val_ly -# MAGIC ,null kpi_vol -# MAGIC ,null kpi_vol_ly -# MAGIC ,null str_kpi_vol -# MAGIC ,null str_kpi_vol_ly -# MAGIC ,TOTAL_FLAG -# MAGIC ,ta -# MAGIC from tmp.tmp_zk_retail_rx_ta_and_top_corp - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi -# MAGIC -- 8.16 top2_brand_val -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -# MAGIC insert into table dws.dws_zk_retail_sales_kpi -# MAGIC -# MAGIC SELECT distinct -# MAGIC '' pack_code -# MAGIC ,corp_cod -# MAGIC ,NULL YYYYMM -# MAGIC ,ytd -# MAGIC ,geo_key -# MAGIC ,'top2_brand_val' kpi_name -# MAGIC ,null kpi_val -# MAGIC ,NULL kpi_val_ly -# MAGIC ,top2_brand_val str_kpi_val -# MAGIC ,NULL str_kpi_val_ly -# MAGIC ,null kpi_vol -# MAGIC ,null kpi_vol_ly -# MAGIC ,null str_kpi_vol -# MAGIC ,null str_kpi_vol_ly -# MAGIC ,TOTAL_FLAG -# MAGIC ,ta -# MAGIC from tmp.tmp_zk_retail_rx_ta_and_top_corp - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi -# MAGIC -- 8.17 top2_brand_gr -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -# MAGIC insert into table dws.dws_zk_retail_sales_kpi -# MAGIC -# MAGIC SELECT distinct -# MAGIC '' pack_code -# MAGIC ,corp_cod -# MAGIC ,NULL YYYYMM -# MAGIC ,ytd -# MAGIC ,geo_key -# MAGIC ,'top2_brand_gr' kpi_name -# MAGIC ,top2_brand_gr kpi_val -# MAGIC ,NULL kpi_val_ly -# MAGIC ,NULL str_kpi_val -# MAGIC ,NULL str_kpi_val_ly -# MAGIC ,null kpi_vol -# MAGIC ,null kpi_vol_ly -# MAGIC ,null str_kpi_vol -# MAGIC ,null str_kpi_vol_ly -# MAGIC ,TOTAL_FLAG -# MAGIC ,ta -# MAGIC from tmp.tmp_zk_retail_rx_ta_and_top_corp -# MAGIC - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi -# MAGIC -- 8.18 top1_incremental_brand -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -# MAGIC insert into table dws.dws_zk_retail_sales_kpi -# MAGIC -# MAGIC SELECT distinct -# MAGIC '' pack_code -# MAGIC ,corp_cod -# MAGIC ,NULL YYYYMM -# MAGIC ,ytd -# MAGIC ,geo_key -# MAGIC ,'top1_incremental_brand' kpi_name -# MAGIC ,null kpi_val -# MAGIC ,NULL kpi_val_ly -# MAGIC ,top1_incremental_brand str_kpi_val -# MAGIC ,NULL str_kpi_val_ly -# MAGIC ,null kpi_vol -# MAGIC ,null kpi_vol_ly -# MAGIC ,null str_kpi_vol -# MAGIC ,null str_kpi_vol_ly -# MAGIC ,TOTAL_FLAG -# MAGIC ,ta -# MAGIC from tmp.tmp_zk_retail_rx_ta_and_top_corp - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi -# MAGIC -- 8.19 top1_incremental_gr -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -# MAGIC insert into table dws.dws_zk_retail_sales_kpi -# MAGIC -# MAGIC SELECT distinct -# MAGIC '' pack_code -# MAGIC ,corp_cod -# MAGIC ,NULL YYYYMM -# MAGIC ,ytd -# MAGIC ,geo_key -# MAGIC ,'top1_incremental_gr' kpi_name -# MAGIC ,top1_incremental_gr kpi_val -# MAGIC ,NULL kpi_val_ly -# MAGIC ,NULL str_kpi_val -# MAGIC ,NULL str_kpi_val_ly -# MAGIC ,null kpi_vol -# MAGIC ,null kpi_vol_ly -# MAGIC ,null str_kpi_vol -# MAGIC ,null str_kpi_vol_ly -# MAGIC ,TOTAL_FLAG -# MAGIC ,ta -# MAGIC from tmp.tmp_zk_retail_rx_ta_and_top_corp - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi -# MAGIC -- 8.20 top2_incremental_brand -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -# MAGIC insert into table dws.dws_zk_retail_sales_kpi -# MAGIC -# MAGIC SELECT distinct -# MAGIC '' pack_code -# MAGIC ,corp_cod -# MAGIC ,NULL YYYYMM -# MAGIC ,ytd -# MAGIC ,geo_key -# MAGIC ,'top2_incremental_brand' kpi_name -# MAGIC ,null kpi_val -# MAGIC ,NULL kpi_val_ly -# MAGIC ,top2_incremental_brand str_kpi_val -# MAGIC ,NULL str_kpi_val_ly -# MAGIC ,null kpi_vol -# MAGIC ,null kpi_vol_ly -# MAGIC ,null str_kpi_vol -# MAGIC ,null str_kpi_vol_ly -# MAGIC ,TOTAL_FLAG -# MAGIC ,ta -# MAGIC from tmp.tmp_zk_retail_rx_ta_and_top_corp - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi -# MAGIC -- 8.21 top2_incremental_gr -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -# MAGIC insert into table dws.dws_zk_retail_sales_kpi -# MAGIC -# MAGIC SELECT distinct -# MAGIC '' pack_code -# MAGIC ,corp_cod -# MAGIC ,NULL YYYYMM -# MAGIC ,ytd -# MAGIC ,geo_key -# MAGIC ,'top2_incremental_gr' kpi_name -# MAGIC ,top2_incremental_gr kpi_val -# MAGIC ,NULL kpi_val_ly -# MAGIC ,NULL str_kpi_val -# MAGIC ,NULL str_kpi_val_ly -# MAGIC ,null kpi_vol -# MAGIC ,null kpi_vol_ly -# MAGIC ,null str_kpi_vol -# MAGIC ,null str_kpi_vol_ly -# MAGIC ,TOTAL_FLAG -# MAGIC ,ta -# MAGIC from tmp.tmp_zk_retail_rx_ta_and_top_corp - -# COMMAND ---------- - -# MAGIC %md -# MAGIC ### PART-3:增量数据(1个) -# MAGIC - corp_type_sales_amount - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi -# MAGIC -- 8.22 处理增量数据 corp_type_sales_amount -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -# MAGIC insert into table dws.dws_zk_retail_sales_kpi -# MAGIC -# MAGIC select distinct -# MAGIC '' pack_code -# MAGIC ,bq.type_name corp_cod -# MAGIC ,cast(bq.sales_quarter as int) yyyymm -# MAGIC ,null ytd -# MAGIC ,'ROC' geo_key -# MAGIC ,'corp_type_sales_amount' kpi_name -# MAGIC ,bq.sales_amount * 1000000 kpi_val -# MAGIC ,tq.sales_amount * 1000000 kpi_val_ly -# MAGIC ,NULL str_kpi_val -# MAGIC ,NULL str_kpi_val_ly -# MAGIC ,null kpi_vol -# MAGIC ,null kpi_vol_ly -# MAGIC ,null str_kpi_vol -# MAGIC ,null tr_kpi_vol_ly -# MAGIC ,'Y' TOTAL_FLAG -# MAGIC ,null ta -# MAGIC from dwd.dwd_gnd_ext_retail_rx_market bq -# MAGIC left join dwd.dwd_gnd_ext_retail_rx_market tq -# MAGIC on bq.type_name=tq.type_name -# MAGIC and cast(bq.sales_quarter as int) = cast(tq.sales_quarter + 100 as int) - -# COMMAND ---------- - -# MAGIC %md -# MAGIC ### PART-4:top corp及rank(2个) -# MAGIC - top_corp_sales_amount -# MAGIC - top_corp_rank - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi -# MAGIC -- 8.23&24 top_corp_sales_amount & top_corp_rank -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -# MAGIC with top_corp_total as ( -# MAGIC ----------------------处理top_corp 大数-------------------- -# MAGIC ---------关联 corp code 特殊:dwd_inc_gnd_retail_b2c_label_total 这个表 az 公司有两个code ,需要取A5Z 那个 -# MAGIC ---------是否total 数据打标 -# MAGIC ---------格式处理 -# MAGIC ---------dm 使用 niad 数据 -# MAGIC ---------全国数据 地理编码 为 roc -# MAGIC select -# MAGIC a.corp_desc, -# MAGIC 'top_corp' data_type -# MAGIC ,b.CORP_COD -# MAGIC ,'Y' TOTAL_FLAG -# MAGIC ,a.sales_quarter -# MAGIC ,cast(a.sales_quarter as int) yyyymm -# MAGIC ,'ROC' geo_key -# MAGIC ,a.sales_amount*1000000 sales_amount -# MAGIC ,c.sales_amount*1000000 sales_amount_ly -# MAGIC ,a.rank1 -# MAGIC ,null ta -# MAGIC FROM dwd.dwd_gnd_ext_retail_nataional_top_corp a -# MAGIC left join ( -# MAGIC select ZK_Corp_C,max(case when CORP_COD ='F+N' then 'A5Z' ELSE CORP_COD END ) CORP_COD -# MAGIC from dwd.dwd_inc_gnd_retail_b2c_label_total group by ZK_Corp_C -# MAGIC ) b on a.corp_desc= b.ZK_Corp_C -# MAGIC left join dwd.dwd_gnd_ext_retail_nataional_top_corp c -# MAGIC on a.corp_desc= c.corp_desc -# MAGIC and nvl(a.corp_type,'' ) = nvl(c.corp_type,'' ) -# MAGIC and cast(a.sales_quarter as int) =cast(c.sales_quarter as int)+100 -# MAGIC where a.rank1 is not null -# MAGIC -# MAGIC unioN all -# MAGIC -# MAGIC select -# MAGIC a.corp_desc, -# MAGIC 'top_ta_corp' data_type -# MAGIC ,B.CORP_COD --A.corp_name as CORP_COD, --自有的corp_name 是 corp_code -# MAGIC ,case when A.corp_name is null then 'Y' ELSE 'N' END TOTAL_FLAG -# MAGIC ,a.sales_quarter -# MAGIC ,cast(a.sales_quarter as int) yyyymm -# MAGIC ,'ROC' geo_key -# MAGIC ,a.sales_amount*1000000 sales_amount -# MAGIC ,c.sales_amount*1000000 sales_amount_ly -# MAGIC ,a.rank1 -# MAGIC ,CASE WHEN trim(a.source_name) ='GI-Rx+OTC' THEN 'GI' ELSE trim(a.source_name) END ta -# MAGIC FROM dwd.dwd_gnd_ext_retail_nataional_ta_top_corp a -# MAGIC left join ( -# MAGIC select ZK_Corp_C,max(case when CORP_COD ='F+N' then 'A5Z' ELSE CORP_COD END ) CORP_COD -# MAGIC from dwd.dwd_inc_gnd_retail_b2c_label_total group by ZK_Corp_C -# MAGIC ) b on a.corp_desc= b.ZK_Corp_C -# MAGIC left join dwd.dwd_gnd_ext_retail_nataional_ta_top_corp c -# MAGIC on a.corp_desc= c.corp_desc -# MAGIC and nvl(a.corp_type,'' ) = nvl(c.corp_type,'' ) -# MAGIC and cast(a.sales_quarter as int) =cast(c.sales_quarter as int)+100 -# MAGIC and a.source_name =c.source_name -# MAGIC WHERE trim(a.source_name) <>'DM' -# MAGIC -# MAGIC UNION ALL -# MAGIC -# MAGIC select -# MAGIC CASE WHEN a.corp_desc='NIAD' THEN 'DM' ELSE a.corp_desc END corp_desc, -# MAGIC 'top_ta_corp' data_type -# MAGIC ,B.CORP_COD --A.corp_name as CORP_COD, --自有的corp_name 是 corp_code -# MAGIC ,case when A.corp_name is null then 'Y' ELSE 'N' END TOTAL_FLAG -# MAGIC ,a.sales_quarter -# MAGIC ,cast(a.sales_quarter as int) yyyymm -# MAGIC ,'ROC' geo_key -# MAGIC ,a.sales_amount*1000000 sales_amount -# MAGIC ,c.sales_amount*1000000 sales_amount_ly -# MAGIC ,a.rank1 -# MAGIC ,'DM' ta -# MAGIC FROM dwd.dwd_gnd_ext_retail_nataional_ta_top_corp a -# MAGIC left join ( -# MAGIC select ZK_Corp_C,max(case when CORP_COD ='F+N' then 'A5Z' ELSE CORP_COD END ) CORP_COD -# MAGIC from dwd.dwd_inc_gnd_retail_b2c_label_total group by ZK_Corp_C -# MAGIC ) b on a.corp_desc= b.ZK_Corp_C -# MAGIC left join dwd.dwd_gnd_ext_retail_nataional_ta_top_corp c -# MAGIC on a.corp_desc= c.corp_desc -# MAGIC and nvl(a.corp_type,'' ) = nvl(c.corp_type,'' ) -# MAGIC and cast(a.sales_quarter as int) =cast(c.sales_quarter as int)+100 -# MAGIC and a.source_name =c.source_name -# MAGIC WHERE trim(a.source_name) ='NIAD' -# MAGIC ) -# MAGIC -# MAGIC -- 处理top corp 及 rank 数据 -# MAGIC insert into table dws.dws_zk_retail_sales_kpi -# MAGIC -# MAGIC select DISTINCT -# MAGIC '' pack_code -# MAGIC ,corp_cod -# MAGIC ,yyyymm -# MAGIC ,null ytd -# MAGIC ,geo_key -# MAGIC ,'top_corp_sales_amount' kpi_name -# MAGIC ,sales_amount kpi_val -# MAGIC ,sales_amount_ly kpi_val_ly -# MAGIC ,NULL str_kpi_val -# MAGIC ,NULL str_kpi_val_ly -# MAGIC ,null kpi_vol -# MAGIC ,null kpi_vol_ly -# MAGIC ,null str_kpi_vol -# MAGIC ,null str_kpi_vol_ly -# MAGIC ,TOTAL_FLAG -# MAGIC ,ta -# MAGIC from top_corp_total -# MAGIC union all -# MAGIC select distinct -# MAGIC '' pack_code -# MAGIC ,corp_cod -# MAGIC ,yyyymm -# MAGIC ,null ytd -# MAGIC ,geo_key -# MAGIC ,'top_corp_rank' kpi_name -# MAGIC ,rank1 kpi_val -# MAGIC ,null kpi_val_ly -# MAGIC ,NULL str_kpi_val -# MAGIC ,NULL str_kpi_val_ly -# MAGIC ,null kpi_vol -# MAGIC ,null kpi_vol_ly -# MAGIC ,null str_kpi_vol -# MAGIC ,null str_kpi_vol_ly -# MAGIC ,TOTAL_FLAG -# MAGIC ,ta -# MAGIC from top_corp_total -# MAGIC where lower(rank1) <> 'Total' -# MAGIC - -# COMMAND ---------- - -# MAGIC %md -# MAGIC ### PART-5:DTP指标(2个) -# MAGIC - top_corp_rank -# MAGIC - top_corp_sales_amount - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi -# MAGIC -- 8.25&26 top_corp_rank & top_corp_sales_amount -# MAGIC -- 将dtp 数据转换成 kpi 格式--- -# MAGIC -- 品牌数据 初始 -# MAGIC -- 关联公司code -# MAGIC -- 处理pack code -# MAGIC -- 处理格式 -# MAGIC -- total flag 打标 -# MAGIC -- dtp 所有数据的ta 均为 ONCO -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -# MAGIC with tmp as ( -# MAGIC -------------获取dtp top brand的本同期数据-------------------------- -# MAGIC select -# MAGIC cast(top_corp.sales_quarter as int ) yyyymm -# MAGIC ,top_corp.sales_quarter -# MAGIC ,replace(top_corp.rank1,'-','') rank1 -# MAGIC ,replace(top_corp.corp_name,'-','') crp_name -# MAGIC ,top_corp.brand_name -# MAGIC ,case when top_corp.brand_name ='Others' then 'Others' else zk.IQVIA_PROD_CODE end iqvia_prod_code -# MAGIC ,case when top_corp.brand_name ='Others' then 'Others' else brand.iqvia_pack_code end iqvia_pack_code -# MAGIC ,zk.CORP_COD -# MAGIC -- ,top_corp.source_name -# MAGIC ,top_corp.sales_amount*1000000 sales_amount -# MAGIC ,tq.sales_amount*1000000 sales_amount_ly -# MAGIC ,'Y' TOTAL_FLAG -# MAGIC from dwd.dwd_gnd_ext_retail_dtp_top_brand top_corp -# MAGIC left join dwd.dwd_gnd_ext_retail_dtp_top_brand tq -# MAGIC on cast(top_corp.sales_quarter as int ) = cast(tq.sales_quarter+100 as int ) -# MAGIC and nvl(top_corp.corp_name,'') = nvl(tq.corp_name,'' ) -# MAGIC and tq.rank1 =top_corp.rank1 and nvl(top_corp.brand_name,'' ) =nvl(tq.brand_name,'' ) -# MAGIC left join ( -# MAGIC select -# MAGIC distinct -# MAGIC ZK_Prod_C, -# MAGIC ----------------------------------------------------- -# MAGIC -- format IQVIA_PROD_CODE -# MAGIC case when length(IQVIA_PROD_CODE) < 9 then right(concat('000000000',IQVIA_PROD_CODE),9) else IQVIA_PROD_CODE end as IQVIA_PROD_CODE, -# MAGIC ----------------------------------------------------- -# MAGIC ZK_Corp_C, -# MAGIC CORP_COD -# MAGIC from dwd.dwd_inc_gnd_retail_b2c_label_total -# MAGIC )zk on top_corp.brand_name = zk.ZK_Prod_C AND replace(top_corp.corp_name,'-','')=zk.ZK_Corp_C -# MAGIC left join ( -# MAGIC select PROD_COD IQVIA_PROD_CODE,max(PACK_COD) iqvia_pack_code,CORP_COD -# MAGIC from dm.dm_ims_td_pack_property group by PROD_COD,CORP_COD -# MAGIC ) brand on zk.IQVIA_PROD_CODE = brand.iqvia_prod_code AND replace(zk.CORP_COD,'-','')=brand.corp_cod -# MAGIC -# MAGIC UNION all -# MAGIC -# MAGIC -------获取 dtp top corp的本同期数据------------ -# MAGIC select -# MAGIC cast(top_corp.sales_quarter as int ) yyyymm -# MAGIC ,top_corp.sales_quarter -# MAGIC ,replace(top_corp.rank1,'-','') rank1 -# MAGIC ,replace(top_corp.corp_name,'-','') corp_name -# MAGIC ,'' brand_name -# MAGIC ,''iqvia_prod_code -# MAGIC ,'' iqvia_pack_code -# MAGIC ,case when replace(top_corp.corp_name,'-','') ='Others' then '' else pack.corp_cod end corp_cod -# MAGIC -- ,top_corp.source_name -# MAGIC ,top_corp.sales_amount*1000000 sales_amount -# MAGIC ,tq.sales_amount*1000000 sales_amount_ly -# MAGIC --,case when replace(top_corp.rank1,'-','') ='' then 'Y' ELSE 'N' END TOTAL_FLAG -# MAGIC ,'Y' TOTAL_FLAG -# MAGIC from dwd.dwd_gnd_ext_retail_dtp_top_copd top_corp -# MAGIC left join dwd.dwd_gnd_ext_retail_dtp_top_copd tq -# MAGIC on cast(top_corp.sales_quarter as int ) = cast(tq.sales_quarter+100 as int ) -# MAGIC and nvl(top_corp.corp_name,'') = nvl(tq.corp_name,'' ) -# MAGIC and tq.rank1 =top_corp.rank1 -# MAGIC -- left join (select zk_corp_des,max(corp_cod) corp_cod from dwd.dwd_inc_gnd_retail_b2c_label_total group by zk_corp_des) pack -# MAGIC left join ( -# MAGIC select distinct ZK_Corp_C,CORP_COD from dwd.dwd_inc_gnd_retail_b2c_label_total -# MAGIC ) pack on replace(top_corp.corp_name,'-','') = pack.ZK_Corp_C -# MAGIC ) -# MAGIC -# MAGIC insert overwrite table dws.dws_zk_retail_dtp_sales_kpi -# MAGIC -# MAGIC select distinct -# MAGIC iqvia_prod_code pack_code -# MAGIC ,corp_cod -# MAGIC ,'ONCO' ta -# MAGIC ,yyyymm -# MAGIC ,null ytd -# MAGIC ,'ROC' geo_key -# MAGIC ,'top_corp_rank' kpi_name -# MAGIC ,cast(rank1 as double) kpi_val -# MAGIC ,null kpi_val_ly -# MAGIC ,null str_kpi_val -# MAGIC ,null str_kpi_val_ly -# MAGIC ,null kpi_vol -# MAGIC ,null kpi_vol_ly -# MAGIC ,null str_kpi_vol -# MAGIC ,null str_kpi_vol_ly -# MAGIC ,TOTAL_FLAG -# MAGIC -- ,null ta -# MAGIC from tmp where rank1 !='' -# MAGIC -# MAGIC union all -# MAGIC -# MAGIC select distinct -# MAGIC iqvia_prod_code pack_code -# MAGIC ,corp_cod -# MAGIC ,'ONCO' ta -# MAGIC ,yyyymm -# MAGIC ,null ytd -# MAGIC ,'ROC' geo_key -# MAGIC ,'top_corp_sales_amount' kpi_name -# MAGIC ,sales_amount kpi_val -# MAGIC ,sales_amount_ly kpi_val_ly -# MAGIC ,null str_kpi_val -# MAGIC ,null str_kpi_val_ly -# MAGIC ,null kpi_vol -# MAGIC ,null kpi_vol_ly -# MAGIC ,null str_kpi_vol -# MAGIC ,null str_kpi_vol_ly -# MAGIC ,TOTAL_FLAG -# MAGIC -- ,null ta -# MAGIC from tmp - -# COMMAND ---------- - -# MAGIC %md -# MAGIC ### PART-6:自有部分数据(9个) -# MAGIC retail 自有部分数据处理成kpi 形式 -# MAGIC - pack_price_fz -# MAGIC - pack_price_fm -# MAGIC - pack_price_by_counting_unit_fm -# MAGIC - weighted_spread_rate -# MAGIC - digital_spread_rate -# MAGIC - pack_price -# MAGIC - pack_price_by_counting_unit -# MAGIC - num_dist_rate -# MAGIC - weig_dist_rate - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi -# MAGIC -- 8.27 pack_price_fz -# MAGIC -- 在 retail 拆分好的结果表里获取pack 粒度的 price 分子 -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -# MAGIC insert overwrite table dws.dws_zk_retail_sales_own_kpi -# MAGIC -# MAGIC select -# MAGIC a.iqvia_pack_code pack_code -# MAGIC ,a.corp_cod -# MAGIC ,YYYYMM -# MAGIC ,null td -# MAGIC ,a.AUDIT_COD geo_key -# MAGIC ,'pack_price_fz' KPI_name -# MAGIC ,sum(sales_value) kpi_val -# MAGIC ,sum(sales_value_ly) kpi_val_ly -# MAGIC ,null str_kpi_val -# MAGIC ,null str_kpi_val_ly -# MAGIC ,null kpi_vol -# MAGIC ,null kpi_vol_ly -# MAGIC ,null str_kpi_vol -# MAGIC ,null str_kpi_vol_ly -# MAGIC ,'N' TOTAL_FLAG -# MAGIC ,case when a.source[0] = '慢性阻塞性肺疾病' then 'RE' -# MAGIC WHEN A.source[0]= '慢性胃炎、胃溃疡' THEN 'GI' -# MAGIC WHEN A.source[0] = 'NIAD' THEN 'DM' -# MAGIC WHEN A.source[0] IN ('Brilinta Market','他汀类+血脂康','高血压用药','酒石酸美托洛尔') THEN 'CV' -# MAGIC WHEN A.source[0] ='RD Market' THEN 'RD' -# MAGIC END ta -# MAGIC ,a.brand_flag -# MAGIC ,a.pack_flag -# MAGIC from dm.dm_zk_retail_sales a -# MAGIC GROUP BY -# MAGIC a.iqvia_pack_code, -# MAGIC a.corp_cod, -# MAGIC YYYYMM , -# MAGIC a.AUDIT_COD, -# MAGIC case when a.source[0] = '慢性阻塞性肺疾病' then 'RE' -# MAGIC WHEN A.source[0]= '慢性胃炎、胃溃疡' THEN 'GI' -# MAGIC WHEN A.source[0] = 'NIAD' THEN 'DM' -# MAGIC WHEN A.source[0] IN ('Brilinta Market','他汀类+血脂康','高血压用药','酒石酸美托洛尔') THEN 'CV' -# MAGIC WHEN A.source[0] ='RD Market' THEN 'RD' -# MAGIC END, -# MAGIC a.brand_flag, -# MAGIC a.pack_flag -# MAGIC having ta is not null and sum(sales_value) > 0 - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi -# MAGIC -- 8.28 pack_price_fm -# MAGIC -- 在 retail 拆分好的结果表里获取pack 粒度的 price 分母 -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -# MAGIC insert into table dws.dws_zk_retail_sales_own_kpi -# MAGIC -# MAGIC select -# MAGIC a.iqvia_pack_code pack_code -# MAGIC ,a.corp_cod -# MAGIC ,YYYYMM -# MAGIC ,null ytd -# MAGIC ,a.AUDIT_COD geo_key -# MAGIC ,'pack_price_fm' KPI_name -# MAGIC ,sum(a.sales_unit) kpi_val -# MAGIC ,sum(a.sales_unit_ly) kpi_val_ly -# MAGIC ,null str_kpi_val -# MAGIC ,null str_kpi_val_ly -# MAGIC ,null kpi_vol -# MAGIC ,null kpi_vol_ly -# MAGIC ,null str_kpi_vol -# MAGIC ,null str_kpi_vol_ly -# MAGIC ,'N' TOTAL_FLAG -# MAGIC ,case when a.source[0] = '慢性阻塞性肺疾病' then 'RE' -# MAGIC WHEN A.source[0]= '慢性胃炎、胃溃疡' THEN 'GI' -# MAGIC WHEN A.source[0] = 'NIAD' THEN 'DM' -# MAGIC WHEN A.source[0] IN ('Brilinta Market','他汀类+血脂康','高血压用药','酒石酸美托洛尔') THEN 'CV' -# MAGIC WHEN A.source[0] ='RD Market' THEN 'RD' -# MAGIC END ta -# MAGIC ,a.brand_flag -# MAGIC ,a.pack_flag -# MAGIC from dm.dm_zk_retail_sales a -# MAGIC GROUP BY a.iqvia_pack_code ,a.corp_cod,YYYYMM ,a.AUDIT_COD -# MAGIC ,case when a.source[0] = '慢性阻塞性肺疾病' then 'RE' -# MAGIC WHEN A.source[0]= '慢性胃炎、胃溃疡' THEN 'GI' -# MAGIC WHEN A.source[0] = 'NIAD' THEN 'DM' -# MAGIC WHEN A.source[0] IN ('Brilinta Market','他汀类+血脂康','高血压用药','酒石酸美托洛尔') THEN 'CV' -# MAGIC WHEN A.source[0] ='RD Market' THEN 'RD' -# MAGIC END -# MAGIC ,a.brand_flag -# MAGIC ,a.pack_flag -# MAGIC having ta is not null and sum(sales_unit)>0 - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi -# MAGIC -- 8.29 pack_price_by_counting_unit_fm -# MAGIC -- 在 retail 拆分好的结果表里获取pack 粒度的 by counting unit 的 price 分母 -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -# MAGIC insert into table dws.dws_zk_retail_sales_own_kpi -# MAGIC -# MAGIC select -# MAGIC a.iqvia_pack_code pack_code -# MAGIC ,a.corp_cod -# MAGIC ,YYYYMM -# MAGIC ,null ytd -# MAGIC ,a.AUDIT_COD geo_key -# MAGIC ,'pack_price_by_counting_unit_fm' KPI_name -# MAGIC ,sum(a.counting_unit) kpi_val -# MAGIC ,sum(a.counting_unit_ly) kpi_val_ly -# MAGIC ,null str_kpi_val -# MAGIC ,null str_kpi_val_ly -# MAGIC ,null kpi_vol -# MAGIC ,null kpi_vol_ly -# MAGIC ,null str_kpi_vol -# MAGIC ,null str_kpi_vol_ly -# MAGIC ,'N' TOTAL_FLAG -# MAGIC ,case when a.source[0] = '慢性阻塞性肺疾病' then 'RE' -# MAGIC WHEN A.source[0]= '慢性胃炎、胃溃疡' THEN 'GI' -# MAGIC WHEN A.source[0] = 'NIAD' THEN 'DM' -# MAGIC WHEN A.source[0] IN ('Brilinta Market','他汀类+血脂康','高血压用药','酒石酸美托洛尔') THEN 'CV' -# MAGIC WHEN A.source[0] ='RD Market' THEN 'RD' -# MAGIC END ta -# MAGIC ,a.brand_flag -# MAGIC ,a.pack_flag -# MAGIC from dm.dm_zk_retail_sales a -# MAGIC GROUP BY a.iqvia_pack_code ,a.corp_cod,YYYYMM ,a.AUDIT_COD -# MAGIC ,case when a.source[0] = '慢性阻塞性肺疾病' then 'RE' -# MAGIC WHEN A.source[0]= '慢性胃炎、胃溃疡' THEN 'GI' -# MAGIC WHEN A.source[0] = 'NIAD' THEN 'DM' -# MAGIC WHEN A.source[0] IN ('Brilinta Market','他汀类+血脂康','高血压用药','酒石酸美托洛尔') THEN 'CV' -# MAGIC WHEN A.source[0] ='RD Market' THEN 'RD' -# MAGIC END -# MAGIC ,a.brand_flag -# MAGIC ,a.pack_flag -# MAGIC having ta is not null and sum(counting_unit)>0 - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi -# MAGIC -- 将pack表的 price 数据进行处理 -# MAGIC -- 在 retail 拆分好的结果表里获取pack 粒度的 price 分子 -# MAGIC -- 关联 corp code -# MAGIC -- 获取geo_key 后续的audit key -# MAGIC -- 获取ta 值 -# MAGIC -- 获取pack 文件中计算price 的所有指标 及加权铺货率、数字铺货率 -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -# MAGIC with pack_rawdata as ( -# MAGIC select * from tmp.tmp_retail_pack_rawdata where data_flag = 0 -# MAGIC ), tmp_pack_property as ( -# MAGIC ---------------------------------------------------------------- -# MAGIC -- format iqvia_pack_code -# MAGIC select -# MAGIC distinct -# MAGIC case when length(trim(iqvia_pack_code)) < 12 and trim(iqvia_pack_code) REGEXP '^[0-9]' -# MAGIC then right(concat('000000000000',trim(iqvia_pack_code)),12) -# MAGIC else trim(iqvia_pack_code) -# MAGIC end as iqvia_pack_code, -# MAGIC ---------------------------------------------------------------- -# MAGIC product_id -# MAGIC from dwd.dwd_gnd_ext_retail_pack_property -# MAGIC ),a as ( -# MAGIC select -# MAGIC df.brand_flag,df.zk_product_id,YYYYMM,pack.iqvia_pack_code,corp.corp_cod,zk_region -# MAGIC ,sum(sales_value) sales_value -# MAGIC ,sum(sales_unit) sales_unit -# MAGIC ,sum(weighted_spread_rate) weighted_spread_rate -# MAGIC ,sum(digital_spread_rate) digital_spread_rate -# MAGIC ,sum(sales_value_ly) sales_value_ly -# MAGIC ,sum(sales_unit_ly) sales_unit_ly -# MAGIC ,sum(weighted_spread_rate_ly) weighted_spread_rate_ly -# MAGIC ,sum(digital_spread_rate_ly) digital_spread_rate_ly -# MAGIC from ( -# MAGIC select -# MAGIC month as YYYYMM, -# MAGIC product_id as zk_product_id, -# MAGIC zk_regin as zk_region -# MAGIC ,sales_value,sales_unit,weighted_spread_rate,digital_spread_rate -# MAGIC ,0 sales_value_ly -# MAGIC ,0 sales_unit_ly -# MAGIC ,0 weighted_spread_rate_ly -# MAGIC ,0 digital_spread_rate_ly -# MAGIC ,brand_flag -# MAGIC from pack_rawdata -# MAGIC -# MAGIC union all -# MAGIC -# MAGIC select -# MAGIC cast( month + 100 as int ) as yyyymm, -# MAGIC product_id as zk_product_id, -# MAGIC zk_regin as zk_region -# MAGIC ,0 sales_value -# MAGIC ,0 sales_unit -# MAGIC ,0 weighted_spread_rate -# MAGIC ,0 digital_spread_rate -# MAGIC ,sales_value sales_value_ly -# MAGIC ,sales_unit sales_unit_ly -# MAGIC ,weighted_spread_rate weighted_spread_rate_ly -# MAGIC ,digital_spread_rate digital_spread_rate_ly -# MAGIC ,brand_flag -# MAGIC from pack_rawdata -# MAGIC where month + 100 <= (select max(month) FROM pack_rawdata) -# MAGIC ) df -# MAGIC left join tmp_pack_property pack on pack.product_id = df.zk_product_id -# MAGIC left join tmp.tmp_zk_retail_pack_property_corp corp -# MAGIC on pack.iqvia_pack_code = corp.iqvia_pack_code -# MAGIC group by YYYYMM,pack.iqvia_pack_code,corp.corp_cod,zk_region,df.brand_flag,df.zk_product_id -# MAGIC ) -# MAGIC -# MAGIC insert overwrite table tmp.tmp_zk_retail_price -# MAGIC select -# MAGIC distinct -# MAGIC YYYYMM, -# MAGIC zk_product_id, -# MAGIC d.ta, -# MAGIC c.geo_key, -# MAGIC a.iqvia_pack_code, -# MAGIC b.iqvia_prod_code, -# MAGIC b.prod_des_c, -# MAGIC corp_cod, -# MAGIC zk_region, -# MAGIC sales_value, -# MAGIC sales_value_ly, -# MAGIC sales_unit, -# MAGIC sales_unit_ly, -# MAGIC weighted_spread_rate, -# MAGIC weighted_spread_rate_ly, -# MAGIC digital_spread_rate, -# MAGIC digital_spread_rate_ly -# MAGIC from a -# MAGIC left join ( -# MAGIC select distinct iqvia_pack_code ,prod_des_c,prod_des,iqvia_prod_code -# MAGIC from dm.dm_zk_retail_pack_property -# MAGIC ) b on a.iqvia_pack_code=b.iqvia_pack_code -# MAGIC left join ( -# MAGIC select distinct geo_key,province_city from dm.dm_zk_retail_geo -# MAGIC ) c on a.zk_region = c.province_city -# MAGIC left join ( -# MAGIC select distinct iqvia_pack_code,ta from dm.dm_zk_retail_market_property -# MAGIC ) d on a.iqvia_pack_code=d.iqvia_pack_code -# MAGIC where a.iqvia_pack_code in (select distinct iqvia_pack_code from dm.dm_zk_retail_sales) - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi -# MAGIC -- 8.30 weighted_spread_rate -# MAGIC -- 在 retail pack 粒度的文件中获取加权铺货率 -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -# MAGIC insert into table dws.dws_zk_retail_sales_own_kpi -# MAGIC -# MAGIC select distinct -# MAGIC iqvia_pack_code pack_code -# MAGIC ,corp_cod -# MAGIC ,YYYYMM -# MAGIC ,null ytd -# MAGIC ,geo_key -# MAGIC ,'weighted_spread_rate' KPI_name -# MAGIC ,weighted_spread_rate kpi_val -# MAGIC ,weighted_spread_rate_ly kpi_val_ly -# MAGIC ,null str_kpi_val -# MAGIC ,null str_kpi_val_ly -# MAGIC ,null kpi_vol -# MAGIC ,null kpi_vol_ly -# MAGIC ,null str_kpi_vol -# MAGIC ,null str_kpi_vol_ly -# MAGIC ,'N' TOTAL_FLAG -# MAGIC ,ta ta -# MAGIC ,case when prod.prod_des_c is null THEN 2 else 1 END brand_flag -# MAGIC ,case when geo_key ='CHT' THEN 2 else 1 END pack_flag -# MAGIC from tmp.tmp_zk_retail_price a -# MAGIC left join ( -# MAGIC SELECT DISTINCT b.prod_des_c -# MAGIC FROM tmp.tmp_retail_pack_rawdata A -# MAGIC LEFT JOIN ( -# MAGIC SELECT DISTINCT iqvia_pack_code,prod_des_c -# MAGIC FROM dm.dm_zk_retail_pack_property -# MAGIC ) b on a.pack_code = b.iqvia_pack_code -# MAGIC where a.brand_flag = 1 -# MAGIC ) prod on a.prod_des_c = prod.prod_des_c - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi -# MAGIC -- 8.31 digital_spread_rate -# MAGIC -- 在 retail pack 粒度的文件中获取数字铺货率 -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -# MAGIC insert into table dws.dws_zk_retail_sales_own_kpi -# MAGIC -# MAGIC select distinct -# MAGIC iqvia_pack_code -# MAGIC ,corp_cod -# MAGIC ,YYYYMM -# MAGIC ,null ytd -# MAGIC ,geo_key -# MAGIC ,'digital_spread_rate' KPI_name -# MAGIC ,digital_spread_rate kpi_val -# MAGIC ,digital_spread_rate_ly kpi_val_ly -# MAGIC ,null str_kpi_val -# MAGIC ,null str_kpi_val_ly -# MAGIC ,null kpi_vol -# MAGIC ,null kpi_vol_ly -# MAGIC ,null str_kpi_vol -# MAGIC ,null str_kpi_vol_ly -# MAGIC ,'N' TOTAL_FLAG -# MAGIC ,ta ta -# MAGIC ,case when prod.prod_des_c is null THEN 2 else 1 END brand_flag -# MAGIC ,case when geo_key ='CHT' THEN 2 else 1 END pack_flag -# MAGIC from tmp.tmp_zk_retail_price a -# MAGIC left join ( -# MAGIC SELECT DISTINCT b.prod_des_c -# MAGIC FROM tmp.tmp_retail_pack_rawdata A -# MAGIC LEFT JOIN ( -# MAGIC SELECT DISTINCT iqvia_pack_code,prod_des_c -# MAGIC FROM dm.dm_zk_retail_pack_property -# MAGIC ) b on a.pack_code = b.iqvia_pack_code -# MAGIC where a.brand_flag = 1 -# MAGIC ) prod on a.prod_des_c=prod.prod_des_c - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi -# MAGIC -- 8.32 pack_price -# MAGIC -- 在 retail pack 粒度的文件中获取计算pack 粒度的price -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -# MAGIC insert into table dws.dws_zk_retail_sales_own_kpi -# MAGIC -# MAGIC select distinct -# MAGIC iqvia_pack_code -# MAGIC ,corp_cod -# MAGIC ,YYYYMM -# MAGIC ,null ytd -# MAGIC ,geo_key -# MAGIC ,'pack_price' KPI_name -# MAGIC ,round(sum(sales_value)/sum(sales_unit),3) kpi_val -# MAGIC ,round(sum(sales_value_ly)/sum(sales_unit_ly),3) kpi_val_ly -# MAGIC ,null str_kpi_val -# MAGIC ,null str_kpi_val_ly -# MAGIC ,null kpi_vol -# MAGIC ,null kpi_vol_ly -# MAGIC ,null str_kpi_vol -# MAGIC ,null str_kpi_vol_ly -# MAGIC ,'N' TOTAL_FLAG -# MAGIC ,ta ta -# MAGIC ,case when prod.prod_des_c is null THEN 2 else 1 END brand_flag -# MAGIC ,case when geo_key ='CHT' THEN 2 else 1 END pack_flag -# MAGIC from tmp.tmp_zk_retail_price a -# MAGIC left join ( -# MAGIC SELECT DISTINCT b.prod_des_c -# MAGIC FROM tmp.tmp_retail_pack_rawdata A -# MAGIC LEFT JOIN ( -# MAGIC SELECT DISTINCT iqvia_pack_code,prod_des_c -# MAGIC FROM dm.dm_zk_retail_pack_property -# MAGIC ) b on a.pack_code = b.iqvia_pack_code -# MAGIC where a.brand_flag = 1 -# MAGIC ) prod on a.prod_des_c=prod.prod_des_c -# MAGIC group by -# MAGIC corp_cod, -# MAGIC YYYYMM, -# MAGIC geo_key, -# MAGIC ta, -# MAGIC iqvia_pack_code, -# MAGIC case when prod.prod_des_c is null THEN 2 else 1 END, -# MAGIC case when geo_key ='CHT' THEN 2 else 1 END - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi -# MAGIC -- 8.33 pack_price_by_counting_unit -# MAGIC -- 在 retail pack 粒度的文件中获取计算pack 粒度的price by counting unit -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC with tmp_pack_property as ( -# MAGIC ---------------------------------------------------------------- -# MAGIC -- format iqvia_pack_code -# MAGIC select -# MAGIC case when length(trim(iqvia_pack_code)) < 12 and trim(iqvia_pack_code) REGEXP '^[0-9]' -# MAGIC then right(concat('000000000000',trim(iqvia_pack_code)),12) -# MAGIC else trim(iqvia_pack_code) -# MAGIC end as iqvia_pack_code, -# MAGIC ---------------------------------------------------------------- -# MAGIC product_id, -# MAGIC counting_unit, -# MAGIC unit -# MAGIC from dwd.dwd_gnd_ext_retail_pack_property -# MAGIC ) -# MAGIC -# MAGIC insert into table dws.dws_zk_retail_sales_own_kpi -# MAGIC -# MAGIC select distinct -# MAGIC a.iqvia_pack_code -# MAGIC ,a.corp_cod -# MAGIC ,YYYYMM -# MAGIC ,null ytd -# MAGIC ,geo_key -# MAGIC ,'pack_price_by_counting_unit' KPI_name -# MAGIC ,round(sum(sales_value)/sum(sales_unit*(b.counting_unit/coalesce(b.unit,1 ))),3) kpi_val -# MAGIC ,round(sum(sales_value_ly)/sum(sales_unit_ly*(b.counting_unit/coalesce(b.unit,1 ))),3) kpi_val_ly -# MAGIC ,null str_kpi_val -# MAGIC ,null str_kpi_val_ly -# MAGIC ,null kpi_vol -# MAGIC ,null kpi_vol_ly -# MAGIC ,null str_kpi_vol -# MAGIC ,null str_kpi_vol_ly -# MAGIC ,'N' TOTAL_FLAG -# MAGIC ,ta ta -# MAGIC ,case when prod.prod_des_c is null THEN 2 else 1 END brand_flag -# MAGIC ,case when geo_key ='CHT' THEN 2 else 1 END pack_flag -# MAGIC from tmp.tmp_zk_retail_price a -# MAGIC left join tmp_pack_property b on a.zk_product_id =b.product_id -# MAGIC left join ( -# MAGIC SELECT DISTINCT b.prod_des_c -# MAGIC FROM tmp.tmp_retail_pack_rawdata A -# MAGIC LEFT JOIN ( -# MAGIC SELECT DISTINCT iqvia_pack_code,prod_des_c -# MAGIC FROM dm.dm_zk_retail_pack_property -# MAGIC ) b on a.pack_code = b.iqvia_pack_code -# MAGIC where a.brand_flag = 1 -# MAGIC ) prod on a.prod_des_c=prod.prod_des_c -# MAGIC group by -# MAGIC a.corp_cod, -# MAGIC YYYYMM,geo_key, -# MAGIC ta, -# MAGIC a.iqvia_pack_code, -# MAGIC case when prod.prod_des_c is null THEN 2 else 1 END, -# MAGIC case when geo_key ='CHT' THEN 2 else 1 END - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi -# MAGIC -- 8.34&35 num_dist_rate & weig_dist_rate -# MAGIC -- 在 retail brand 品牌文件中获取数字铺货率 并对re 特殊处理,re相关品牌优先取inhaled market 对应 pack -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -# MAGIC insert into table dws.dws_zk_retail_sales_own_kpi -# MAGIC -# MAGIC with exploded_data as ( -# MAGIC select -# MAGIC ta, -# MAGIC market, -# MAGIC brand, -# MAGIC ifnull(common_name,'' ) as common_name, -# MAGIC level, -# MAGIC split(level_ta,',') array_ta, -# MAGIC split(level_market,',') array_market, -# MAGIC split(level_molecule,',') array_molecule, -# MAGIC split(level_brand,',') array_brand -# MAGIC from dwd.dwd_gnd_retail_split_automatic -# MAGIC where level like '%MULTI_BRAND%' -# MAGIC ), tmp_config as ( -# MAGIC select -# MAGIC ta, -# MAGIC market, -# MAGIC brand, -# MAGIC common_name, -# MAGIC level, -# MAGIC array_ta[idx] as level_ta, -# MAGIC array_market[idx] as level_market, -# MAGIC array_molecule[idx] as level_molecule, -# MAGIC array_brand[idx] as level_brand -# MAGIC from exploded_data -# MAGIC lateral view posexplode(array_ta) AS idx, split_ta -# MAGIC -# MAGIC union all -# MAGIC -# MAGIC select -# MAGIC ta, -# MAGIC market, -# MAGIC brand, -# MAGIC common_name, -# MAGIC level, -# MAGIC level_ta, -# MAGIC level_market, -# MAGIC level_molecule, -# MAGIC level_brand -# MAGIC from dwd.dwd_gnd_retail_split_automatic -# MAGIC where level = 'BRAND' -# MAGIC ),max_pack_mapping as ( -# MAGIC select -# MAGIC level_ta, -# MAGIC level_market, -# MAGIC level_molecule, -# MAGIC level_brand, -# MAGIC molecule_desc, -# MAGIC product_desc, -# MAGIC corp_cod, -# MAGIC max(pack_code) as pack_code -# MAGIC from tmp.tmp_retail_pack_mapping -# MAGIC group by level_ta,level_market,level_molecule,level_brand,molecule_desc,product_desc,corp_cod -# MAGIC ), tmp_brand_kpi_now as ( -# MAGIC select -# MAGIC distinct -# MAGIC a.ta, -# MAGIC nvl(f.iqvia_pack_code,c.pack_code) as pack_code, -# MAGIC c.corp_cod, -# MAGIC c.product_desc, -# MAGIC a.YYYYMM, -# MAGIC d.geo_key, -# MAGIC a.num_dist_rate, -# MAGIC a.weig_dist_rate -# MAGIC from dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all a -# MAGIC inner join tmp_config b -# MAGIC on a.ta = b.ta -# MAGIC and a.market = b.market -# MAGIC and a.zk_brand_category = b.brand -# MAGIC and a.zk_common_name = b.common_name -# MAGIC inner join max_pack_mapping c -# MAGIC on c.level_ta = b.level_ta -# MAGIC and c.level_market = b.level_market -# MAGIC and c.level_molecule = b.level_molecule -# MAGIC and c.level_brand = b.level_brand -# MAGIC left join dm.dm_zk_retail_geo d -# MAGIC on a.province_city = d.province_city -# MAGIC left join ( -# MAGIC select distinct iqvia_pack_code ,prod_des_c -# MAGIC from dm.dm_zk_retail_pack_property -# MAGIC ) e on c.pack_code = e.iqvia_pack_code -# MAGIC left join ( -# MAGIC select prod_des_c,max(iqvia_pack_code) iqvia_pack_code -# MAGIC from dm.dm_zk_retail_pack_property -# MAGIC where market='Inhaled Extended Market' -# MAGIC group by prod_des_c -# MAGIC ) f on e.prod_des_c =f.prod_des_c -# MAGIC ), tmp_brand_kpi_ly as ( -# MAGIC select -# MAGIC pack_code, -# MAGIC corp_cod, -# MAGIC cast(YYYYMM + 100 as int ) as YYYYMM, -# MAGIC geo_key, -# MAGIC num_dist_rate, -# MAGIC weig_dist_rate -# MAGIC from tmp_brand_kpi_now -# MAGIC ), tmp_brand_kpi as ( -# MAGIC select -# MAGIC a.*, -# MAGIC b.num_dist_rate as num_dist_rate_ly, -# MAGIC b.weig_dist_rate as weig_dist_rate_ly -# MAGIC from tmp_brand_kpi_now a -# MAGIC left join tmp_brand_kpi_ly b -# MAGIC on a.pack_code = b.pack_code -# MAGIC and a.corp_cod = b.corp_cod -# MAGIC and a.YYYYMM = b.YYYYMM -# MAGIC and a.geo_key = b.geo_key -# MAGIC ) -# MAGIC -# MAGIC select -# MAGIC pack_code, -# MAGIC corp_cod, -# MAGIC yyyymm, -# MAGIC null as ytd, -# MAGIC geo_key, -# MAGIC 'num_dist_rate' as KPI_name, -# MAGIC num_dist_rate as kpi_val, -# MAGIC num_dist_rate_ly as kpi_val_ly, -# MAGIC null as str_kpi_val, -# MAGIC null as str_kpi_val_ly, -# MAGIC null as kpi_vol, -# MAGIC null as kpi_vol_ly, -# MAGIC null as str_kpi_vol, -# MAGIC null as str_kpi_vol_ly, -# MAGIC 'N' as TOTAL_FLAG, -# MAGIC ta, -# MAGIC case when product_desc is null THEN 2 else 1 END as brand_flag, -# MAGIC case when geo_key ='CHT' THEN 2 else 1 END as pack_flag -# MAGIC from tmp_brand_kpi -# MAGIC -# MAGIC union all -# MAGIC -# MAGIC select -# MAGIC pack_code, -# MAGIC corp_cod, -# MAGIC yyyymm, -# MAGIC null as ytd, -# MAGIC geo_key, -# MAGIC 'weig_dist_rate' as KPI_name, -# MAGIC weig_dist_rate as kpi_val, -# MAGIC weig_dist_rate_ly as kpi_val_ly, -# MAGIC null as str_kpi_val, -# MAGIC null as str_kpi_val_ly, -# MAGIC null as kpi_vol, -# MAGIC null as kpi_vol_ly, -# MAGIC null as str_kpi_vol, -# MAGIC null as str_kpi_vol_ly, -# MAGIC 'N' as TOTAL_FLAG, -# MAGIC ta, -# MAGIC case when product_desc is null THEN 2 else 1 END as brand_flag, -# MAGIC case when geo_key ='CHT' THEN 2 else 1 END as pack_flag -# MAGIC from tmp_brand_kpi -# MAGIC -# MAGIC - -# COMMAND ---------- - -# MAGIC %md -# MAGIC ### PART-7:映射到dm表 - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-8: map to dm.dm_zk_retail_sales_kpi -# MAGIC -- PART-7: 映射到dm表 -# MAGIC -- 将所有渠道kpi 数据汇总到dm -# MAGIC -- KPI 表汇总 -# MAGIC -- ytd 为是否ytd flag -# MAGIC -- geo 将cht(全国) 改成 ROC -# MAGIC -- DTP_FLAG: O-非dtp ,1-dtp数据 -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -# MAGIC insert overwrite table dm.dm_zk_retail_sales_kpi -# MAGIC ( pack_code -# MAGIC ,corp_cod -# MAGIC ,ta -# MAGIC ,YYYYMM -# MAGIC ,ytd -# MAGIC ,geo_key -# MAGIC ,KPI_name -# MAGIC ,kpi_val -# MAGIC ,kpi_val_ly -# MAGIC ,str_kpi_val -# MAGIC ,str_kpi_val_ly -# MAGIC ,kpi_vol -# MAGIC ,kpi_vol_ly -# MAGIC ,str_kpi_vol -# MAGIC ,str_kpi_vol_ly -# MAGIC ,TOTAL_FLAG -# MAGIC ,data_source -# MAGIC ,dtp_flag -# MAGIC ,brand_flag -# MAGIC ,pack_flag -# MAGIC ) -# MAGIC --------retail 渠道 kpi -# MAGIC select -# MAGIC nvl(pack_code,'') pack_code -# MAGIC ,nvl(corp_cod,'') corp_cod -# MAGIC ,nvl(ta,'') ta -# MAGIC ,nvl(YYYYMM,cast( if(length(ytd)=7 AND substr(ytd,6,1)<>'Q',concat('20',substr(ytd,4,2))*100 + right(ytd,2) ,concat('20',substr(ytd,4,2))*100 + right(ytd,1) * 3 ) as int )) YYYYMM -# MAGIC ,if(ytd IS NOT NULL ,'Y' ,'N') YTD -# MAGIC ,case when geo_key ='CHT' THEN 'ROC' ELSE nvl(geo_key,'') END geo_key -# MAGIC ,nvl(kpi_name,'') as kpi_name -# MAGIC ,nvl(cast(kpi_val as double),0) kpi_val -# MAGIC ,nvl(cast(kpi_val_ly as double),0) kpi_val_ly -# MAGIC ,nvl(str_kpi_val,'') -# MAGIC ,nvl(str_kpi_val_ly,'') -# MAGIC ,nvl(cast(kpi_vol as double),0) kpi_vol -# MAGIC ,nvl(cast(kpi_vol_ly as double),0) kpi_vol_ly -# MAGIC ,nvl(str_kpi_vol,'') -# MAGIC ,nvl(str_kpi_vol_ly,'') -# MAGIC ,nvl(TOTAL_FLAG,'') -# MAGIC ,'Retail(Quarterly)' data_source -# MAGIC ,'0' dtp_flag -# MAGIC , 0 -# MAGIC , 0 -# MAGIC from dws.dws_zk_retail_sales_kpi -# MAGIC WHERE nvl(ta,'' ) NOT IN ('GI-Rx','GI-OTC') -# MAGIC -# MAGIC union all -# MAGIC ---------------dtp 的kpi -# MAGIC select -# MAGIC nvl(pack_code,'') pack_code -# MAGIC ,nvl(corp_cod,'') corp_cod -# MAGIC ,nvl(ta,'') ta -# MAGIC ,nvl(YYYYMM,cast( if(length(ytd)=7,concat('20',substr(ytd,4,2))*100 + right(ytd,1) * 3 ,substr(ytd,4,4) * 100 + right(ytd,1) * 3 ) as int )) YYYYMM -# MAGIC ,if(ytd IS NOT NULL ,'Y' ,'N') YTD -# MAGIC ,case when geo_key ='CHT' THEN 'ROC' ELSE nvl(geo_key,'') END -# MAGIC ,nvl(kpi_name,'') -# MAGIC ,nvl(kpi_val,0) -# MAGIC ,nvl(kpi_val_ly,0) -# MAGIC ,nvl(str_kpi_val,'') -# MAGIC ,nvl(str_kpi_val_ly,'') -# MAGIC ,nvl(kpi_vol,0) -# MAGIC ,nvl(kpi_vol_ly,0) -# MAGIC ,nvl(str_kpi_vol,'') -# MAGIC ,nvl(str_kpi_vol_ly,'') -# MAGIC ,nvl(TOTAL_FLAG,'') -# MAGIC ,'Retail(Quarterly)' data_source -# MAGIC ,'1' dtp_flag -# MAGIC ,0 -# MAGIC ,0 -# MAGIC from dws.dws_zk_retail_dtp_sales_kpi -# MAGIC WHERE nvl(ta,'' ) NOT IN ('GI-Rx','GI-OTC') -# MAGIC -# MAGIC union all -# MAGIC -# MAGIC --拼接retail 自有部分kpi -# MAGIC select -# MAGIC nvl(pack_code,'') pack_code -# MAGIC ,nvl(corp_cod,'') corp_cod -# MAGIC ,nvl(ta,'') ta -# MAGIC ,nvl(YYYYMM,cast( if(length(ytd)=7,concat('20',substr(ytd,4,2))*100 + right(ytd,1) * 3 ,substr(ytd,4,4) * 100 + right(ytd,1) * 3 ) as int )) YYYYMM -# MAGIC ,if(ytd IS NOT NULL ,'Y' ,'N') YTD -# MAGIC ,case when geo_key ='CHT' THEN 'ROC' ELSE nvl(geo_key,'') END geo_key -# MAGIC ,nvl(kpi_name,'') -# MAGIC ,nvl(cast(kpi_val as double),0) kpi_val -# MAGIC ,nvl(cast(kpi_val_ly as double),0) kpi_val_ly -# MAGIC ,nvl(str_kpi_val,'') -# MAGIC ,nvl(str_kpi_val_ly,'') -# MAGIC ,nvl(cast(kpi_vol as double),0) kpi_vol -# MAGIC ,nvl(cast(kpi_vol_ly as double),0) kpi_vol_ly -# MAGIC ,nvl(str_kpi_vol,'') -# MAGIC ,nvl(str_kpi_vol_ly,'') -# MAGIC ,nvl(TOTAL_FLAG,'') -# MAGIC ,'Retail(Quarterly)' data_source -# MAGIC ,'0' dtp_flag -# MAGIC ,nvl(brand_flag,0) -# MAGIC ,nvl(pack_flag,0) -# MAGIC from dws.dws_zk_retail_sales_own_kpi -# MAGIC WHERE nvl(ta,'' ) NOT IN ('GI-Rx','GI-OTC') - -# COMMAND ---------- - -# MAGIC %md -# MAGIC ## STEP-9: map to dm.dm_zk_retail_market_ratio - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC -- STEP-9: map to dm.dm_zk_retail_market_ratio -# MAGIC ------------------------------------------------------------------------------------- -# MAGIC /* -# MAGIC 修改人:chenwu -# MAGIC 修改时间:20250319 -# MAGIC 修改内容: -# MAGIC */ -# MAGIC ------------------------生产retail 的ratio 表,该表系数用于计算pdot-------- -# MAGIC insert overwrite table dm.dm_zk_retail_market_ratio -# MAGIC ( -# MAGIC market_pack_key, -# MAGIC pack_cod, -# MAGIC prod_des, -# MAGIC cmps_des, -# MAGIC corp_cod, -# MAGIC market, -# MAGIC value_market_ratio, -# MAGIC unit_market_ratio, -# MAGIC countingunit_market_ratio, -# MAGIC etl_insert_dt, -# MAGIC etl_update_dt -# MAGIC ) -# MAGIC select distinct -# MAGIC a.market || a.iqvia_pack_code as market_pack_key -# MAGIC ,a.iqvia_pack_code as pack_cod -# MAGIC ,a.prod_des as prod_des -# MAGIC ,a.cmps_des as cmps_des -# MAGIC ,a.corp_cod as corp_cod -# MAGIC ,a.market as market -# MAGIC ,a.extend_market_ratio as value_market_ratio -# MAGIC ,a.extend_market_ratio as unit_market_ratio -# MAGIC ,coalesce(case when t4.ratio is null then t5.ratio*coalesce(a.extend_market_ratio ,1 ) -# MAGIC else t4.ratio*coalesce(a.extend_market_ratio ,1 ) -# MAGIC end ,a.extend_market_ratio ) countingunit_market_ratio --20250319如果tblbrandratio 里面的没有对应的 ratio 则用market_ratio兜底而不是直接1 -# MAGIC ,from_utc_timestamp(current_timestamp(),'UTC+8') AS etl_insert_dt -# MAGIC ,from_utc_timestamp(current_timestamp(),'UTC+8') AS etl_update_dt -# MAGIC from tmp.tmp_dm_zk_retail_pack_property a -# MAGIC left join (--COUNTINGUNIT -# MAGIC select distinct -# MAGIC market, -# MAGIC cmps_cod, -# MAGIC cmps_des, -# MAGIC ---------------------------------------------------------------------------- -# MAGIC -- format pack_cod from dwd_gnd_ims_tblbrandratio -# MAGIC case when length(trim(pack_cod)) < 12 and trim(pack_cod) REGEXP '^[0-9]' -# MAGIC then right(concat('000000000000',trim(pack_cod)),12) -# MAGIC else trim(pack_cod) -# MAGIC end as pack_cod, -# MAGIC ---------------------------------------------------------------------------- -# MAGIC pack_des, -# MAGIC level, -# MAGIC type, -# MAGIC cast(ratio as float) as ratio, -# MAGIC cast(starttime as int) starttime, -# MAGIC cast (endtime as int) endtime -# MAGIC from dwd.dwd_gnd_ims_tblbrandratio -# MAGIC where UPPER(TYPE) = 'COUNTINGUNIT' and UPPER(Level) = 'PACK' -# MAGIC )t4 on a.market=t4.market -# MAGIC and a.iqvia_pack_code = t4.PACK_COD -# MAGIC left join (--COUNTINGUNIT -# MAGIC select distinct -# MAGIC market, -# MAGIC cmps_cod, -# MAGIC cmps_des, -# MAGIC ---------------------------------------------------------------------------- -# MAGIC -- format pack_cod from dwd_gnd_ims_tblbrandratio -# MAGIC case when length(trim(pack_cod)) < 12 and trim(pack_cod) REGEXP '^[0-9]' -# MAGIC then right(concat('000000000000',trim(pack_cod)),12) -# MAGIC else trim(pack_cod) -# MAGIC end as pack_cod, -# MAGIC ---------------------------------------------------------------------------- -# MAGIC pack_des, -# MAGIC level, -# MAGIC type, -# MAGIC cast(ratio as float) as ratio, -# MAGIC cast(starttime as int) starttime, -# MAGIC cast (endtime as int) endtime -# MAGIC from dwd.dwd_gnd_ims_tblbrandratio -# MAGIC where UPPER(TYPE) = 'COUNTINGUNIT' and UPPER(Level) = 'MOLECULE' -# MAGIC ) t5 on a.market=t5.market -# MAGIC and right(concat('000000',a.CMPS_COD ),6 )= right(concat('000000',t5.CMPS_COD ),6 ) -# MAGIC union all -# MAGIC select distinct -# MAGIC a.market || a.iqvia_pack_code as market_pack_key -# MAGIC ,a.iqvia_pack_code as pack_cod -# MAGIC ,a.prod_des as prod_des -# MAGIC ,a.cmps_des as cmps_des -# MAGIC ,a.corp_cod as corp_cod -# MAGIC ,a.market as market -# MAGIC ,a.Market_Ratio as value_market_ratio -# MAGIC ,a.Market_Ratio as unit_market_ratio -# MAGIC ,coalesce(case when t4.ratio is null then t5.ratio*coalesce(a.Market_Ratio ,1 ) -# MAGIC else t4.ratio*coalesce(a.Market_Ratio ,1 ) -# MAGIC end ,a.Market_Ratio ) countingunit_market_ratio --20250319如果tblbrandratio 里面的没有对应的 ratio 则用market_ratio兜底而不是直接1 -# MAGIC ,from_utc_timestamp(current_timestamp(),'UTC+8') AS etl_insert_dt -# MAGIC ,from_utc_timestamp(current_timestamp(),'UTC+8') AS etl_update_dt -# MAGIC from dws.dws_zk_retail_dtp_market a -# MAGIC left join (--COUNTINGUNIT -# MAGIC select distinct -# MAGIC market, -# MAGIC cmps_cod, -# MAGIC cmps_des, -# MAGIC ---------------------------------------------------------------------------- -# MAGIC -- format pack_cod from dwd_gnd_ims_tblbrandratio -# MAGIC case when length(trim(pack_cod)) < 12 and trim(pack_cod) REGEXP '^[0-9]' -# MAGIC then right(concat('000000000000',trim(pack_cod)),12) -# MAGIC else trim(pack_cod) -# MAGIC end as pack_cod, -# MAGIC ---------------------------------------------------------------------------- -# MAGIC pack_des, -# MAGIC level, -# MAGIC type, -# MAGIC cast(ratio as float) as ratio, -# MAGIC cast(starttime as int) starttime, -# MAGIC cast (endtime as int) endtime -# MAGIC from dwd.dwd_gnd_ims_tblbrandratio -# MAGIC where UPPER(TYPE) = 'COUNTINGUNIT' and UPPER(Level) = 'PACK' -# MAGIC )t4 on a.market=t4.market -# MAGIC and a.iqvia_pack_code = t4.PACK_COD -# MAGIC left join (--COUNTINGUNIT -# MAGIC select distinct -# MAGIC market, -# MAGIC cmps_cod, -# MAGIC cmps_des, -# MAGIC ---------------------------------------------------------------------------- -# MAGIC -- format pack_cod from dwd_gnd_ims_tblbrandratio -# MAGIC case when length(trim(pack_cod)) < 12 and trim(pack_cod) REGEXP '^[0-9]' -# MAGIC then right(concat('000000000000',trim(pack_cod)),12) -# MAGIC else trim(pack_cod) -# MAGIC end as pack_cod, -# MAGIC ---------------------------------------------------------------------------- -# MAGIC pack_des, -# MAGIC level, -# MAGIC type, -# MAGIC cast(ratio as float) as ratio, -# MAGIC cast(starttime as int) starttime, -# MAGIC cast (endtime as int) endtime -# MAGIC from dwd.dwd_gnd_ims_tblbrandratio -# MAGIC where UPPER(TYPE) = 'COUNTINGUNIT' and UPPER(Level) = 'MOLECULE' -# MAGIC ) t5 on a.market=t5.market -# MAGIC and right(concat('000000',a.CMPS_COD ),6 ) = right(concat('000000',t5.CMPS_COD ),6 ) -# MAGIC - -# COMMAND ---------- - -############################################################END################################################################ \ No newline at end of file diff --git a/EXTERNAL/Retail/10 map_to_retail_dm_table.py:Zone.Identifier b/EXTERNAL/Retail/10 map_to_retail_dm_table.py:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2xdl#JyUFr831@K2x '全国' - group by 1,2 -) -,roc_data as (--计算 roc部分的值 = 全国- 非全国合计 - select - a.market - ,'ROC' as province_city - ,a.yyyymm - ,a.sales_value-b.sales_value as sales_value - ,a.sales_volume - b.sales_volume as sales_volume - ,a.pdot_counting_unit - b.pdot_counting_unit as pdot_counting_unit - from all_data a - left join not_quanguo_data b on a.market = b.market and a.yyyymm = b.yyyymm - where a.province_city = '全国' -) -,all_data_with_roc as (--合并全部数据 - select - market - ,province_city - ,yyyymm - ,sales_value - ,sales_volume - ,pdot_counting_unit - from all_data where province_city <> '全国' - union all - select - market - ,province_city - ,yyyymm - ,sales_value - ,sales_volume - ,pdot_counting_unit - from roc_data -) - -select - a.market - ,a.province_city - ,concat(b.AUDIT_COD, 'DTP(Quarterly)', b.REGION_TYPE ) as audit_key --pbi dim_rc 关联键 - ,concat(b.AUDIT_COD, 'DTP(Quarterly)' ) audit_source --pbi dim_geo 关联键 - ,concat(left(a.yyyymm,4),'-',right(a.yyyymm,2),'-01') date_key --pbi dim_date 关联键 - ,a.yyyymm - ,a.sales_value - ,a.sales_volume - ,a.pdot_counting_unit -from all_data_with_roc a -left join dim_geo b on a.province_city = b.PROVINCE_C \ No newline at end of file diff --git a/EXTERNAL/Retail/12 dws_tf_external_retail_dtp_special.sql:Zone.Identifier b/EXTERNAL/Retail/12 dws_tf_external_retail_dtp_special.sql:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2x= '202001' -GROUP BY - A.YYYYMM, - A.iqvia_pack_code, - A.AUDIT_COD, - A.PACK_FLAG, - A.brand_flag - --- COMMAND ---------- - -INSERT OVERWRITE TABLE DM.DM_TF_EXT_RETAIL_SALES -( - YYYYMM, - PACK_CODE, - AUDIT_CODE, - DATA_SOURCE, - SALES_UNIT_CAL, - SALES_UNIT_CAL_LY, - SALES_VALUE_CAL, - SALES_VALUE_CAL_LY, - CONUTING_UNIT, - CONUTING_UNIT_LY, - PRESCRIPTION, - PRESCRIPTION_LY, - PACK_FLAG, - PROD_FLAG, - DTP_FLAG, - CMPS_FLAG, - PLATFORM_TYPE, - STORE_NAME, - STORE_TYPE, - REGION_TYPE, - INST_CODE, - DEPT_NAME, - NEW_CODE, - AREA, - H_LEVEL, - REIMBURSE, - REIMBURSE_TYPE, - PRESCRIPTION_SOURCE, - CORP_CODE, - ETL_INSERT_DT, - ETL_UPDATE_DT -) -SELECT - YYYYMM, - NVL ( - NULLIF(PACK_CODE, ''), - CONCAT ('PACK_CODE_', DATA_SOURCE) - ) AS PACK_CODE, - NVL (NULLIF(AUDIT_CODE, ''), 'ROC') AS AUDIT_CODE, - DATA_SOURCE, - SALES_UNIT_CAL, - SALES_UNIT_CAL_LY, - SALES_VALUE_CAL, - SALES_VALUE_CAL_LY, - CONUTING_UNIT, - CONUTING_UNIT_LY, - PRESCRIPTION, - PRESCRIPTION_LY, - PACK_FLAG, - PROD_FLAG, - DTP_FLAG, - CMPS_FLAG, - PLATFORM_TYPE, - STORE_NAME, - STORE_TYPE, - REGION_TYPE, - INST_CODE, - DEPT_NAME, - NEW_CODE, - AREA, - H_LEVEL, - REIMBURSE, - REIMBURSE_TYPE, - PRESCRIPTION_SOURCE, - CORP_CODE, - FROM_UTC_TIMESTAMP (CURRENT_TIMESTAMP(), 'UTC+8') AS ETL_INSERT_DT, - FROM_UTC_TIMESTAMP (CURRENT_TIMESTAMP(), 'UTC+8') AS ETL_UPDATE_DT -FROM - RETAIL_SALES -; \ No newline at end of file diff --git a/EXTERNAL/Retail/13 DM_TF_EXT_RETAIL_SALES.sql:Zone.Identifier b/EXTERNAL/Retail/13 DM_TF_EXT_RETAIL_SALES.sql:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2x= '201901' - GROUP BY - A.YYYYMM, - A.iqvia_pack_code, - A.AUDIT_COD, - A.brand_flag, - A.pack_flag - --- COMMAND ---------- - -INSERT OVERWRITE TABLE DM.DM_TF_EXT_RETAIL_DTP_SALES -( - YYYYMM, - PACK_CODE, - AUDIT_CODE, - DATA_SOURCE, - SALES_UNIT_CAL, - SALES_UNIT_CAL_LY, - SALES_VALUE_CAL, - SALES_VALUE_CAL_LY, - CONUTING_UNIT, - CONUTING_UNIT_LY, - PRESCRIPTION, - PRESCRIPTION_LY, - PACK_FLAG, - PROD_FLAG, - DTP_FLAG, - CMPS_FLAG, - PLATFORM_TYPE, - STORE_NAME, - STORE_TYPE, - REGION_TYPE, - INST_CODE, - DEPT_NAME, - NEW_CODE, - AREA, - H_LEVEL, - REIMBURSE, - REIMBURSE_TYPE, - PRESCRIPTION_SOURCE, - CORP_CODE, - ETL_INSERT_DT, - ETL_UPDATE_DT -) -SELECT - YYYYMM, - NVL ( - NULLIF(PACK_CODE, ''), - CONCAT ('PACK_CODE_', DATA_SOURCE) - ) AS PACK_CODE, - NVL (NULLIF(AUDIT_CODE, ''), 'ROC') AS AUDIT_CODE, - DATA_SOURCE, - SALES_UNIT_CAL, - SALES_UNIT_CAL_LY, - SALES_VALUE_CAL, - SALES_VALUE_CAL_LY, - CONUTING_UNIT, - CONUTING_UNIT_LY, - PRESCRIPTION, - PRESCRIPTION_LY, - PACK_FLAG, - PROD_FLAG, - DTP_FLAG, - CMPS_FLAG, - PLATFORM_TYPE, - STORE_NAME, - STORE_TYPE, - REGION_TYPE, - INST_CODE, - DEPT_NAME, - NEW_CODE, - AREA, - H_LEVEL, - REIMBURSE, - REIMBURSE_TYPE, - PRESCRIPTION_SOURCE, - CORP_CODE, - FROM_UTC_TIMESTAMP (CURRENT_TIMESTAMP(), 'UTC+8') AS ETL_INSERT_DT, - FROM_UTC_TIMESTAMP (CURRENT_TIMESTAMP(), 'UTC+8') AS ETL_UPDATE_DT -FROM - RETAIL_DTP_SALES -; \ No newline at end of file diff --git a/EXTERNAL/Retail/14 DM_TF_EXT_RETAIL_DTP_SALES.sql:Zone.Identifier b/EXTERNAL/Retail/14 DM_TF_EXT_RETAIL_DTP_SALES.sql:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2x'全国') -# MAGIC where a.zk_common_name ='氨氯地平阿托伐他汀钙' and a.brand_flag in ('pack-CV-他汀类+血脂康-全国.xlsx' ,'pack-CV-高血压-化学药-全国.xlsx','pack-CV-抗血栓2通用名-全国.xlsx') -# MAGIC group by 1,2,3 -# MAGIC ),city as ( -# MAGIC ----获取省份及年月头表 -# MAGIC select distinct -# MAGIC YYYYMM -# MAGIC ,year -# MAGIC ,quarter -# MAGIC ,yq -# MAGIC ,province_city -# MAGIC from dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all -# MAGIC where province_city !='全国' and ranked_by ='volume' -# MAGIC ) -# MAGIC , split as ( -# MAGIC ------分别补充全国数据、品牌数据------ -# MAGIC select -# MAGIC city.YYYYMM -# MAGIC ,year -# MAGIC ,quarter -# MAGIC ,yq -# MAGIC ,'品牌' brand_cat_type -# MAGIC ,'CV' TA -# MAGIC ,brand_flag market -# MAGIC ,prod_des_c -# MAGIC ,'' -# MAGIC ,'' -# MAGIC ,'' -# MAGIC ,province_city -# MAGIC ,'' -# MAGIC ,sales_value -# MAGIC ,sales_unit -# MAGIC ,0,0,0,0,0,'' ,0 ,'' ,0,0,0,'',0,'',0,0,0,'volume' ,'' -# MAGIC from data_pack left join city on city.YYYYMM=data_pack.YYYYMM -# MAGIC union all -# MAGIC select -# MAGIC city.YYYYMM -# MAGIC ,year -# MAGIC ,quarter -# MAGIC ,yq -# MAGIC ,'品牌' brand_cat_type -# MAGIC ,'CV' TA -# MAGIC ,brand_flag market -# MAGIC ,prod_des_c -# MAGIC ,'' -# MAGIC ,'' -# MAGIC ,'' -# MAGIC ,'全国' province_city -# MAGIC ,'' -# MAGIC ,sales sales_value -# MAGIC ,saleu sales_unit -# MAGIC ,0,0,0,0,0,'' ,0 ,'' ,0,0,0,'',0,'',0,0,0,'volume' ,'' -# MAGIC from data_pack left join (select distinct year,quarter,yyyymm,yq from city ) city on city.YYYYMM=data_pack.YYYYMM -# MAGIC -# MAGIC ) -# MAGIC select * from dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all -# MAGIC union all -# MAGIC select * -# MAGIC ,from_utc_timestamp(current_timestamp(),'UTC+8') AS etl_insert_dt -# MAGIC ,from_utc_timestamp(current_timestamp(),'UTC+8') AS etl_update_dt -# MAGIC from split - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC --补位 -# MAGIC with tmp as ( -# MAGIC select -# MAGIC YYYYMM, -# MAGIC year, -# MAGIC quarter, -# MAGIC yq, -# MAGIC case when length(zk_product_id) < 7 then right(concat('0000000',zk_product_id),7) else zk_product_id end as zk_product_id, -# MAGIC zk_region, -# MAGIC zk_rx_otc, -# MAGIC zk_medicine_type, -# MAGIC zk_medicine_tier1, -# MAGIC zk_medicine_tier2, -# MAGIC zk_medicine_tier3, -# MAGIC zk_medicine_tier4, -# MAGIC zk_common_name, -# MAGIC zk_dosage_form, -# MAGIC zk_user_type, -# MAGIC zk_category_name, -# MAGIC zk_product_name, -# MAGIC zk_brand_name, -# MAGIC zk_manu_des, -# MAGIC zk_corp_des, -# MAGIC zk_pack_des, -# MAGIC price, -# MAGIC sales_unit, -# MAGIC sales_value, -# MAGIC digital_spread_rate, -# MAGIC weighted_spread_rate, -# MAGIC counting_unit, -# MAGIC brand_flag, -# MAGIC etl_insert_dt, -# MAGIC etl_update_dt -# MAGIC from dwd.dwd_inc_gnd_ext_retail_nataional_pack_union_all -# MAGIC -- pack-CV-酒石酸美托洛尔.xlsx的数据没有了,所以排除 酒石酸美托洛尔 -# MAGIC where brand_flag<>'pack-CV-酒石酸美托洛尔.xlsx' -# MAGIC ) -# MAGIC -# MAGIC insert overwrite dwd.dwd_inc_gnd_ext_retail_nataional_pack_union_all -# MAGIC select * -# MAGIC from tmp; - -# COMMAND ---------- - -# MAGIC %md -# MAGIC ### 新逻辑 -# MAGIC - 修改brand数据,先拆分成月维度的数据 - -# COMMAND ---------- - -# MAGIC %sql -# MAGIC /* -# MAGIC 修改时间:20250311 -# MAGIC 修改人:chenwu -# MAGIC 修改内容:brand来数频率为 季度来数, 但是 pack 为 月度来数据,需要用季度的数据/3得到月度的 -# MAGIC */ -# MAGIC insert overwrite table dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all -# MAGIC with quarterly_table as ( -# MAGIC select -# MAGIC * -# MAGIC from dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all -# MAGIC where market not in ('NIAD','Inhaled Extended Market','布地奈德雾化溶液') -# MAGIC -- 范围内只能是 季度来数据的,如果有月度来数据的需要排除掉 -# MAGIC ) -# MAGIC -# MAGIC ,month_table as (--转化成月度数据 -# MAGIC SELECT -# MAGIC SUBSTR(q.yq, 1, 4)*100 + -- 提取年份 -# MAGIC LPAD(m.month_num, 2, '0') -- 补零月份 -# MAGIC AS YYYYMM -- 月份首日 -# MAGIC ,`year` -# MAGIC ,`quarter` -# MAGIC ,yq -# MAGIC ,brand_cat_type -# MAGIC ,TA -# MAGIC ,market -# MAGIC ,zk_brand_category -# MAGIC ,zk_common_name -# MAGIC ,zk_manu_des -# MAGIC ,rc_name_en -# MAGIC ,province_city -# MAGIC ,ytd -# MAGIC ,sales_val /3 --除3 -# MAGIC ,sales_vol /3 --除3 -# MAGIC ,price -# MAGIC ,num_dist_rate -# MAGIC ,weig_dist_rate -# MAGIC ,val_share -# MAGIC ,vol_share -# MAGIC ,key_brand_ytd -# MAGIC ,key_brand_rank_ytd -# MAGIC ,top_brand_ytd -# MAGIC ,top_brand_ms_ytd -# MAGIC ,top_brand_inc_ms_ytd -# MAGIC ,top_brand_gr_ytd -# MAGIC ,key_brand_qtd -# MAGIC ,key_brand_rank_qtd -# MAGIC ,top_brand_qtd -# MAGIC ,top_brand_ms_qtd -# MAGIC ,top_brand_inc_ms_qtd -# MAGIC ,top_brand_gr_qtd -# MAGIC ,ranked_by -# MAGIC ,pack_flag -# MAGIC ,etl_insert_dt -# MAGIC ,etl_update_dt -# MAGIC FROM -# MAGIC quarterly_table q -# MAGIC LATERAL VIEW EXPLODE( -- 为每季度生成三个月 -# MAGIC CASE -# MAGIC WHEN RIGHT(q.yq, 2) = 'Q1' THEN ARRAY(1, 2, 3) -# MAGIC WHEN RIGHT(q.yq, 2) = 'Q2' THEN ARRAY(4, 5, 6) -# MAGIC WHEN RIGHT(q.yq, 2) = 'Q3' THEN ARRAY(7, 8, 9) -# MAGIC WHEN RIGHT(q.yq, 2) = 'Q4' THEN ARRAY(10, 11, 12) -# MAGIC END -# MAGIC ) m AS month_num -# MAGIC ) -# MAGIC -# MAGIC ,other_not_quarterly_table ( -# MAGIC select -# MAGIC * -# MAGIC from dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all -# MAGIC where market in ('NIAD','Inhaled Extended Market','布地奈德雾化溶液') -# MAGIC -- 范围内只能是 月度来数据的 -# MAGIC ) -# MAGIC -# MAGIC select * from month_table -# MAGIC union all -# MAGIC select * from other_not_quarterly_table \ No newline at end of file diff --git a/EXTERNAL/Retail/z1 dwd_inc_gnd_ext_retail_nataional_作废.py:Zone.Identifier b/EXTERNAL/Retail/z1 dwd_inc_gnd_ext_retail_nataional_作废.py:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2x Retail Total,Top/Top Incre. = Top Sales,对应了旧文件:《全国-分TA-TOP集团》 ---《全国-集团排名》:dwd.dwd_gnd_retail_national_corp_rank ---《全国-产品排名》:dwd.dwd_gnd_retail_national_prd_rank ---《大区-集团排名》:dwd.dwd_gnd_retail_region_corp_rank -------------------------------------------------------------------------------------- - --- COMMAND ---------- - ---直接写入旧的文件对应的表,这样后面的代码都不用改动。 ---新文件《全国-集团排名》筛选:TA=Retail Total,Rx/OTC= Rx,Top/Top Incre. = Top Sales,对应了旧文件:《全国-Rx-TOP集团》 -insert overwrite table dwd.dwd_gnd_ext_retail_nataional_top_corp -( -rank1, -corp_desc, -corporation, -corp_type, -sales_quarter, -sales_amount, -ytd_gr, -ytd_ms, -ytd_delta_ms, -builtinarchivedate, -source_file_path, -source_file_name, -etl_insert_dt -) -select -trim(rank1) as rank1, -corp_desc, -corporation, -`type` as corp_type, -sales_quarter, -sales_amount, -null as ytd_gr, -null as ytd_ms, -null as ytd_delta_ms, -builtinarchivedate, -source_file_path, -source_file_name, -etl_insert_dt -from dwd.dwd_gnd_retail_national_corp_rank -where upper(ta) = 'RETAIL TOTAL' -and upper(rx_otc) = 'RX' -and upper(top_top_incre) = 'TOP SALES' - --- COMMAND ---------- - ---直接写入旧的文件对应的表,这样后面的代码都不用改动。 ---新文件《全国-集团排名》筛选:TA <> Retail Total,Top/Top Incre. = Top Sales,对应了旧文件:《全国-分TA-TOP集团》 -insert overwrite table dwd.dwd_gnd_ext_retail_nataional_ta_top_corp -( -rank1, -corp_desc, -corp_name, -corp_type, -source_name, -sales_quarter, -sales_amount, -ytd_gr, -ytd_ms, -ytd_delta_ms, -builtinarchivedate, -source_file_path, -source_file_name, -etl_insert_dt -) -select -trim(rank1) as rank1, -corp_desc, -corporation as corp_name, -`type` as corp_type, -case when ta = 'GI' then concat(ta,'-',rx_otc) - when ta = 'NIAD-excl. GLP1' then 'DM' - else ta end as source_name, -sales_quarter, -sales_amount, -null as ytd_gr, -null as ytd_ms, -null as ytd_delta_ms, -builtinarchivedate, -source_file_path, -source_file_name, -etl_insert_dt -from dwd.dwd_gnd_retail_national_corp_rank -where upper(ta) <> 'RETAIL TOTAL' -and upper(top_top_incre) = 'TOP SALES' - --- COMMAND ---------- - --------------------从底表获取market 与ta 对应关系------------------------------ -insert overwrite table dws.dws_ext_retail_td_ta -select - market, - ta, - from_utc_timestamp(current_timestamp(),'UTC+8') etl_insert_dt, - from_utc_timestamp(current_timestamp(),'UTC+8') etl_update_dt -from dwd.dwd_gnd_ext_retail_dim_ta; - --- COMMAND ---------- - ---增加retail的省份和城市 geo表 - with t1 as ( - ----获取底表的 province_city -select province_city -from (select zk_region province_city from dwd.dwd_inc_gnd_ext_retail_nataional_pack_union_all -union all -select province_city from dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all) - group by province_city ----增加dtp的部分 -UNION -select distinct province_city from dwd.dwd_gnd_ext_dtp_zk_brand -) -, tmp as ( -----------------按照retail 逻辑划分福厦泉、全国,并从chpa的geo中提取其他维度信息--------------------- -select distinct - case when t1.province_city = '全国' then 'CHT' - when t1.province_city = '福厦泉' then 'FXQ' - else - nvl(t2.geo_key, t3.geo_key) - end geo_key, - t4.AZ_City_tier - ,t4.city_tier, - province_city, - t3.city_name, - t3.city_code, - t3.city_name_en, - case when t1.province_city = '福厦泉' then '福建' - when t1.province_city = '全国' then '全国' - else - nvl(t3.province_name,t2.province_name) - end province_name, - case when t1.province_city = '福厦泉' then 'FJ' - when t1.province_city = '全国' then 'National' - else - nvl(t3.province_code,t2.province_code) - end province_code, - case when t1.province_city = '福厦泉' then 'Fujian' - when t1.province_city = '全国' then 'National' - else - nvl(t3.province_name_en,t2.province_name_en) - end province_name_en, - case when t1.province_city = '福厦泉' then 'SOUTH' - when t1.province_city = '全国' then 'National' - else - nvl(t3.area_code,t2.area_code) - end area_code, - case when t1.province_city = '福厦泉' then '南部地区' - when t1.province_city = '全国' then 'National' - else - nvl(t3.area_name,t2.area_name) - end area_name, - case when t1.province_city = '福厦泉' then 'South China' - when t1.province_city = '全国' then 'National' - else - nvl(t3.area_name_en,t2.area_name_en) - end area_name_en, - - case when t1.province_city = '福厦泉' then 'SOUTH' - when t1.province_city = '全国' then 'National' - else - nvl(t3.rc_code,t2.rc_code) - end rc_code, - case when t1.province_city = '福厦泉' then '南部地区' - when t1.province_city = '全国' then 'National' - else - nvl(t3.rc_name,t2.rc_name) - end rc_name, - case when t1.province_city = '福厦泉' then 'South China' - when t1.province_city = '全国' then 'National' - else - nvl(t3.rc_name_en,t2.rc_name_en) - end rc_name_en -from t1 left -join dm.dm_td_geography t2 -on t1.province_city = t2.province_name and t2.geo_key = t2.province_code -left join dm.dm_td_geography t3 -on t1.province_city = replace(t3.city_name,'市','') and t3.geo_key = t3.city_code -left join dws.dws_ims_td_geo t4 -on t1.province_city = replace(t4.AUDIT_DES_C,'市','') -) --------------------省份、自治区等处理----------------------- -insert overwrite table dm.dm_zk_retail_geo -SELECT - geo_key - ,city_name_en - ,replace(city_name,'市') city_c - ,case when city_code is not null then 'City' else 'Province' END city_type - ,city_tier - ,AZ_City_tier - ,province_name_en - ,province_name - ,province_code - ,city_name city_map - ,case when province_code in ('TJ','CQ','BJ','SH') then concat(province_name,'市') - when province_code in ('SC','YN','LN','SA','GZ','HN','HL','SX','ZJ','JS','SD','JL','FJ','GD','HU','AH','GS','HE','JX','HB') then concat(province_name,'省') - when province_code ='GX' THEN concat(province_name,'壮族自治区') - when province_code ='IM' THEN concat(province_name,'自治区') - ELSE province_name - end province_map - ,city_code - ,province_city - ,area_code - ,area_name - ,area_name_en - ,rc_code - ,rc_name - ,rc_name_en - ,from_utc_timestamp(current_timestamp(),'UTC+8') etl_insert_dt - ,from_utc_timestamp(current_timestamp(),'UTC+8') etl_update_dt - from tmp - -UNION ALL - -SELECT -'ROC' -,'Other Low Tiers' -,'Other Low Tiers' -,'City' -, 1 -, 1 -,'Other Low Tiers' -,'Other Low Tiers' -, null -,'Other Low Tiers' -,'Other Low Tiers' -,'Other Low Tiers' -,'Other Low Tiers' -,'Other Low Tiers' -,'Other Low Tiers' -,'Other Low Tiers' -,'Other Low Tiers' -,'Other Low Tiers' -,'Other Low Tiers' - ,from_utc_timestamp(current_timestamp(),'UTC+8') etl_insert_dt - ,from_utc_timestamp(current_timestamp(),'UTC+8') etl_update_dt - --- COMMAND ---------- - -/** - B2C标签表整合关联tblmarket 表,获取market 信息 - -*/ -insert overwrite table tmp.tmp_zk_retail_pack_property -with tmp1 as ( - - select distinct - prod.iqvia_lineno - ,if( prod.iqvia_pack_code REGEXP '^[0-9]',right(concat('000000000000',prod.iqvia_pack_code),12),prod.iqvia_pack_code) as iqvia_pack_code --right(concat('0000000',prod.iqvia_pack_code),7) - , right(concat('000000000',prod.iqvia_prod_code),9) as PROD_COD - ,prod.iqvia_notes - ,prod.new_pack_flag - ,prod.is_exists_chpa - ,prod.product_id - ,prod.prescription_nature - ,prod.medicine_type - ,prod.zk_medicine_tier1 - ,prod.zk_medicine_tier2 - ,prod.zk_medicine_tier3 - ,prod.zk_medicine_tier4 - ,prod.common_name - ,prod.dosage_form - ,prod.user_type - ,prod.category_name - ,prod.product_name - ,prod.brand_name - ,prod.zk_manu_des - ,prod.zk_corp_des - ,prod.zk_pack_des - ,prod.counting_unit_a - ,prod.dosage_unit_a - ,prod.unit_a - ,prod.app1_cod - ,prod.app1_des - ,prod.app1_des_c - ,prod.app2_cod - ,prod.app2_des - ,prod.app2_des_c - ,prod.app3_cod - ,prod.app3_des - ,prod.app3_des_c - ,prod.atc1_cod - ,prod.atc1_des - ,prod.atc1_des_c - ,prod.atc2_cod - ,prod.atc2_des - ,prod.atc2_des_c - ,prod.atc3_cod - ,prod.atc3_des - ,prod.atc3_des_c - ,prod.atc4_cod - ,prod.atc4_des - ,prod.atc4_des_c - ,prod.bio_desc - ,right(concat('000000',nvl(prod.cmps_cod,0 )),6) cmps_cod - ,prod.cmps_des - ,prod.cmps_des_c - ,prod.corp_cod - ,prod.corp_des - ,prod.corp_des_c - ,prod.edl_desc - ,prod.eth_otc_desc - ,prod.gene_orig_desc - ,prod.gqce_desc - ,prod.manu_cod - ,prod.manu_des - ,prod.manu_des_c - ,prod.mnfl_cod - ,prod.mnfl_des - ,prod.nrdl_desc - ,prod.pack_des - ,prod.stgh_des - ,prod.pack_lch - ,prod.paed_desc - ,prod.prod_des - ,prod.prod_des_c - ,prod.tcm_desc - ,prod.vbp_desc - ,prod.unit - ,prod.counting_unit - ,prod.dosage_unit - ,nvl(MOLE.NRDL_Entry_Date,'') AS NRDL_ENTRY_DATE - ,tblmkt.market - ,tblmkt.bu - ,nvl(tblmkt.extend_market_ratio,1) as extend_market_ratio -from dwd.dwd_gnd_ext_retail_pack_property prod -LEFT JOIN dwd.dwd_ims_td_pack_additional_attribute MOLE ON prod.iqvia_pack_code = MOLE.Pack_Code -left join ( - select market - ,bu - ,atc1_code - ,atc2_code - ,atc3_code - ,atc4_code - ,nfc1_code - ,nfc2_code - ,nfc3_code - ,pack_code - ,Molecule_Code - ,zk_common_name - ,extend_market_ratio - ,zk_product_id - ,zk_dosage_form - ,Product_Code - ,not_in_flag - ,extend_market - from dwd.dwd_gnd_ext_retail_tblmarket - -- where (market not in( 'ZOK Default Market', 'Inhaled Extended Market') or (case when market in( 'Inhaled Extended Market') then zk_product_id is not null end)) - where 1=1 - and Extend_Market IS NULL - AND ( NOT_IN_FLAG IS NULL or NOT_IN_FLAG = '1' ) -)tblmkt -on nvl(prod.ATC1_COD,'') = case when tblmkt.ATC1_Code is null then nvl(prod.ATC1_COD,'') else tblmkt.ATC1_Code end -and nvl(prod.ATC2_COD,'') = case when tblmkt.ATC2_Code is null then nvl(prod.ATC2_COD,'') else tblmkt.ATC2_Code end -and nvl(prod.ATC3_COD,'') = case when tblmkt.ATC3_Code is null then nvl(prod.ATC3_COD,'') else tblmkt.ATC3_Code end -and nvl(prod.ATC4_COD,'') = case when tblmkt.ATC4_Code is null then nvl(prod.ATC4_COD,'') else tblmkt.ATC4_Code end -and nvl(prod.APP1_COD,'') = case when tblmkt.NFC1_Code is null then nvl(prod.APP1_COD,'') else tblmkt.NFC1_Code end -and nvl(prod.APP2_COD,'') = case when tblmkt.NFC2_Code is null then nvl(prod.APP2_COD,'') else tblmkt.NFC2_Code end -and nvl(prod.APP3_COD,'') = case when tblmkt.NFC3_Code is null then nvl(prod.APP3_COD,'') else tblmkt.NFC3_Code end -and right(concat('000000000',nvl(prod.iqvia_prod_code,0 )),9) = case when tblmkt.Product_Code is null then right(concat('000000000',nvl(prod.iqvia_prod_code,0 )),9) else right(concat('000000000',nvl(tblmkt.Product_Code,0 )),9) end -and if(nvl(prod.iqvia_pack_code,0 ) REGEXP '^[0-9]' ,right(concat('000000000000',nvl(prod.iqvia_pack_code,0 )),12),nvl(prod.iqvia_pack_code,0 )) - = case when tblmkt.Pack_Code is null then if(nvl(prod.iqvia_pack_code,0 ) REGEXP '^[0-9]' ,right(concat('000000000000',nvl(prod.iqvia_pack_code,0 )),12),nvl(prod.iqvia_pack_code,0 )) - else if(nvl(tblmkt.Pack_Code,0 ) REGEXP '^[0-9]' ,right(concat('000000000000',nvl(tblmkt.Pack_Code,0 )),12),nvl(tblmkt.Pack_Code,0 )) end --- and right(concat('00000',nvl(prod.iqvia_prod_code,0 )),5) = case when tblmkt.Product_Code is null then right(concat('00000',nvl(prod.iqvia_prod_code,0 )),5) else right(concat('00000',nvl(tblmkt.Product_Code,0 )),5) end --- and right(concat('0000000',nvl(prod.iqvia_pack_code,0 )),7) = case when tblmkt.Pack_Code is null then right(concat('0000000',nvl(prod.iqvia_pack_code,0 )),7) else right(concat('0000000',tblmkt.Pack_Code ),7 ) end -and right(concat('000000',nvl(prod.cmps_cod,0 )),6) = case when tblmkt.Molecule_Code is null then right(concat('000000',nvl(prod.cmps_cod,0 )),6) else right(concat('000000',nvl(tblmkt.Molecule_Code,0 )),6) end -where tblmkt.market is not null - -) -, tmp2 as ( - - select distinct - prod.iqvia_lineno - ,if( prod.iqvia_pack_code REGEXP '^[0-9]',right(concat('000000000000',prod.iqvia_pack_code),12),prod.iqvia_pack_code) as iqvia_pack_code --right(concat('0000000',prod.iqvia_pack_code),7) - , right(concat('000000000',prod.iqvia_prod_code),9) as PROD_COD - ,prod.iqvia_notes - ,prod.new_pack_flag - ,prod.is_exists_chpa - ,prod.product_id - ,prod.prescription_nature - ,prod.medicine_type - ,prod.zk_medicine_tier1 - ,prod.zk_medicine_tier2 - ,prod.zk_medicine_tier3 - ,prod.zk_medicine_tier4 - ,prod.common_name - ,prod.dosage_form - ,prod.user_type - ,prod.category_name - ,prod.product_name - ,prod.brand_name - ,prod.zk_manu_des - ,prod.zk_corp_des - ,prod.zk_pack_des - ,prod.counting_unit_a - ,prod.dosage_unit_a - ,prod.unit_a - ,prod.app1_cod - ,prod.app1_des - ,prod.app1_des_c - ,prod.app2_cod - ,prod.app2_des - ,prod.app2_des_c - ,prod.app3_cod - ,prod.app3_des - ,prod.app3_des_c - ,prod.atc1_cod - ,prod.atc1_des - ,prod.atc1_des_c - ,prod.atc2_cod - ,prod.atc2_des - ,prod.atc2_des_c - ,prod.atc3_cod - ,prod.atc3_des - ,prod.atc3_des_c - ,prod.atc4_cod - ,prod.atc4_des - ,prod.atc4_des_c - ,prod.bio_desc - ,right(concat('000000',nvl(prod.cmps_cod,0 )),6) cmps_cod - ,prod.cmps_des - ,prod.cmps_des_c - ,prod.corp_cod - ,prod.corp_des - ,prod.corp_des_c - ,prod.edl_desc - ,prod.eth_otc_desc - ,prod.gene_orig_desc - ,prod.gqce_desc - ,prod.manu_cod - ,prod.manu_des - ,prod.manu_des_c - ,prod.mnfl_cod - ,prod.mnfl_des - ,prod.nrdl_desc - ,prod.pack_des - ,prod.stgh_des - ,prod.pack_lch - ,prod.paed_desc - ,prod.prod_des - ,prod.prod_des_c - ,prod.tcm_desc - ,prod.vbp_desc - ,prod.unit - ,prod.counting_unit - ,prod.dosage_unit - ,nvl(MOLE.NRDL_Entry_Date,'') AS NRDL_ENTRY_DATE - ,tblmkt.market - ,tblmkt.bu - ,nvl(tblmkt.extend_market_ratio,1) as extend_market_ratio - ,1 as f_flag -from dwd.dwd_gnd_ext_retail_pack_property prod -LEFT JOIN dwd.dwd_ims_td_pack_additional_attribute MOLE ON prod.iqvia_pack_code = MOLE.Pack_Code -left join ( - select market - ,bu - ,atc1_code - ,atc2_code - ,atc3_code - ,atc4_code - ,nfc1_code - ,nfc2_code - ,nfc3_code - ,pack_code - ,Molecule_Code - ,zk_common_name - ,extend_market_ratio - ,zk_product_id - ,zk_dosage_form - ,Product_Code - ,not_in_flag - ,extend_market - from dwd.dwd_gnd_ext_retail_tblmarket - -- where (market not in( 'ZOK Default Market', 'Inhaled Extended Market') or (case when market in( 'Inhaled Extended Market') then zk_product_id is not null end)) - where 1=1 - and Extend_Market IS NULL and NOT_IN_FLAG ='0' - -)tblmkt -on nvl(prod.ATC1_COD,'') = case when tblmkt.ATC1_Code is null then nvl(prod.ATC1_COD,'') else tblmkt.ATC1_Code end -and nvl(prod.ATC2_COD,'') = case when tblmkt.ATC2_Code is null then nvl(prod.ATC2_COD,'') else tblmkt.ATC2_Code end -and nvl(prod.ATC3_COD,'') = case when tblmkt.ATC3_Code is null then nvl(prod.ATC3_COD,'') else tblmkt.ATC3_Code end -and nvl(prod.ATC4_COD,'') = case when tblmkt.ATC4_Code is null then nvl(prod.ATC4_COD,'') else tblmkt.ATC4_Code end -and nvl(prod.APP1_COD,'') = case when tblmkt.NFC1_Code is null then nvl(prod.APP1_COD,'') else tblmkt.NFC1_Code end -and nvl(prod.APP2_COD,'') = case when tblmkt.NFC2_Code is null then nvl(prod.APP2_COD,'') else tblmkt.NFC2_Code end -and nvl(prod.APP3_COD,'') = case when tblmkt.NFC3_Code is null then nvl(prod.APP3_COD,'') else tblmkt.NFC3_Code end -and right(concat('000000000',nvl(prod.iqvia_prod_code,0 )),9) = case when tblmkt.Product_Code is null then right(concat('000000000',nvl(prod.iqvia_prod_code,0 )),9) else right(concat('000000000',nvl(tblmkt.Product_Code,0 )),9) end -and if(nvl(prod.iqvia_pack_code,0 ) REGEXP '^[0-9]' ,right(concat('000000000000',nvl(prod.iqvia_pack_code,0 )),12),nvl(prod.iqvia_pack_code,0 )) - = case when tblmkt.Pack_Code is null then if(nvl(prod.iqvia_pack_code,0 ) REGEXP '^[0-9]' ,right(concat('000000000000',nvl(prod.iqvia_pack_code,0 )),12),nvl(prod.iqvia_pack_code,0 )) - else if(nvl(tblmkt.Pack_Code,0 ) REGEXP '^[0-9]' ,right(concat('000000000000',nvl(tblmkt.Pack_Code,0 )),12),nvl(tblmkt.Pack_Code,0 )) end -and right(concat('000000',nvl(prod.cmps_cod,0 )),6) = case when tblmkt.Molecule_Code is null then right(concat('000000',nvl(prod.cmps_cod,0 )),6) else right(concat('000000',nvl(tblmkt.Molecule_Code,0 )),6) end -where tblmkt.market is not null - - -) -, tmp3 as ( - select distinct - tmp1.iqvia_lineno - ,tmp1.iqvia_pack_code - ,tmp1.PROD_COD - ,tmp1.iqvia_notes - ,tmp1.new_pack_flag - ,tmp1.is_exists_chpa - ,tmp1.product_id - ,tmp1.prescription_nature - ,tmp1.medicine_type - ,tmp1.zk_medicine_tier1 - ,tmp1.zk_medicine_tier2 - ,tmp1.zk_medicine_tier3 - ,tmp1.zk_medicine_tier4 - ,tmp1.common_name - ,tmp1.dosage_form - ,tmp1.user_type - ,tmp1.category_name - ,tmp1.product_name - ,tmp1.brand_name - ,tmp1.zk_manu_des - ,tmp1.zk_corp_des - ,tmp1.zk_pack_des - ,tmp1.counting_unit_a - ,tmp1.dosage_unit_a - ,tmp1.unit_a - ,tmp1.app1_cod - ,tmp1.app1_des - ,tmp1.app1_des_c - ,tmp1.app2_cod - ,tmp1.app2_des - ,tmp1.app2_des_c - ,tmp1.app3_cod - ,tmp1.app3_des - ,tmp1.app3_des_c - ,tmp1.atc1_cod - ,tmp1.atc1_des - ,tmp1.atc1_des_c - ,tmp1.atc2_cod - ,tmp1.atc2_des - ,tmp1.atc2_des_c - ,tmp1.atc3_cod - ,tmp1.atc3_des - ,tmp1.atc3_des_c - ,tmp1.atc4_cod - ,tmp1.atc4_des - ,tmp1.atc4_des_c - ,tmp1.bio_desc - ,tmp1.cmps_cod - ,tmp1.cmps_des - ,tmp1.cmps_des_c - ,tmp1.corp_cod - ,tmp1.corp_des - ,tmp1.corp_des_c - ,tmp1.edl_desc - ,tmp1.eth_otc_desc - ,tmp1.gene_orig_desc - ,tmp1.gqce_desc - ,tmp1.manu_cod - ,tmp1.manu_des - ,tmp1.manu_des_c - ,tmp1.mnfl_cod - ,tmp1.mnfl_des - ,tmp1.nrdl_desc - ,tmp1.pack_des - ,tmp1.stgh_des - ,tmp1.pack_lch - ,tmp1.paed_desc - ,tmp1.prod_des - ,tmp1.prod_des_c - ,tmp1.tcm_desc - ,tmp1.vbp_desc - ,tmp1.unit - ,tmp1.counting_unit - ,tmp1.dosage_unit - ,tmp1.NRDL_ENTRY_DATE - ,tmp1.market - ,nvl(t2.bu,tmp1.bu) as bu - ,tmp1.extend_market_ratio - ,IF(tmp1.corp_des_c in('阿斯利康制药集团') ,'Y','N') is_az -from tmp1 left join tmp2 - on nvl(tmp1.ATC1_COD,'') = nvl(tmp2.ATC1_COD,'') - and nvl(tmp1.ATC2_COD,'') = nvl(tmp2.ATC2_COD,'') - and nvl(tmp1.ATC3_COD,'') = nvl(tmp2.ATC3_COD,'') - and nvl(tmp1.ATC4_COD,'') = nvl(tmp2.ATC4_COD,'') - and nvl(tmp1.APP1_COD,'') = nvl(tmp2.APP1_COD,'') - and nvl(tmp1.APP2_COD,'') = nvl(tmp2.APP2_COD,'') - and nvl(tmp1.APP3_COD,'') = nvl(tmp2.APP3_COD,'') - and nvl(tmp1.PROD_COD,'') = nvl(tmp2.PROD_COD,'') - and nvl(tmp1.iqvia_pack_code,'') = nvl(tmp2.iqvia_pack_code,'') - and nvl(tmp1.common_name ,'') = nvl(tmp2.common_name ,'') - and nvl(tmp1.product_id,'') = nvl(tmp2.product_id,'') - and nvl(tmp1.dosage_form ,'') = nvl(tmp2.dosage_form ,'') - and nvl(tmp1.CMPS_COD,'') = nvl(tmp2.CMPS_COD,'') - and nvl(tmp1.market ,'') = nvl(tmp2.market ,'') -left join (select Market, BU,Extend_Market,Extend_Market_Ratio from dwd.dwd_gnd_ext_retail_tblmarket - -- where (market not in( 'ZOK Default Market', 'Inhaled Extended Market') and Extend_Market IS NOT NULL - -- )or (case when market in( 'Inhaled Extended Market') then zk_product_id is not null end) - where Extend_Market IS NOT NULL - ) t2 on tmp1.Market=t2.Extend_Market -where NVL(tmp2.f_flag,0) !=1 - -) - - --- 合并所有市场数据 -select - * -from tmp3 ---没有匹配上的给默认市场:Non AZ Retail Related Market -union all -select - prod.iqvia_lineno - ,if( prod.iqvia_pack_code REGEXP '^[0-9]',right(concat('000000000000',prod.iqvia_pack_code),12),prod.iqvia_pack_code) as iqvia_pack_code - ,right(concat('000000000',prod.iqvia_prod_code),9) as iqvia_prod_code - -- ,right(concat('0000000', prod.iqvia_pack_code ),7 ) iqvia_pack_code - -- ,right(concat('00000', prod.iqvia_prod_code ),5) iqvia_prod_code - ,prod.iqvia_notes - ,prod.new_pack_flag - ,prod.is_exists_chpa - ,prod.product_id - ,prod.prescription_nature - ,prod.medicine_type - ,prod.zk_medicine_tier1 - ,prod.zk_medicine_tier2 - ,prod.zk_medicine_tier3 - ,prod.zk_medicine_tier4 - ,prod.common_name - ,prod.dosage_form - ,prod.user_type - ,prod.category_name - ,prod.product_name - ,prod.brand_name - ,prod.zk_manu_des - ,prod.zk_corp_des - ,prod.zk_pack_des - ,prod.counting_unit_a - ,prod.dosage_unit_a - ,prod.unit_a - ,prod.app1_cod - ,prod.app1_des - ,prod.app1_des_c - ,prod.app2_cod - ,prod.app2_des - ,prod.app2_des_c - ,prod.app3_cod - ,prod.app3_des - ,prod.app3_des_c - ,prod.atc1_cod - ,prod.atc1_des - ,prod.atc1_des_c - ,prod.atc2_cod - ,prod.atc2_des - ,prod.atc2_des_c - ,prod.atc3_cod - ,prod.atc3_des - ,prod.atc3_des_c - ,prod.atc4_cod - ,prod.atc4_des - ,prod.atc4_des_c - ,prod.bio_desc - ,right(concat('00000',nvl(prod.cmps_cod,0 )),6) cmps_cod - ,prod.cmps_des - ,prod.cmps_des_c - ,prod.corp_cod - ,prod.corp_des - ,prod.corp_des_c - ,prod.edl_desc - ,prod.eth_otc_desc - ,prod.gene_orig_desc - ,prod.gqce_desc - ,prod.manu_cod - ,prod.manu_des - ,prod.manu_des_c - ,prod.mnfl_cod - ,prod.mnfl_des - ,prod.nrdl_desc - ,prod.pack_des - ,prod.stgh_des - ,prod.pack_lch - ,prod.paed_desc - ,prod.prod_des - ,prod.prod_des_c - ,prod.tcm_desc - ,prod.vbp_desc - ,prod.unit - ,prod.counting_unit - ,prod.dosage_unit - ,nvl(MOLE.NRDL_Entry_Date,'') AS NRDL_ENTRY_DATE - ,'Non AZ Retail Related Market' as market - ,tmp3.bu - ,nvl(tmp3.extend_market_ratio,1) as extend_market_ratio - ,IF(PROD.corp_des_c in('阿斯利康制药集团') ,'Y','N') is_az - -from dwd.dwd_gnd_ext_retail_pack_property prod -left join tmp3 on prod.product_id = tmp3.product_id -LEFT JOIN dwd.dwd_ims_td_pack_additional_attribute MOLE ON prod.iqvia_pack_code = MOLE.Pack_Code -where tmp3.product_id is null - - --- COMMAND ---------- - ------处理 Nifedipine 上传时有特殊字符,无法匹配---- -update tmp.tmp_zk_retail_pack_property -set market='Nifedipine Market' -where market like 'Nifedipine%' - --- COMMAND ---------- - --- MAGIC %md --- MAGIC ### brand拆分 - --- COMMAND ---------- - ---------------------------------------------获取省份文件中的品牌的数据,用于后续比例拆分-------------------------- -insert overwrite table tmp.tmp_retail_brand -SELECT - YYYYMM, - TA, - case - when zk_brand_category in ('氨氯地平阿托伐他汀钙片', '多达一', '天依宁', 'OTHERS') then zk_brand_category -- - else b.PROD_DES_C - end as PROD_DES_C, - province_city, - brand_cat_type, - A.zk_common_name, - A.market, - SUM(sales_val) sales_val, - cast(SUM(sales_vol) as decimal(30,10)) sales_vol -FROM - dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all A - left JOIN ( - select - distinct PROD_DES_C, - ZK_Prod_C - from - dwd.dwd_inc_gnd_retail_b2c_label_total - ) B ON nvl(A.zk_brand_category, '') = nvl(B.ZK_Prod_C, '') - -where - ranked_by = 'volume' --and brand_cat_type = '品牌' --and TA = 'CV' -GROUP BY - YYYYMM, - TA, - case - when zk_brand_category in ('氨氯地平阿托伐他汀钙片', '多达一', '天依宁', 'OTHERS') then zk_brand_category - else b.PROD_DES_C - end, - province_city, - A.market, - A.zk_common_name, - brand_cat_type - --- COMMAND ---------- - ------------------------------------------------------------------------------------------------------------- ---修改时间:20240903 ---修改人:FanXujia ---修改内容:新增一个高血压的子市场《酒石酸美托洛尔》,实为高血压市场里的一个分子式,到pack、到省份粒度。品牌粒度文件中没有他。 -------------------------------------------------------------------------------------------------------------- - - --- COMMAND ---------- - ----------------------------把品牌、全国数据拆分,并得到比例----------------------------710 修改 ------------------ -insert overwrite table tmp.tmp_zk_retail_brandTotal -WITH MKT AS ( - ----------------MKT 总值------------ -select a.YYYYMM,ta,a.province_city,a.brand_cat_type,a.market, - a.sales_val - ,a.sales_vol - ,B.brand_mkt marketmapping -from tmp.tmp_retail_brand a -left join (SELECT DISTINCT brand_mkt,market_mapping FROM dwd.dwd_gnd_ext_retail_corresponding_relationship WHERE category_name IS NOT NULL AND TA IN ('CV','GI')) B -on a.market=b.brand_mkt and B.brand_mkt = B.market_mapping -where brand_cat_type = '品类' -and A.TA IN ('CV','GI') AND B.brand_mkt IS not null -), brand_df AS ( - -------归属于分子式子市场的品牌------ -select a.YYYYMM,a.TA,a.PROD_DES_C,a.province_city - ,case when a.market = 'pack-CV-高血压-化学药-全国.xlsx' then '氨氯地平,阿托伐他汀' - when a.market = 'pack-CV-他汀类+血脂康-全国.xlsx' then '氨氯地平,阿托伐他汀' else A.market end submkt - ,cmps_des_c - ,case when a.market = 'pack-CV-高血压-化学药-全国.xlsx' then '高血压用药' - when a.market = 'pack-CV-他汀类+血脂康-全国.xlsx' then '他汀类+血脂康' else B.brand_mkt end marketmapping - -- when a.market = 'pack-CV-他汀类+血脂康-全国.xlsx' then '他汀类+血脂康' else coalesce(B.brand_mkt,A.market ) end marketmapping - ,a.sales_val,a.sales_vol -from tmp.tmp_retail_brand a -left join (select distinct brand_mkt,category_name from dwd.dwd_gnd_ext_retail_corresponding_relationship where category_name is not null AND TA IN ('CV','GI') AND category_name<>brand_mkt) B -ON a.market=b.category_name -left join (select distinct prod_des_c,cmps_des_c from dwd.dwd_gnd_ext_retail_pack_property ) C ON A.PROD_DES_C=C.prod_des_c -where brand_cat_type = '品牌' -and a.market not in (select distinct brand_mkt from dwd.dwd_gnd_ext_retail_corresponding_relationship where brand_mkt is not null ) -and TA IN ('CV','GI') -),cmps_total as ( - ---------------------分子式汇总值------------ - select a.YYYYMM,ta,a.province_city,a.brand_cat_type --,c.zk_common_name,c.cmps_des_c - ,a.market,a.sales_val,a.sales_vol,B.brand_mkt marketmapping -from tmp.tmp_retail_brand a -left join (SELECT DISTINCT brand_mkt,category_name FROM dwd.dwd_gnd_ext_retail_corresponding_relationship WHERE category_name IS NOT NULL AND TA IN ('CV','GI')) B -on a.market=b.category_name and B.brand_mkt<> B.category_name --- LEFT JOIN (select DISTINCT zk_common_name,cmps_des_c,marketmapping from brand_df) c on c.zk_common_name= a.market and B.brand_mkt = c.marketmapping -where brand_cat_type = '品类' -and A.TA IN ('CV','GI') and B.brand_mkt is not null -), mkt_brand as ( - ----直接归属mkt 下的brand ,不能按同一个比例处理,需单独减去------------------ - select a.YYYYMM,a.TA,a.province_city, -case when a.market = 'pack-CV-高血压-化学药-全国.xlsx' then '氨氯地平,阿托伐他汀' - when a.market = 'pack-CV-他汀类+血脂康-全国.xlsx' then '氨氯地平,阿托伐他汀' else A.market end market -,concat('Others_cmps_',cmps_des_c ) cmps_des_c -,concat('Others_cmps_',a.market ) marketmapping -,a.PROD_DES_C - ,case when a.market = 'pack-CV-高血压-化学药-全国.xlsx' then '氨氯地平,阿托伐他汀' - when a.market = 'pack-CV-他汀类+血脂康-全国.xlsx' then '氨氯地平,阿托伐他汀' else A.market end submkt - ,a.sales_val,a.sales_vol -from tmp.tmp_retail_brand a -left join (select distinct prod_des_c,cmps_des_c from dwd.dwd_gnd_ext_retail_pack_property ) C ON A.PROD_DES_C=C.prod_des_c -where brand_cat_type = '品牌' -and case when a.market = 'pack-CV-高血压-化学药-全国.xlsx' then '氨氯地平,阿托伐他汀' - when a.market = 'pack-CV-他汀类+血脂康-全国.xlsx' then '氨氯地平,阿托伐他汀' else A.market end in (select distinct brand_mkt from dwd.dwd_gnd_ext_retail_corresponding_relationship where brand_mkt is not null and ta IN ('CV','GI')) -and TA IN ('CV','GI') -and a.PROD_DES_C not in (select distinct PROD_DES_C from brand_df) -) ---------酒石酸美托洛尔 -,metoprolol_tartrat as -( -select YYYYMM, -'CV' as TA, -zk_region as province_city, -'高血压用药' as marketmapping, -sum(sales_value) as sales_val, -sum(sales_unit) as sales_vol -from dwd.dwd_inc_gnd_ext_retail_nataional_pack_union_all -where brand_flag = 'pack-CV-酒石酸美托洛尔.xlsx' -group by YYYYMM,zk_region -) -, brand_data AS ( - --------------------计算others_cmps----------------- - --从others_cmps这里扣除酒石酸美托洛尔 -select - MKT.YYYYMM - ,MKT.ta,MKT.province_city - ,MKT.market - ,concat('Others_cmps_',mkt.market ) cmps_des_c - ,concat('Others_cmps_',mkt.market ) prodmapping - ,MKT.sales_val - b.sales_val - coalesce(val,0 ) - coalesce(metoprolol_tartrat.sales_val,0) sales_val - ,MKT.sales_vol - b.sales_vol -coalesce(vol, 0 ) - coalesce(metoprolol_tartrat.sales_vol,0) sales_vol -FROM MKT inner JOIN - -- (select YYYYMM,province_city,marketmapping,sum(sales_val) sales_val,sum(sales_vol) sales_vol from cmps_total group by YYYYMM,province_city,marketmapping) b - ( - select - YYYYMM,province_city,marketmapping,sum(sales_val) sales_val,sum(sales_vol) sales_vol - from ( - select YYYYMM,province_city,marketmapping,sum(sales_val) sales_val,sum(sales_vol) sales_vol from cmps_total group by YYYYMM,province_city,marketmapping - union all - select YYYYMM,province_city - ,case when market = 'pack-CV-高血压-化学药-全国.xlsx' then '高血压用药' - when market = 'pack-CV-他汀类+血脂康-全国.xlsx' then '他汀类+血脂康' end marketmapping - ,sum(sales_val),sum(sales_vol) - from tmp.tmp_retail_brand where PROD_DES_C in ('多达一', '氨氯地平阿托伐他汀钙片', '天依宁', 'OTHERS') - group by YYYYMM,province_city - ,case when market = 'pack-CV-高血压-化学药-全国.xlsx' then '高血压用药' - when market = 'pack-CV-他汀类+血脂康-全国.xlsx' then '他汀类+血脂康' end - ) group by YYYYMM,province_city,marketmapping - ) b -on MKT.YYYYMM=b.YYYYMM and MKT.province_city=b.province_city and MKT.market=b.marketmapping -left join (select YYYYMM,TA,province_city,market,marketmapping,sum(sales_val) val ,sum(sales_vol) vol - from mkt_brand - group by YYYYMM,TA,province_city,market,marketmapping - ) mkt_brand on MKT.YYYYMM =mkt_brand.YYYYMM and MKT.market =mkt_brand.market and MKT.province_city=mkt_brand.province_city -left join metoprolol_tartrat -on MKT.YYYYMM = metoprolol_tartrat.YYYYMM AND MKT.market = metoprolol_tartrat.marketmapping AND MKT.province_city = metoprolol_tartrat.province_city -union all ---------------计算others_cmps_brand----------------- ---cmps_total里没有酒石酸美托洛尔,因此这里不用减酒石酸美托洛尔 -SELECT a.YYYYMM,a.ta,a.province_city - ,a.marketmapping market - ,cmps_des_c - ,CASE WHEN A.MARKET ='其他拉唑类' THEN 'Others_其他拉唑类' ELSE coalesce(concat('Others_',b.cmps_des_c),concat('Others_',A.marketmapping) ) END prodmapping - ,a.sales_val - coalesce(b.sales_val,0 ) sales_val - ,a.sales_vol - coalesce(b.sales_vol,0 ) sales_vol -from cmps_total a -LEFT JOIN (select YYYYMM,province_city,submkt,cmps_des_c,marketmapping,sum(sales_val) sales_val,sum(sales_vol) sales_vol from brand_df GROUP BY YYYYMM,province_city,submkt,marketmapping,cmps_des_c ) b -on a.YYYYMM=b.YYYYMM and a.province_city=b.province_city and a.marketmapping=b.marketmapping and a.market=b.submkt -union all ---------------归属于分子式子市场的品牌----------- -SELECT - YYYYMM,TA,province_city - ,marketmapping market - ,cmps_des_c - ,PROD_DES_C - ,sales_val - ,sales_vol -FROM brand_df -union all --------------直接归属于市场的品牌 -select - YYYYMM,TA,province_city - ,market - ,cmps_des_c - ,prod_des_c - ,sales_val - ,sales_vol -from mkt_brand -------这里不用union上酒石酸美托洛尔,因为他有pack粒度的数,不需要计算比例 -) - -----计算拆分比例------ -SELECT - YYYYMM - ,ta - ,province_city - ,market - ,case when ta='CV' AND prodmapping ='OTHERS' THEN '氨氯地平,阿托伐他汀' - WHEN TA='GI' AND cmps_des_c IS NULL THEN '其他拉唑类' - ELSE cmps_des_c END cmps_des_c - ,prodmapping - ,sales_val - ,sales_vol - ,nvl(cast(sales_val as decimal(38,15)) / sum(sales_val) over(PARTITION BY YYYYMM,ta,market,prodmapping),0.0384615384615385) valRate - ,nvl(cast(sales_vol as decimal(38,15)) / sum(sales_vol) over(PARTITION BY YYYYMM,ta,market,prodmapping),0.0384615384615385) volRate -from ( - -------------倒减ROC-------------- - SELECT - A.YYYYMM - ,A.ta - ,'ROC' province_city - ,A.market - ,cmps_des_c - ,case when A.prodmapping ='OTHERS' THEN 'Others_氨氯地平阿托伐他汀钙片' ELSE A.prodmapping END prodmapping - ,A.sales_val - coalesce(B.sales_val ,0 ) sales_val - ,A.sales_vol - coalesce(B.sales_vol,0) sales_vol - FROM brand_data A - LEFT JOIN (select YYYYMM,market,prodmapping,sum(sales_val) sales_val,sum(sales_vol) sales_vol from brand_data where province_city<>'全国' GROUP BY YYYYMM,market,prodmapping) B - ON A.YYYYMM =B.YYYYMM AND A.prodmapping=B.prodmapping AND A.markeT=B.market - WHERE A.province_city ='全国' - union all - ------计算好的比例拆分基础数据---- - select - YYYYMM,ta,province_city,market,cmps_des_c - ,case when A.prodmapping ='OTHERS' THEN 'Others_氨氯地平阿托伐他汀钙片' ELSE A.prodmapping END prodmapping - - ,sales_val,sales_vol - FROM brand_data A - where province_city <>'全国' -) - --- COMMAND ---------- - --- ----------------------------------------------pack全国数据 rd 抗血栓2通用名 不用补数,niad GI,re 逻辑特殊,所以排除,仅保留CV 他汀、高血压数据------------------------------------------------- -------对pack 进行处理,关联维度表获取prod ,cmps,market 等数据,同时,对省份文件有的品牌填充原有品牌值,省份文件存在分子式但品牌不在的用others_cmps方式记录,其他为others_market,用于按特定比例拆分数据--- -create or replace table tmp.tmp_zk_retail_pack -using delta -as ---将酒石酸美托洛尔的数据从高血压的数据中排除掉 -------------------注意事项--------------------------------------------------------------- ---使用相减的方法,每个省份都会剩下0.0几 ---因此直接使用not in的方法 ------------------------------------------------------------------------------------------ -with pack_without_metoprolol_tartrat as ( - -select * -from dwd.dwd_inc_gnd_ext_retail_nataional_pack_union_all --- 新数据中不含 酒石酸美托洛尔 - -- where zk_product_id not in ( - -- select distinct zk_product_id from dwd.dwd_inc_gnd_ext_retail_nataional_pack_union_all - -- where brand_flag = 'pack-CV-酒石酸美托洛尔.xlsx' - -- ) -) -,tmp as ( - select - A.YYYYMM, - a.zk_product_id, - B.iqvia_pack_code, - E.market_mapping market, - case - when b.cmps_des_c = '氨氯地平,阿托伐他汀' - and b.prod_des_c is null then 'OTHERS_氨氯地平,阿托伐他汀' - else B.prod_des_c - end prod_des_c, - - case - when b.cmps_des_c = '氨氯地平,阿托伐他汀' - and b.prod_des_c is null - THEN 'Others_氨氯地平阿托伐他汀钙片' - ELSE coalesce(C.prodmapping,concat('Others_',F.cmps_des_c),CONCAT('Others_cmps_',E.brand_mkt) ) - END PROD_MAPPING, - -- coalesce(C.prodmapping,concat('Others_',F.cmps_des_c),CONCAT('Others_cmps_',E.brand_mkt) ) PROD_MAPPING, - - SUM(A.sales_value) sales_value, - sum(sales_unit) sales_unit, - SUM(A.sales_unit * b.counting_unit) counting_unit -from - pack_without_metoprolol_tartrat A - left JOIN ( - select - distinct product_id, - prod_des_c, - iqvia_pack_code, - counting_unit/coalesce(unit,1) counting_unit, - cmps_des_c - from - dwd.dwd_gnd_ext_retail_pack_property - ) B ON A.zk_product_id = B.product_id - LEFT JOIN ( - SELECT - DISTINCT brand_mkt, - file_name, - market_mapping - FROM - DWD.dwd_gnd_ext_retail_corresponding_relationship - ) E ON A.brand_flag = E.file_name - LEFT JOIN ( - SELECT - DISTINCT YYYYMM, - prodmapping, - market - FROM - tmp.tmp_ZK_retail_brandTotal - ) C ON A.YYYYMM = C.YYYYMM - AND B.prod_des_c = C.prodmapping - AND E.market_mapping = C.market ---NIAD 直接取pack数据,gi market 剔除逻辑,RE根据maket拆分 、RE包含雾化器数据----- - left join (SELECT DISTINCT cmps_des_c FROM TMP.tmp_zk_retail_brandTotal where cmps_des_c is NOT null ) F - ON B.cmps_des_c=F.cmps_des_c -where - brand_flag NOT in ( - 'pack-DM-口服降糖化学药.xlsx', - 'pack-GI-慢性胃炎胃溃疡-全国.xlsx', - 'pack-RE-慢阻肺-全国.xlsx', - 'pack-雾化器-全国&县域数据.xlsx', - 'pack-CV-抗血栓2通用名-全国.xlsx', - 'pack-RD-肾科-全国.xlsx' - ) -GROUP BY - A.YYYYMM, - a.zk_product_id, - B.iqvia_pack_code, - case - when b.cmps_des_c = '氨氯地平,阿托伐他汀' - and b.prod_des_c is null then 'OTHERS_氨氯地平,阿托伐他汀' - else B.prod_des_c - end, - E.market_mapping, - --coalesce(C.prodmapping,concat('Others_',F.cmps_des_c),CONCAT('Others_cmps_',E.brand_mkt) ) - case - when b.cmps_des_c = '氨氯地平,阿托伐他汀' - and b.prod_des_c is null - THEN 'Others_氨氯地平阿托伐他汀钙片' - ELSE coalesce(C.prodmapping,concat('Others_',F.cmps_des_c),CONCAT('Others_cmps_',E.brand_mkt) ) - END -) --------美托洛尔 包含琥珀酸美托洛尔 需要通过market 重新定义拆分归属------------ - select - YYYYMM,zk_product_id,iqvia_pack_code,market,prod_des_c - ,case when PROD_MAPPING ='Others_美托洛尔' and flag is not null then 'Others_美托洛尔' - when PROD_MAPPING ='Others_美托洛尔' and flag is null then 'Others_cmps_高血压用药' - else PROD_MAPPING - end PROD_MAPPING - ,sales_value,sales_unit,counting_unit -from tmp -left join (select distinct iqvia_pack_code flag from tmp.tmp_zk_retail_pack_property where market ='Metoprolol Succinate Market') fl on tmp.iqvia_pack_code =fl.flag - - - --- COMMAND ---------- - --- MAGIC %md --- MAGIC ### NIAD - --- COMMAND ---------- - --------------------niad 全国数据拆分------------------------------------------------------------------- --- -----------------NIAD 加工 ,将拆分的数据替换成pack 源数据------------------------20240701修改版本------ -insert overwrite table tmp.tmp_retail_sales_niad -WITH national_pack as ( - -------获取niad 的全国pack 基础数据-------- - select - A.YYYYMM, - a.zk_product_id, - B.iqvia_pack_code, - E.market_mapping market, - B.prod_des_c, - CONCAT(E.brand_mkt, '_Others') PROD_MAPPING, - SUM(A.sales_value) sales_value, - sum(sales_unit) sales_unit, - SUM(A.sales_unit * b.counting_unit) counting_unit - from - dwd.dwd_inc_gnd_ext_retail_nataional_pack_union_all A - left JOIN ( - select - distinct product_id, - prod_des_c, - iqvia_pack_code, - counting_unit/coalesce(unit,1 ) counting_unit - from - dwd.dwd_gnd_ext_retail_pack_property - ) B ON A.zk_product_id = B.product_id - LEFT JOIN ( - SELECT - DISTINCT brand_mkt, - file_name, - market_mapping - FROM - DWD.dwd_gnd_ext_retail_corresponding_relationship - ) E ON A.brand_flag = E.file_name - where - A.brand_flag in ('pack-DM-口服降糖化学药.xlsx') - and A.zk_region = '全国' --and A.YYYYMM='202312' --,'pack-雾化器-全国&县域数据.xlsx') - GROUP BY - A.YYYYMM, - a.zk_product_id, - B.iqvia_pack_code, - B.prod_des_c, - CONCAT(E.brand_mkt, '_Others'), - E.market_mapping -), -pack_prov as ( - -------获取niad 的省份pack 基础数据-------- - select - A.YYYYMM, - a.zk_product_id, - B.iqvia_pack_code, - E.market_mapping market, - A.brand_flag, - B.prod_des_c, - NVL(B.PROD_DES_C, CONCAT(E.market_mapping, '_Others')) PROD_MAPPING, - SUM(A.sales_value) sales_value, - SUM(A.sales_unit) sales_unit, - A.zk_region, - sum(sales_unit * b.counting_unit) counting_unit - from - dwd.dwd_inc_gnd_ext_retail_nataional_pack_union_all A - left JOIN ( - select - distinct product_id, - prod_des_c, - iqvia_pack_code, - counting_unit/coalesce(unit,1 ) counting_unit - from - dwd.dwd_gnd_ext_retail_pack_property - ) B ON A.zk_product_id = B.product_id - LEFT JOIN ( - SELECT - DISTINCT brand_mkt, - file_name, - market_mapping - FROM - DWD.dwd_gnd_ext_retail_corresponding_relationship - ) E ON A.brand_flag = E.file_name - where - A.brand_flag in ('pack-DM-口服降糖化学药.xlsx') - and A.zk_region != '全国' --and A.YYYYMM='202312' --,'pack-雾化器-全国&县域数据.xlsx') - GROUP BY - A.YYYYMM, - a.zk_product_id, - B.iqvia_pack_code, - B.prod_des_c, - E.market_mapping, - A.brand_flag, - A.zk_region -) - -/* -修改人:chenwu -修改时间:20250319 -修改内容:NIAD不藏数据,用于页面藏数逻辑。brand_flag 默认都给1 -*/ ---拆分NIAD数据到ROC -SELECT - A.YYYYMM - ,A.iqvia_pack_code - ,A.zk_product_id - ,A.prod_des_c - ,A.PROD_MAPPING - ,'ROC' province_city - ,A.market - ,A.Sales_value - nvl(sales_V ,0) Sales_value - ,A.sales_unit - nvl(SALES_U,0) sales_unit - ,A.counting_unit - nvl(COUNT_U,0) counting_unit - ,2 pack_flag - ,1 brand_flag --case when c.mapp is null then 2 else 1 end brand_flag -FROM national_pack A -LEFT JOIN ( - SELECT - YYYYMM - ,iqvia_pack_code - ,zk_product_id - ,prod_des_c - ,PROD_MAPPING - ,market - ,SUM(sales_value) sales_V - ,SUM(sales_unit) SALES_U - ,SUM(counting_unit) COUNT_U - FROM pack_prov - GROUP BY - YYYYMM - ,iqvia_pack_code - ,zk_product_id - ,prod_des_c - ,PROD_MAPPING - ,market -)B ON A.YYYYMM=B.YYYYMM - AND A.zk_product_id=B.zk_product_id -left join (select b.PROD_DES_C mapp from -(select distinct zk_brand_category from dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all where brand_cat_type='品牌' and market='NIAD') a -left join (select distinct PROD_DES_C,ZK_Prod_C from dwd.dwd_inc_gnd_retail_b2c_label_total ) b on a.zk_brand_category =b.ZK_Prod_C ) c -on a.prod_des_c = c.mapp -union all ---pack+省份 原始数据 -select - YYYYMM - ,iqvia_pack_code - ,zk_product_id - ,prod_des_c - ,PROD_MAPPING - ,zk_region province_city - ,market - ,sales_value - ,sales_unit - ,counting_unit - ,1 pack_flag - ,1 brand_flag --case when b.mapp is null then 2 else 1 end brand_flag -from pack_prov a -left join (select b.PROD_DES_C mapp from -(select distinct zk_brand_category from dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all where brand_cat_type='品牌' and market='NIAD') a -left join (select distinct PROD_DES_C,ZK_Prod_C from dwd.dwd_inc_gnd_retail_b2c_label_total ) b on a.zk_brand_category =b.ZK_Prod_C ) b -on a.PROD_MAPPING = b.mapp - - - --- COMMAND ---------- - --- MAGIC %md --- MAGIC ### RE - --- COMMAND ---------- - --- ------------------------------------------------------------RE 数据拆分------------------------------------------- --- ------------------ --- insert overwrite table tmp.tmp_retail_result_re --- with Inhaled_tmp as ( --- ----拼接Respules Market数据---Inhaled --- select a.YYYYMM,a.zk_product_id,b.iqvia_pack_code,a.zk_region,sum(a.sales_value) sales_value,sum(sales_unit) sales_unit ,sum(a.sales_unit*(b.counting_unit/coalesce(b.unit,1 ))) counting_unit --- ,1 pack_flag --- ,1 brand_flag --- from dwd.dwd_inc_gnd_ext_retail_nataional_pack_union_all a --- left join dwd.dwd_gnd_ext_retail_pack_property b on a.zk_product_id=b.product_id --- where brand_flag= 'pack-雾化器-全国&县域数据.xlsx' and a.zk_region <>'全国' --- -- and iqvia_pack_code in (select iqvia_pack_code from tmp.tmp_zk_retail_pack_property where market ='Inhaled Extended Market by Brand') --- group by a.YYYYMM,b.iqvia_pack_code,a.zk_region,a.zk_product_id --- union all --- -- -inhaled ROC数据---- --- select --- a.YYYYMM --- ,a.zk_product_id --- ,A.iqvia_pack_code --- ,'ROC' province_city --- ,a.sales_value -inh.sales_value sales_value --- ,a.sales_unit -inh.sales_unit sales_unit --- ,a.counting_unit-inh.counting_unit counting_unit --- ,2 pack_flag --- ,1 brand_flag --- from ( --- -----re 数据筛选--respules Market数据汇总到全国-- --- select a.YYYYMM,a.zk_product_id,b.iqvia_pack_code,a.zk_region,sum(a.sales_value) sales_value,sum(sales_unit) sales_unit ,sum(a.sales_unit* (b.counting_unit/coalesce(b.unit,1 ))) counting_unit --- from dwd.dwd_inc_gnd_ext_retail_nataional_pack_union_all a --- left join dwd.dwd_gnd_ext_retail_pack_property b on a.zk_product_id=b.product_id --- where brand_flag='pack-RE-慢阻肺-全国.xlsx' --- -- and b.iqvia_pack_code in (select iqvia_pack_code from dm.dm_zk_retail_pack_property where market ='Respules Market') --- and b.iqvia_pack_code in (select iqvia_pack_code from tmp.tmp_zk_retail_pack_property where market ='Respules Market') --- group by a.YYYYMM,a.zk_region,b.iqvia_pack_code,a.zk_product_id --- ) a INNER join ( --- select --- a.YYYYMM --- ,a.zk_product_id --- ,c.iqvia_pack_code --- ,coalesce(b.sales_value,0)sales_value --- ,coalesce(b.sales_unit,0) sales_unit --- ,coalesce(b.counting_unit,0) counting_unit --- from ( select YYYYMM,zk_product_id from --- (select distinct zk_product_id from dwd.dwd_inc_gnd_ext_retail_nataional_pack_union_all where zk_region <>'全国') --- cross join (select distinct YYYYMM from dwd.dwd_inc_gnd_ext_retail_nataional_pack_union_all where zk_region <>'全国') --- ) a --- left join (select a.YYYYMM,a.zk_product_id,b.iqvia_pack_code,sum(a.sales_value) sales_value,sum(sales_unit) sales_unit,sum(a.sales_unit* (b.counting_unit/coalesce(b.unit,1 ))) counting_unit --- from dwd.dwd_inc_gnd_ext_retail_nataional_pack_union_all a --- left join dwd.dwd_gnd_ext_retail_pack_property b on a.zk_product_id=b.product_id --- where brand_flag= 'pack-雾化器-全国&县域数据.xlsx' and a.zk_region <>'全国' --- group by a.YYYYMM,b.iqvia_pack_code,a.zk_product_id) b --- on a.YYYYMM=b.YYYYMM and a.zk_product_id=b.zk_product_id --- left join dwd.dwd_gnd_ext_retail_pack_property c on a.zk_product_id=c.product_id --- -- WHERE b.iqvia_pack_code IN (select iqvia_pack_code from tmp.tmp_zk_retail_pack_property where market ='Inhaled Extended Market by Brand') - --- ) inh on a.YYYYMM =inh.YYYYMM and a.zk_product_id=inh.zk_product_id --- ) --- ,mkt as ( --- -------------补充mark 的roc 部分数据 --- select YYYYMM,ta,province_city,brand_cat_type,market,sales_val,sales_vol --- from tmp.tmp_retail_brand where ta='RE' AND brand_cat_type ='品类' and market ='慢性阻塞性肺疾病' --- union all --- select --- a.YYYYMM,a.ta,'ROC' ,a.brand_cat_type,a.market,a.sales_val - b.sales_val sales_val ,a.sales_vol-b.sales_vol sales_vol --- from --- (select YYYYMM,ta,brand_cat_type,market,sum(sales_val) sales_val,sum(sales_vol) sales_vol --- from tmp.tmp_retail_brand where ta='RE' AND brand_cat_type ='品类' and market ='慢性阻塞性肺疾病' and province_city ='全国' --- group by 1,2,3,4 --- ) a --- left join --- ( --- select YYYYMM,ta,brand_cat_type,market,sum(sales_val) sales_val,sum(sales_vol) sales_vol --- from tmp.tmp_retail_brand where ta='RE' AND brand_cat_type ='品类' and market ='慢性阻塞性肺疾病' and province_city <>'全国' --- group by 1,2,3,4 --- )b on a.YYYYMM =b.YYYYMM and a.ta=b.ta and a.brand_cat_type=b.brand_cat_type and a.market=b.market --- ) --- ,total_no_inhaled as ( --- ----------------剔除inhaled 后剩余 MKT 总值------------ --- select a.YYYYMM,a.ta,a.province_city,a.brand_cat_type,a.market --- ,B.brand_mkt marketmapping --- ,sales_val - coalesce(val,0 ) sales_val --- ,sales_vol - coalesce(vol,0 ) sales_vol --- -- ,sales_val - coalesce(sales_value,sal ) sales_val --- -- ,sales_vol - coalesce(sales_unit,vol) sales_vol --- from mkt a --- left join (SELECT DISTINCT brand_mkt,market_mapping FROM dwd.dwd_gnd_ext_retail_corresponding_relationship WHERE category_name IS NOT NULL AND TA='RE') B --- on a.market=b.brand_mkt and B.brand_mkt = B.market_mapping --- -- left join (select YYYYMM,zk_region,sum(sales_value) sales_value,sum(counting_unit) sales_unit from Inhaled_tmp group by 1,2) c on a.province_city=c.zk_region and a.YYYYMM=c.YYYYMM --- -- left join (select YYYYMM,'全国' zk_region,sum(sales_value) sal,sum(counting_unit) vol from Inhaled_tmp group by 1) d on a.YYYYMM=d.YYYYMM and a.province_city=d.zk_region --- left join ( --- select YYYYMM,TA,province_city,brand_cat_type,market,sales_val val,sales_vol vol from tmp.tmp_retail_brand where ta='RE' AND market ='Inhaled Extended Market' AND brand_cat_type ='品类' --- UNION ALL --- select --- a.YYYYMM,a.TA,'ROC',a.brand_cat_type,a.market --- ,a.sales_val-b.sales_val --- ,a.sales_vol-b.sales_vol --- from (select YYYYMM,TA,brand_cat_type,market,sales_val ,sales_vol from tmp.tmp_retail_brand where ta='RE' AND market ='Inhaled Extended Market' AND brand_cat_type ='品类' and province_city ='全国') a --- left join (select YYYYMM,TA,brand_cat_type,market,sum(sales_val) sales_val,sum(sales_vol) sales_vol from tmp.tmp_retail_brand where ta='RE' AND market ='Inhaled Extended Market' AND brand_cat_type ='品类' AND province_city<>'全国' --- group by YYYYMM,TA,brand_cat_type,market ) b on a.YYYYMM=b.YYYYMM AND a.brand_cat_type=b.brand_cat_type AND a.market=b.market --- ) c on a.province_city=c.province_city and a.YYYYMM=c.YYYYMM --- where a.brand_cat_type = '品类' --- and A.TA ='RE' AND B.brand_mkt IS not null --- ), others as ( --- select --- a.YYYYMM,a.TA,a.PROD_DES_C,a.province_city,a.market,cmps_des_c,a.market --- ,a.sales_val-b.sales_val sales_val, a.sales_vol-b.sales_vol sales_vol --- from (select YYYYMM,TA,PROD_DES_C,province_city,market,sales_val,sales_vol from tmp.tmp_retail_brand where TA='RE' AND brand_cat_type ='品牌' and market ='慢性阻塞性肺疾病' ) a --- inner join (select YYYYMM,TA,PROD_DES_C,province_city,market,sales_val,sales_vol from tmp.tmp_retail_brand where TA='RE' AND brand_cat_type ='品牌' and market ='Inhaled Extended Market') b --- on a.YYYYMM =b.YYYYMM and a.PROD_DES_C=b.PROD_DES_C and a.province_city =b.province_city --- left join (select distinct prod_des_c,cmps_des_c from dwd.dwd_gnd_ext_retail_pack_property ) C ON A.PROD_DES_C=C.prod_des_c --- where a.sales_val-b.sales_val >0 --- union all --- select --- a.YYYYMM,a.TA,a.PROD_DES_C,'ROC',a.market,a.cmps_des_c,a.market,a.sales_val - b.sales_val,a.sales_vol-b.sales_vol --- from ( --- select --- a.YYYYMM,a.TA,a.PROD_DES_C,a.province_city,a.market, --- cmps_des_c,a.market --- ,a.sales_val-b.sales_val sales_val, a.sales_vol-b.sales_vol sales_vol --- from (select YYYYMM,TA,PROD_DES_C,province_city,market,sales_val,sales_vol from tmp.tmp_retail_brand where TA='RE' AND brand_cat_type ='品牌' and market ='慢性阻塞性肺疾病' ) a --- inner join (select YYYYMM,TA,PROD_DES_C,province_city,market,sales_val,sales_vol from tmp.tmp_retail_brand where TA='RE' AND brand_cat_type ='品牌' and market ='Inhaled Extended Market') b --- on a.YYYYMM =b.YYYYMM and a.PROD_DES_C=b.PROD_DES_C and a.province_city =b.province_city --- left join (select distinct prod_des_c,cmps_des_c from dwd.dwd_gnd_ext_retail_pack_property ) C ON A.PROD_DES_C=C.prod_des_c --- where a.sales_val-b.sales_val >0 and a.province_city='全国' --- ) a left join ( --- select --- a.YYYYMM,a.TA,a.PROD_DES_C,a.market, --- cmps_des_c,a.market --- ,sum(a.sales_val-b.sales_val) sales_val, sum(a.sales_vol-b.sales_vol) sales_vol --- from (select YYYYMM,TA,PROD_DES_C,province_city,market,sales_val,sales_vol from tmp.tmp_retail_brand where TA='RE' AND brand_cat_type ='品牌' and market ='慢性阻塞性肺疾病' ) a --- inner join (select YYYYMM,TA,PROD_DES_C,province_city,market,sales_val,sales_vol from tmp.tmp_retail_brand where TA='RE' AND brand_cat_type ='品牌' and market ='Inhaled Extended Market') b --- on a.YYYYMM =b.YYYYMM and a.PROD_DES_C=b.PROD_DES_C and a.province_city =b.province_city --- left join (select distinct prod_des_c,cmps_des_c from dwd.dwd_gnd_ext_retail_pack_property ) C ON A.PROD_DES_C=C.prod_des_c --- where a.sales_val-b.sales_val >0 and a.province_city <> '全国' --- group by a.YYYYMM,a.TA,a.PROD_DES_C,a.market, cmps_des_c,a.market --- ) b on a.YYYYMM=b.YYYYMM and a.PROD_DES_C=b.PROD_DES_C and a.market=b.market and a.cmps_des_c=b.cmps_des_c --- ) - --- , brand_of_no_inhaled as ( --- -------------剔除inhaled 品牌数据及ROC数据------------ --- select a.YYYYMM,a.TA,a.PROD_DES_C,a.province_city --- , A.market submkt --- ,cmps_des_c --- ,B.brand_mkt marketmapping --- ,a.sales_val,a.sales_vol --- from tmp.tmp_retail_brand a --- left join (select distinct brand_mkt,category_name from dwd.dwd_gnd_ext_retail_corresponding_relationship where category_name is not null AND TA ='RE' AND category_name<>brand_mkt) B --- ON a.market=b.category_name --- left join (select distinct prod_des_c,cmps_des_c from dwd.dwd_gnd_ext_retail_pack_property ) C ON A.PROD_DES_C=C.prod_des_c --- where brand_cat_type = '品牌' --- and a.market not in (select distinct brand_mkt from dwd.dwd_gnd_ext_retail_corresponding_relationship where brand_mkt is not null ) --- and TA ='RE' AND A.market <> 'Inhaled Extended Market' --- union all --- select --- a.YYYYMM,a.TA,a.PROD_DES_C,'ROC' province_city --- ,a.submkt,a.cmps_des_c,a.marketmapping,a.sales_val-b.sales_val sales_val,a.sales_vol-b.sales_vol sales_vol --- from (select a.YYYYMM,a.TA,a.PROD_DES_C,a.province_city --- , A.market submkt --- ,cmps_des_c --- ,B.brand_mkt marketmapping --- ,a.sales_val,a.sales_vol --- from tmp.tmp_retail_brand a --- left join (select distinct brand_mkt,category_name from dwd.dwd_gnd_ext_retail_corresponding_relationship where category_name is not null AND TA ='RE' AND category_name<>brand_mkt) B --- ON a.market=b.category_name --- left join (select distinct prod_des_c,cmps_des_c from dwd.dwd_gnd_ext_retail_pack_property ) C ON A.PROD_DES_C=C.prod_des_c --- where brand_cat_type = '品牌' --- and a.market not in (select distinct brand_mkt from dwd.dwd_gnd_ext_retail_corresponding_relationship where brand_mkt is not null ) --- and TA ='RE' AND A.market <> 'Inhaled Extended Market' and a.province_city='全国' --- ) a --- left join (select a.YYYYMM,a.TA,a.PROD_DES_C --- , A.market submkt --- ,cmps_des_c --- ,B.brand_mkt marketmapping --- ,sum(a.sales_val) sales_val,sum(a.sales_vol) sales_vol --- from tmp.tmp_retail_brand a --- left join (select distinct brand_mkt,category_name from dwd.dwd_gnd_ext_retail_corresponding_relationship where category_name is not null AND TA ='RE' AND category_name<>brand_mkt) B --- ON a.market=b.category_name --- left join (select distinct prod_des_c,cmps_des_c from dwd.dwd_gnd_ext_retail_pack_property ) C ON A.PROD_DES_C=C.prod_des_c --- where brand_cat_type = '品牌' --- and a.market not in (select distinct brand_mkt from dwd.dwd_gnd_ext_retail_corresponding_relationship where brand_mkt is not null ) --- and TA ='RE' AND A.market <> 'Inhaled Extended Market' and a.province_city<>'全国' --- group by 1,2,3,4,5,6 --- ) b on a.YYYYMM =b.YYYYMM and a.PROD_DES_C =b.PROD_DES_C and a.submkt=b.submkt and a.marketmapping=b.marketmapping --- union all --- ----拼接 re 部分比inhaled 多出的brand 数据 --- select * from others - --- ),cmps_total as ( --- ------cmps 剔除inhaled 后 的基础数据---- --- select a.YYYYMM,ta,a.province_city,a.brand_cat_type,a.market,B.brand_mkt marketmapping --- ,a.sales_val,a.sales_vol --- from tmp.tmp_retail_brand a --- left join (SELECT DISTINCT brand_mkt,category_name FROM dwd.dwd_gnd_ext_retail_corresponding_relationship WHERE category_name IS NOT NULL AND TA='RE') B --- on a.market=b.category_name and B.brand_mkt<> B.category_name --- where brand_cat_type = '品类' --- and A.TA ='RE' and B.brand_mkt is not null AND a.market <>'Inhaled Extended Market' --- union all --- select --- a.YYYYMM,a.ta,'ROC' ,a.brand_cat_type,a.market,a.marketmapping,a.sales_val-b.sales_val sales_val,a.sales_vol-b.sales_vol sales_vol --- from ( select a.YYYYMM,ta,a.province_city,a.brand_cat_type --,c.zk_common_name,c.cmps_des_c --- ,a.market,a.sales_val,a.sales_vol,B.brand_mkt marketmapping --- from tmp.tmp_retail_brand a --- left join (SELECT DISTINCT brand_mkt,category_name FROM dwd.dwd_gnd_ext_retail_corresponding_relationship WHERE category_name IS NOT NULL AND TA='RE') B --- on a.market=b.category_name and B.brand_mkt<> B.category_name --- where brand_cat_type = '品类' --- and A.TA ='RE' and B.brand_mkt is not null AND a.market <>'Inhaled Extended Market' and a.province_city = '全国' --- )a left join ( --- select a.YYYYMM,ta,a.brand_cat_type ,B.brand_mkt marketmapping --- ,a.market,sum(a.sales_val) sales_val,sum(a.sales_vol) sales_vol --- from tmp.tmp_retail_brand a --- left join (SELECT DISTINCT brand_mkt,category_name FROM dwd.dwd_gnd_ext_retail_corresponding_relationship WHERE category_name IS NOT NULL AND TA='RE') B --- on a.market=b.category_name and B.brand_mkt<> B.category_name --- where brand_cat_type = '品类' --- and A.TA ='RE' and B.brand_mkt is not null AND a.market <>'Inhaled Extended Market' and a.province_city<>'全国' --- group by 1,2,3,4,5 --- )b on a.YYYYMM =b.YYYYMM and a.ta=b.ta and a.marketmapping=b.marketmapping and b.market =a.market and a.brand_cat_type=b.brand_cat_type --- union all --- select --- a.YYYYMM,a.TA,a.province_city,'',cmps_des_c,a.market --- ,a.sales_val-b.sales_val sales_val, a.sales_vol-b.sales_vol sales_vol --- from (select YYYYMM,TA,PROD_DES_C,province_city,market,sales_val,sales_vol from tmp.tmp_retail_brand where TA='RE' AND brand_cat_type ='品牌' and market ='慢性阻塞性肺疾病' ) a --- inner join (select YYYYMM,TA,PROD_DES_C,province_city,market,sales_val,sales_vol from tmp.tmp_retail_brand where TA='RE' AND brand_cat_type ='品牌' and market ='Inhaled Extended Market') b --- on a.YYYYMM =b.YYYYMM and a.PROD_DES_C=b.PROD_DES_C and a.province_city =b.province_city --- left join (select distinct prod_des_c,cmps_des_c from dwd.dwd_gnd_ext_retail_pack_property ) C ON A.PROD_DES_C=C.prod_des_c --- where a.sales_val-b.sales_val >0 --- union all --- select --- a.YYYYMM,a.TA,'ROC','',a.cmps_des_c,a.market,a.sales_val - b.sales_val,a.sales_vol-b.sales_vol --- from ( --- select --- a.YYYYMM,a.TA,a.PROD_DES_C,a.province_city,a.market, --- cmps_des_c,a.market --- ,a.sales_val-b.sales_val sales_val, a.sales_vol-b.sales_vol sales_vol --- from (select YYYYMM,TA,PROD_DES_C,province_city,market,sales_val,sales_vol from tmp.tmp_retail_brand where TA='RE' AND brand_cat_type ='品牌' and market ='慢性阻塞性肺疾病' ) a --- inner join (select YYYYMM,TA,PROD_DES_C,province_city,market,sales_val,sales_vol from tmp.tmp_retail_brand where TA='RE' AND brand_cat_type ='品牌' and market ='Inhaled Extended Market') b --- on a.YYYYMM =b.YYYYMM and a.PROD_DES_C=b.PROD_DES_C and a.province_city =b.province_city --- left join (select distinct prod_des_c,cmps_des_c from dwd.dwd_gnd_ext_retail_pack_property ) C ON A.PROD_DES_C=C.prod_des_c --- where a.sales_val-b.sales_val >0 and a.province_city='全国' --- ) a left join ( --- select --- a.YYYYMM,a.TA,a.PROD_DES_C,a.market, --- cmps_des_c,a.market --- ,sum(a.sales_val-b.sales_val) sales_val, sum(a.sales_vol-b.sales_vol) sales_vol --- from (select YYYYMM,TA,PROD_DES_C,province_city,market,sales_val,sales_vol from tmp.tmp_retail_brand where TA='RE' AND brand_cat_type ='品牌' and market ='慢性阻塞性肺疾病' ) a --- inner join (select YYYYMM,TA,PROD_DES_C,province_city,market,sales_val,sales_vol from tmp.tmp_retail_brand where TA='RE' AND brand_cat_type ='品牌' and market ='Inhaled Extended Market') b --- on a.YYYYMM =b.YYYYMM and a.PROD_DES_C=b.PROD_DES_C and a.province_city =b.province_city --- left join (select distinct prod_des_c,cmps_des_c from dwd.dwd_gnd_ext_retail_pack_property ) C ON A.PROD_DES_C=C.prod_des_c --- where a.sales_val-b.sales_val >0 and a.province_city <> '全国' --- group by a.YYYYMM,a.TA,a.PROD_DES_C,a.market, cmps_des_c,a.market --- ) b on a.YYYYMM=b.YYYYMM and a.PROD_DES_C=b.PROD_DES_C and a.market=b.market and a.cmps_des_c=b.cmps_des_c - - - - - --- ),ratio as ( --- select --- YYYYMM --- ,ta --- ,province_city --- ,market --- ,cmps_des_c --- ,prodmapping --- ,sales_val --- ,sales_vol --- ,sales_val /sum(sales_val)over(PARTITION BY YYYYMM,ta,market,prodmapping) radio_val --- ,sales_vol / sum(sales_vol)over(PARTITION BY YYYYMM,ta,market,prodmapping) radio_vol - --- from ( --- select --- MKT.YYYYMM --- ,ta,MKT.province_city --- ,market --- ,concat('Others_cmps_',market ) cmps_des_c --- ,concat('Others_cmps_',market ) prodmapping --- ,MKT.sales_val - b.sales_val sales_val --- ,MKT.sales_vol - b.sales_vol sales_vol --- FROM total_no_inhaled MKT inner JOIN (select YYYYMM,province_city,marketmapping,sum(sales_val) sales_val,sum(sales_vol) sales_vol from cmps_total group by YYYYMM,province_city,marketmapping) b --- on MKT.YYYYMM=b.YYYYMM and MKT.province_city=b.province_city and MKT.market=b.marketmapping --- where mkt.province_city <>'全国' --- union all --- ------------计算others_cmps_brand----------------- --- SELECT a.YYYYMM,a.ta,a.province_city --- ,a.marketmapping market --- ,cmps_des_c --- , coalesce(concat('Others_',b.cmps_des_c),concat('Others_',A.marketmapping) ) prodmapping --- ,a.sales_val - coalesce(b.sales_val,0 ) sales_val --- ,a.sales_vol - coalesce(b.sales_vol,0 ) sales_vol --- from cmps_total a --- LEFT JOIN (select YYYYMM,province_city,submkt,cmps_des_c,marketmapping,sum(sales_val) sales_val,sum(sales_vol) sales_vol from brand_of_no_inhaled GROUP BY YYYYMM,province_city,submkt,marketmapping,cmps_des_c ) b --- on a.YYYYMM=b.YYYYMM and a.province_city=b.province_city and a.marketmapping=b.marketmapping and a.market=b.submkt --- where a.province_city <> '全国' - --- union all --- SELECT --- YYYYMM,TA,province_city --- ,marketmapping market --- ,cmps_des_c --- ,PROD_DES_C --- ,sales_val --- ,sales_vol --- FROM brand_of_no_inhaled --- where province_city <> '全国' --- ) --- ) - - - --- select TMP.YYYYMM,tmp.zk_product_id,iqvia_pack_code,province_city,sales_value*radio_val sales_value,tmp.sales_unit*radio_vol sales_unit ,tmp.counting_unit*radio_vol counting_unit --- ,2 pack_flag,case when tmp.PROD_MAPPING like 'Others_%' then 2 else 1 end brand_flag --- from ( --- select a.YYYYMM,a.zk_product_id --- ,b.prod_des_c,b.cmps_des_c --- ,coalesce(c.PROD_DES_C,concat('Others_',F.cmps_des_c),concat('Others_cmps_',e.brand_mkt)) PROD_MAPPING --- ,b.iqvia_pack_code,a.zk_region,sum(a.sales_value) sales_value,sum(sales_unit) sales_unit,sum(a.sales_unit* (b.counting_unit/coalesce(b.unit,1 ))) counting_unit --- from dwd.dwd_inc_gnd_ext_retail_nataional_pack_union_all a --- left join dwd.dwd_gnd_ext_retail_pack_property b on a.zk_product_id=b.product_id --- left join (select distinct PROD_DES_C from tmp.tmp_retail_brand where TA='RE' AND market ='慢性阻塞性肺疾病' and brand_cat_type ='品牌') c on b.prod_des_c =c.PROD_DES_C --- left join (select distinct cmps_des_c from ratio where cmps_des_c not in ( select cmps_des_c from others ))f on b.cmps_des_c =f.cmps_des_c --- LEFT JOIN (SELECT DISTINCT brand_mkt,file_name FROM DWD.dwd_gnd_ext_retail_corresponding_relationship) E ON A.brand_flag = E.file_name --- where brand_flag='pack-RE-慢阻肺-全国.xlsx' --- AND b.iqvia_pack_code NOT IN ( --- select b.iqvia_pack_code from dwd.dwd_inc_gnd_ext_retail_nataional_pack_union_all a --- left join dwd.dwd_gnd_ext_retail_pack_property b on a.zk_product_id=b.product_id --- where brand_flag= 'pack-雾化器-全国&县域数据.xlsx' and a.zk_region <>'全国') --- -- AND b.iqvia_pack_code not in (select iqvia_pack_code from tmp.tmp_zk_retail_pack_property where market ='Inhaled Extended Market by Brand') --- AND b.iqvia_pack_code in (select iqvia_pack_code from tmp.tmp_zk_retail_pack_property where market ='RE Market') - --- group by a.YYYYMM,b.iqvia_pack_code,a.zk_region,a.zk_product_id ,b.prod_des_c,b.cmps_des_c --- ,coalesce(c.PROD_DES_C,concat('Others_',F.cmps_des_c),concat('Others_cmps_',e.brand_mkt)) --- ) tmp inner join ratio rate on TMP.YYYYMM=rate.YYYYMM and nvl(tmp.PROD_MAPPING ,'' )= nvl(rate.prodmapping,'' ) --- union all --- select --- a.YYYYMM --- ,a.zk_product_id --- ,A.iqvia_pack_code --- ,zk_region province_city --- ,sales_value --- ,sales_unit --- ,counting_unit,pack_flag,brand_flag --- from Inhaled_tmp a - --- COMMAND ---------- - --- MAGIC %md --- MAGIC ## brand 比例拼接到 pack - --- COMMAND ---------- - --- MAGIC %md --- MAGIC ### Inhaled 直取pack - --- COMMAND ---------- - -/* -修改日期:20250311 -修改人:chenwu -修改内容:新增Inhaled直取逻辑属于 RE 慢性阻塞性肺疾病 -*/ -create or replace temporary view Inhaled_pack_direct -as -with - ---Inhaled -Inhaled_prov as ( - select - a.YYYYMM, - a.zk_product_id, - b.iqvia_pack_code, - a.zk_region, - '慢性阻塞性肺疾病' market, - B.prod_des_c, - SUM(A.sales_value) sales_value, - sum(sales_unit) sales_unit, - SUM(A.sales_unit * b.counting_unit) counting_unit - from - dwd.dwd_inc_gnd_ext_retail_nataional_pack_union_all a - left JOIN ( - select - distinct product_id, - prod_des_c, - iqvia_pack_code, - counting_unit / coalesce(unit, 1) counting_unit - from - dwd.dwd_gnd_ext_retail_pack_property - ) B ON A.zk_product_id = B.product_id - where - brand_flag = 'pack-雾化器-全国&县域数据.xlsx' - and a.zk_region <> '全国' -- and iqvia_pack_code in (select iqvia_pack_code from tmp.tmp_zk_retail_pack_property where market ='Inhaled Extended Market by Brand') - group by 1,2,3,4,5,6 -) ---全国的数据 -,Inhaled_all as ( - select - a.YYYYMM, - a.zk_product_id, - b.iqvia_pack_code, - '全国' zk_region, - '慢性阻塞性肺疾病' market, - B.prod_des_c, - SUM(A.sales_value) sales_value, - sum(sales_unit) sales_unit, - SUM(A.sales_unit * b.counting_unit) counting_unit - from - dwd.dwd_inc_gnd_ext_retail_nataional_pack_union_all a - left JOIN ( - select - distinct product_id, - prod_des_c, - iqvia_pack_code, - counting_unit / coalesce(unit, 1) counting_unit - from - dwd.dwd_gnd_ext_retail_pack_property - ) B ON A.zk_product_id = B.product_id - where - brand_flag = 'pack-雾化器-全国&县域数据.xlsx' - and a.zk_region = '全国' - group by 1,2,3,4,5,6 -) - ---倒减ROC部分 = 全国 - 省份 -SELECT - A.YYYYMM - ,A.iqvia_pack_code - ,A.zk_product_id - ,A.prod_des_c - ,'ROC' province_city - ,A.market - ,A.Sales_value - nvl(sales_V ,0) Sales_value - ,A.sales_unit - nvl(SALES_U,0) sales_unit - ,A.counting_unit - nvl(COUNT_U,0) counting_unit - ,2 pack_flag - ,1 brand_flag -FROM Inhaled_all A -LEFT JOIN ( - SELECT - YYYYMM - ,zk_product_id - ,iqvia_pack_code - ,SUM(sales_value) sales_V - ,SUM(sales_unit) SALES_U - ,SUM(counting_unit) COUNT_U - FROM Inhaled_prov --省份 - GROUP BY - YYYYMM - ,zk_product_id - ,iqvia_pack_code -)B ON A.YYYYMM=B.YYYYMM AND A.zk_product_id=B.zk_product_id ---拼接省份的数据 -union all -select - YYYYMM, - iqvia_pack_code, - zk_product_id, - prod_des_c, - zk_region as province_city, - market, - Sales_value, - sales_unit, - counting_unit, - 1 pack_flag, - 1 brand_flag -from Inhaled_prov - --- COMMAND ---------- - --- MAGIC %md --- MAGIC ### 布地奈德雾化溶液 直取pack - --- COMMAND ---------- - -/* -修改日期:20250311 -修改人:chenwu -修改内容:新增 布地奈德雾化溶液 直取逻辑,属于 RE 慢性阻塞性肺疾病 -*/ -create or replace temporary view bdnd_pack_direct -as -with - ---布地奈德雾化溶液 -bdnd_prov as ( - select - a.YYYYMM, - a.zk_product_id, - b.iqvia_pack_code, - a.zk_region, - '慢性阻塞性肺疾病' market, - B.prod_des_c, - SUM(A.sales_value) sales_value, - sum(sales_unit) sales_unit, - SUM(A.sales_unit * b.counting_unit) counting_unit - from - dwd.dwd_inc_gnd_ext_retail_nataional_pack_union_all a - left JOIN ( - select - distinct product_id, - prod_des_c, - iqvia_pack_code, - counting_unit / coalesce(unit, 1) counting_unit - from - dwd.dwd_gnd_ext_retail_pack_property - ) B ON A.zk_product_id = B.product_id - where - zk_common_name ='布地奈德' and brand_flag = 'pack-RE-慢阻肺-全国.xlsx' - and a.zk_region <> '全国' -- and iqvia_pack_code in (select iqvia_pack_code from tmp.tmp_zk_retail_pack_property where market ='Inhaled Extended Market by Brand') - group by 1,2,3,4,5,6 -) ---全国的数据 -,bdnd_all as ( - select - a.YYYYMM, - a.zk_product_id, - b.iqvia_pack_code, - '全国' zk_region, - '慢性阻塞性肺疾病' market, - B.prod_des_c, - SUM(A.sales_value) sales_value, - sum(sales_unit) sales_unit, - SUM(A.sales_unit * b.counting_unit) counting_unit - from - dwd.dwd_inc_gnd_ext_retail_nataional_pack_union_all a - left JOIN ( - select - distinct product_id, - prod_des_c, - iqvia_pack_code, - counting_unit / coalesce(unit, 1) counting_unit - from - dwd.dwd_gnd_ext_retail_pack_property - ) B ON A.zk_product_id = B.product_id - where - zk_common_name ='布地奈德' and brand_flag = 'pack-RE-慢阻肺-全国.xlsx' - and a.zk_region = '全国' - group by 1,2,3,4,5,6 -) - ---倒减ROC部分 = 全国 - 省份 -SELECT - A.YYYYMM - ,A.iqvia_pack_code - ,A.zk_product_id - ,A.prod_des_c - ,'ROC' province_city - ,A.market - ,A.Sales_value - nvl(sales_V ,0) Sales_value - ,A.sales_unit - nvl(SALES_U,0) sales_unit - ,A.counting_unit - nvl(COUNT_U,0) counting_unit - ,2 pack_flag - ,1 brand_flag -FROM bdnd_all A -LEFT JOIN ( - SELECT - YYYYMM - ,zk_product_id - ,iqvia_pack_code - ,SUM(sales_value) sales_V - ,SUM(sales_unit) SALES_U - ,SUM(counting_unit) COUNT_U - FROM bdnd_prov --省份 - GROUP BY - YYYYMM - ,zk_product_id - ,iqvia_pack_code -)B ON A.YYYYMM=B.YYYYMM AND A.zk_product_id=B.zk_product_id ---拼接省份的数据 -union all -select - YYYYMM, - iqvia_pack_code, - zk_product_id, - prod_des_c, - zk_region as province_city, - market, - Sales_value, - sales_unit, - counting_unit, - 1 pack_flag, - 1 brand_flag -from bdnd_prov - - --- COMMAND ---------- - --- MAGIC %md --- MAGIC ### 补数据 pack直取 - --- COMMAND ---------- - -/* -修改日期:20250311 -修改人:chenwu -修改内容: -补数据 ---1 月份数据会比季度数据提前来,没有拆分比例的时候,保留全国的数据。 ---2 因为没有买 高血压总分子式 的数据,所以 高血压其他分子式 数据会漏掉,补进来。 -*/ - -create or replace temporary view tmp_zk_retail_pack_lost -as -with all_with_no_brand_province as ( - select a.*, - case when YYYYMM > b.last_yyymm then 'new_m' else 'lost' end as datatype - from dwd.dwd_inc_gnd_ext_retail_nataional_pack_union_all a - left join (select max(yyyymm) last_yyymm from dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all ) b - where YYYYMM > b.last_yyymm - or ( - brand_flag ='pack-CV-高血压-化学药-全国.xlsx' - ) -) - -,tmp as ( - select - A.YYYYMM, - a.zk_product_id, - B.iqvia_pack_code, - E.market_mapping market, - case - when b.cmps_des_c = '氨氯地平,阿托伐他汀' - and b.prod_des_c is null then 'OTHERS_氨氯地平,阿托伐他汀' - else B.prod_des_c - end prod_des_c, - - case - when b.cmps_des_c = '氨氯地平,阿托伐他汀' - and b.prod_des_c is null - THEN 'Others_氨氯地平阿托伐他汀钙片' - ELSE coalesce(C.prodmapping,concat('Others_',F.cmps_des_c),CONCAT('Others_cmps_',E.brand_mkt) ) - END PROD_MAPPING, - -- coalesce(C.prodmapping,concat('Others_',F.cmps_des_c),CONCAT('Others_cmps_',E.brand_mkt) ) PROD_MAPPING, - datatype, - SUM(A.sales_value) sales_value, - sum(sales_unit) sales_unit, - SUM(A.sales_unit * b.counting_unit) counting_unit -from - all_with_no_brand_province A - left JOIN ( - select - distinct product_id, - prod_des_c, - iqvia_pack_code, - counting_unit/coalesce(unit,1) counting_unit, - cmps_des_c - from - dwd.dwd_gnd_ext_retail_pack_property - ) B ON A.zk_product_id = B.product_id - LEFT JOIN ( - SELECT - DISTINCT brand_mkt, - file_name, - market_mapping - FROM - DWD.dwd_gnd_ext_retail_corresponding_relationship - ) E ON A.brand_flag = E.file_name - LEFT JOIN ( - SELECT - DISTINCT YYYYMM, - prodmapping, - market - FROM - tmp.tmp_ZK_retail_brandTotal - ) C ON A.YYYYMM = C.YYYYMM - AND B.prod_des_c = C.prodmapping - AND E.market_mapping = C.market ---NIAD 直接取pack数据,gi market 剔除逻辑,RE根据maket拆分 、RE包含雾化器数据----- - left join (SELECT DISTINCT cmps_des_c FROM TMP.tmp_zk_retail_brandTotal where cmps_des_c is NOT null ) F - ON B.cmps_des_c=F.cmps_des_c -where - brand_flag in ( - - 'pack-GI-慢性胃炎胃溃疡-全国.xlsx', - "pack-CV-高血压-化学药-全国.xlsx" - ,'pack-CV-他汀类+血脂康-全国.xlsx' - - -- 'pack-雾化器-全国&县域数据.xlsx', - --'pack-DM-口服降糖化学药.xlsx' - --'pack-RE-慢阻肺-全国.xlsx', - -- ,'pack-RD-肾科-全国.xlsx' ,'pack-CV-抗血栓2通用名-全国.xlsx' 下面会单独拉取全部 - ) -GROUP BY - A.YYYYMM, - a.zk_product_id, - B.iqvia_pack_code, - case - when b.cmps_des_c = '氨氯地平,阿托伐他汀' - and b.prod_des_c is null then 'OTHERS_氨氯地平,阿托伐他汀' - else B.prod_des_c - end, - E.market_mapping, - --coalesce(C.prodmapping,concat('Others_',F.cmps_des_c),CONCAT('Others_cmps_',E.brand_mkt) ) - case - when b.cmps_des_c = '氨氯地平,阿托伐他汀' - and b.prod_des_c is null - THEN 'Others_氨氯地平阿托伐他汀钙片' - ELSE coalesce(C.prodmapping,concat('Others_',F.cmps_des_c),CONCAT('Others_cmps_',E.brand_mkt) ) - END - ,datatype - ) - -, result( - select - YYYYMM,zk_product_id,iqvia_pack_code,market,prod_des_c - ,case when datatype = 'lost' and PROD_MAPPING ='Others_美托洛尔' and flag is not null then 'Others_美托洛尔' - when datatype = 'lost' and PROD_MAPPING ='Others_美托洛尔' and flag is null then 'Others_cmps_高血压用药' - else PROD_MAPPING - end PROD_MAPPING - ,datatype - ,sales_value,sales_unit,counting_unit -from tmp -left join (select distinct iqvia_pack_code flag from tmp.tmp_zk_retail_pack_property where market ='Metoprolol Succinate Market') fl on tmp.iqvia_pack_code =fl.flag -) - -select yyyymm,zk_product_id,iqvia_pack_code,market,prod_des_c,PROD_MAPPING -,sales_value -,sales_unit -,counting_unit -from result -where (PROD_MAPPING = 'Others_cmps_高血压用药' and datatype='lost') or datatype <> 'lost' - --- COMMAND ---------- - --- MAGIC %md --- MAGIC ### 小儿咳喘 - --- COMMAND ---------- - ---小儿咳喘的brand省份拆分比例 -insert overwrite table tmp.tmp_zk_retail_brandTotal_xiaoer -with -xiaoer_mkt as (--小儿咳喘 总数( 包含布地奈德) - select - YYYYMM - ,TA - ,province_city - ,market - ,zk_brand_category - ,zk_common_name - ,sum(sales_val) sales_val - ,sum(sales_vol) sales_vol - from dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all - where market ='小儿咳喘' and TA = 'RE' and brand_cat_type = '品类' - and ranked_by = 'volume' - group by 1,2,3,4,5,6 -) ---布地奈德雾化溶液 -,bdnd as ( - select - YYYYMM - ,TA - ,province_city - ,market - ,zk_brand_category - ,zk_common_name - ,sum(sales_val) sales_val - ,sum(sales_vol) sales_vol - from dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all - where market ='布地奈德雾化溶液' and zk_brand_category = '布地奈德雾化溶液' and TA = 'RE' and brand_cat_type = '品类' - and ranked_by = 'volume' - group by 1,2,3,4,5,6 -) ---小快克,可威,希舒美,美林,易坦静 -,xiaoer_brand as ( - select - YYYYMM - ,TA - ,province_city - ,market - ,zk_brand_category - ,zk_common_name - ,sum(sales_val) sales_val - ,sum(sales_vol) sales_vol - from dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all - where market ='小儿咳喘' and TA = 'RE' and brand_cat_type = '品牌' - and zk_brand_category in ( - '可威-颗粒' --奥司他韦 - ,'可威-胶囊' --奥司他韦 - ,'美林-混悬滴剂' --布洛芬 - ,'美林-混悬液' --布洛芬 - -- ,'普米克令舒' --布地奈德 - ,'速福达-干混悬剂' --玛巴洛沙韦 - ,'速福达-片剂' --玛巴洛沙韦 - -- ,'天晴速畅' --布地奈德 - ,'希舒美' --阿奇霉素 - ,'小快克' --氨酚黄那敏 - ,'易坦静' --氨溴特罗 - ) - and ranked_by = 'volume' - group by 1,2,3,4,5,6 -) ---小儿 - (布地奈得 和 各品牌的 )= 小儿others -,xiaoer_mkt_m_bdnd as ( - select - A.YYYYMM - ,A.TA - ,A.province_city - ,A.market - ,'others_xiaoer' zk_brand_category - ,'others_xiaoer' zk_common_name - ,case when sum(A.sales_val) - coalesce(sum(B.sales_val),0) - coalesce(sum(c.sales_val),0) <=0 then 0 - else sum(A.sales_val) - coalesce(sum(B.sales_val),0) - coalesce(sum(c.sales_val),0) end sales_val - ,case when sum(A.sales_vol) - coalesce(sum(B.sales_vol),0) - coalesce(sum(c.sales_vol),0) <=0 then 0 - else sum(A.sales_vol) - coalesce(sum(B.sales_vol),0) - coalesce(sum(c.sales_vol),0) end sales_vol - from xiaoer_mkt A - left join ( - select - YYYYMM - ,province_city - ,sum(sales_val) sales_val - ,sum(sales_vol) sales_vol - from bdnd - group by 1,2 - ) B on A.YYYYMM = B.YYYYMM and A.province_city = B.province_city - left join ( - select - YYYYMM - ,province_city - ,sum(sales_val) sales_val - ,sum(sales_vol) sales_vol - from xiaoer_brand - group by 1,2 - ) C on A.YYYYMM = C.YYYYMM and A.province_city = C.province_city - group by 1,2,3,4,5,6 -) - --- 所有的数据 -, all_xiaoer_formated as ( - select * - from xiaoer_mkt_m_bdnd - union all - select * - from xiaoer_brand -) - --- 倒减去roc -, all_xiaoer_w_roc as ( - select - A.YYYYMM - ,A.TA - ,'ROC' province_city - ,A.market - ,A.zk_brand_category - ,A.zk_common_name - ,A.sales_val - coalesce(B.sales_val,0) as sales_val - ,A.sales_vol - coalesce(B.sales_vol,0) as sales_vol - from all_xiaoer_formated A - left join ( - select - YYYYMM - ,TA - ,market - ,zk_brand_category - ,zk_common_name - ,sum(sales_val) sales_val - ,sum(sales_vol) sales_vol - from all_xiaoer_formated - where province_city <> '全国' - group by 1,2,3,4,5 - ) B on A.TA = B.TA and A.YYYYMM=B.YYYYMM - and A.market = B.market - and A.zk_brand_category= B.zk_brand_category - and A.zk_common_name = B.zk_common_name - where A.province_city = '全国' -union all -select - YYYYMM - ,TA - ,province_city - ,market - ,zk_brand_category - ,zk_common_name - ,sales_val - ,sales_vol -from all_xiaoer_formated -where province_city <> '全国' -) --- 计算拆分比例 -SELECT - YYYYMM - ,TA - ,province_city - ,market - ,zk_common_name - ,zk_brand_category - ,sales_val - ,sales_vol - ,nvl(cast(sales_val as decimal(38,15)) / sum(sales_val) over(PARTITION BY YYYYMM,TA,market,zk_brand_category),0.0384615384615385) valRate - ,nvl(cast(sales_vol as decimal(38,15)) / sum(sales_vol) over(PARTITION BY YYYYMM,TA,market,zk_brand_category),0.0384615384615385) volRate -from all_xiaoer_w_roc - - --- COMMAND ---------- - -create or replace temporary view tmp_pack_xiaoer -as -with xiaoer_all_pack as ( - select - a.YYYYMM, - a.zk_product_id, - a.zk_common_name, - a.zk_product_name, - a.zk_category_name, - b.iqvia_pack_code, - -- -- c.province_city, - '' market, - B.prod_des_c, - SUM(A.sales_value) sales_value, - sum(A.sales_unit) sales_unit, - SUM(A.sales_unit * b.counting_unit) counting_unit - from - dwd.dwd_inc_gnd_ext_retail_nataional_pack_union_all a - left JOIN ( - select - distinct product_id, - prod_des_c, - iqvia_pack_code, - counting_unit / coalesce(unit, 1) counting_unit - from - dwd.dwd_gnd_ext_retail_pack_property - ) B ON A.zk_product_id = B.product_id - where - brand_flag = 'pack-RE-慢阻肺-全国.xlsx' and a.zk_region = '全国' - and zk_common_name <>'布地奈德' - group by 1,2,3,4,5,6,7,8 -) - -,tmp_brand_2_pack_xiaoer as ( - select 1 id ,'布洛芬' b_cmp ,'美林-混悬滴剂' b_brand ,'布洛芬' p_cmp ,'美林' p_product ,'布洛芬混悬滴剂' p_category union all - select 2 id ,'布洛芬' b_cmp ,'美林-混悬液' b_brand ,'布洛芬' p_cmp ,'美林' p_product ,'布洛芬混悬液' p_category union all - select 3 id ,'奥司他韦' b_cmp ,'可威-颗粒' b_brand ,'奥司他韦' p_cmp ,'可威' p_product ,'磷酸奥司他韦颗粒' p_category union all - select 8 id ,'奥司他韦' b_cmp ,'可威-胶囊' b_brand ,'奥司他韦' p_cmp ,'可威' p_product ,'磷酸奥司他韦胶囊' p_category union all - select 4 id ,'阿奇霉素' b_cmp ,'希舒美' b_brand ,'阿奇霉素' p_cmp ,'希舒美' p_product ,'阿奇霉素干混悬剂' p_category union all - select 5 id ,'氨酚黄那敏' b_cmp ,'小快克' b_brand ,'氨酚黄那敏' p_cmp ,'小快克' p_product ,'小儿氨酚黄那敏颗粒' p_category union all - select 6 id ,'氨溴特罗' b_cmp ,'易坦静' b_brand ,'氨溴特罗' p_cmp ,'易坦静' p_product ,'氨溴特罗口服溶液' p_category union all - select 9 id ,'玛巴洛沙韦' b_cmp ,'速福达-片剂' b_brand ,'玛巴洛沙韦' p_cmp ,'速福达' p_product ,'玛巴洛沙韦片' p_category union all - select 10 id ,'玛巴洛沙韦' b_cmp ,'速福达-干混悬剂' b_brand ,'玛巴洛沙韦' p_cmp ,'速福达' p_product ,'玛巴洛沙韦干混悬剂' p_category union all - select 7 id ,'others_xiaoer' b_cmp ,'others_xiaoer' b_brand ,'others_xiaoer' p_cmp ,'others_xiaoer' p_product ,'others_xiaoer' p_category -) - -select -A.YYYYMM -,A.zk_product_id -,A.iqvia_pack_code -,case when c.YYYYMM is null then '全国' else c.province_city end as province_city --如果季度拆分比例没有则不扩展province,直接为全国 -,'小儿咳喘' market -,A.prod_des_c -,'小儿咳喘' PROD_MAPPING -,case when C.YYYYMM is null then A.sales_value else cast(A.sales_value * C.ValRate as decimal(38, 10)) end as sales_value -,case when C.YYYYMM is null then A.sales_unit else cast(A.sales_unit * C.VolRate as decimal(38, 10)) end as sales_unit -,case when C.YYYYMM is null then A.counting_unit else cast(A.counting_unit * C.VolRate as decimal(38, 10)) end as counting_unit --- ,C.ValRate --- ,B.B_cmp -,case when c.YYYYMM is null then 1 else 2 end as pack_flag --2 按比例拆分的,1 不拆分比例的 -,case when c.YYYYMM is not null and B.B_cmp is null then 2 else 1 end as brand_flag --2 others_xiaoer 倒减出来的比例,1 是brand省份的比例 -from xiaoer_all_pack A --pack数据 -left join tmp_brand_2_pack_xiaoer B --brand 和 pack 的mapping - on A.zk_common_name = B.p_cmp - and A.zk_product_name = B.p_product - and A.zk_category_name = B.p_category -left join (select * from tmp.tmp_zk_retail_brandTotal_xiaoer ) C --拆分比例 - on A.YYYYMM = C.YYYYMM - and case when B.B_cmp is null then 'others_xiaoer' else B.B_cmp end = C.zk_common_name -- 没有拆分比例的 归为others - and case when B.B_brand is null then 'others_xiaoer' else B.B_brand end = C.zk_brand_category - -- where A.iqvia_pack_code = '1092502' - -- and A.YYYYMM = '202412' - - --- COMMAND ---------- - --- MAGIC %md --- MAGIC ### pack 拼接省份比例 - --- COMMAND ---------- - ----------------------------------------------将所有数据拆分到省份拼接-------------------------------------------------------------------- -insert overwrite table tmp.tmp_retail_result -with tmp as ( - -- 选取pack 粒度基础数据 用于筛选 抗血栓2通用名 和 rd 数据 - select A.YYYYMM,a.zk_product_id,B.iqvia_pack_code,E.market_mapping market,A.brand_flag,B.prod_des_c,NVL(B.PROD_DES_C,CONCAT(E.market_mapping,'_Others')) PROD_MAPPING,SUM(A.sales_value) sales_value,SUM(A.sales_unit) sales_unit,A.zk_region,sum(sales_unit * b.counting_unit) counting_unit -from dwd.dwd_inc_gnd_ext_retail_nataional_pack_union_all A -left JOIN (select distinct product_id, prod_des_c,iqvia_pack_code,counting_unit/coalesce(unit,1 ) counting_unit from dwd.dwd_gnd_ext_retail_pack_property) B ON A.zk_product_id = B.product_id -LEFT JOIN (SELECT DISTINCT brand_mkt,file_name,market_mapping FROM DWD.dwd_gnd_ext_retail_corresponding_relationship) E ON A.brand_flag = E.file_name -where A.zk_product_id not in ( - select distinct zk_product_id from dwd.dwd_inc_gnd_ext_retail_nataional_pack_union_all - where brand_flag = 'pack-CV-酒石酸美托洛尔.xlsx' -) - GROUP BY A.YYYYMM,a.zk_product_id,B.iqvia_pack_code,B.prod_des_c, E.market_mapping ,A.brand_flag,A.zk_region - -) ,GI AS ( ---- gi 数据需要从 GI 文件中获取 market 为gi 的数据--- -select A.YYYYMM,a.zk_product_id,B.iqvia_pack_code,E.market_mapping market,B.prod_des_c -,coalesce(C.prodmapping,concat('Others_',F.cmps_des_c),CONCAT('Others_cmps_',E.brand_mkt) ) PROD_MAPPING -,SUM(A.sales_value) sales_value,sum(sales_unit) sales_unit ,SUM(A.sales_unit * b.counting_unit) counting_unit -from dwd.dwd_inc_gnd_ext_retail_nataional_pack_union_all A -left JOIN (select distinct product_id, prod_des_c,iqvia_pack_code,counting_unit/coalesce(unit,1 ) counting_unit,CASE WHEN cmps_cod IN ('001658','002782','008617','001051','001853','008467') THEN '其他拉唑类' ELSE cmps_des_c END cmps_des_c from dwd.dwd_gnd_ext_retail_pack_property ) B ON A.zk_product_id = B.product_id -LEFT JOIN (SELECT DISTINCT brand_mkt,file_name,market_mapping FROM DWD.dwd_gnd_ext_retail_corresponding_relationship) E ON A.brand_flag = E.file_name -LEFT JOIN (SELECT DISTINCT YYYYMM,prodmapping,market FROM tmp.tmp_zk_retail_brandTotal) C ON A.YYYYMM = C.YYYYMM AND B.prod_des_c = C.prodmapping AND E.market_mapping = C.market -left join (SELECT DISTINCT cmps_des_c FROM TMP.tmp_zk_retail_brandTotal where cmps_des_c is NOT null ) F on b.cmps_des_c =f.cmps_des_c - -where brand_flag in ( 'pack-GI-慢性胃炎胃溃疡-全国.xlsx') -and ( - - b.product_id in ( select distinct a.product_id from tmp.tmp_zk_retail_pack_property a where a.market ='Antacid anti GI swelling agent+PPI Oral' ) - -- b.product_id in ( select distinct a.product_id from dws.dws_zk_retail_pack_property a where a.market ='Retail_GI Market' ) - -) -GROUP BY A.YYYYMM,a.zk_product_id,B.iqvia_pack_code,B.prod_des_c -,coalesce(C.prodmapping,concat('Others_',F.cmps_des_c),CONCAT('Others_cmps_',E.brand_mkt) ) -,E.market_mapping -) ---酒石酸美托洛尔 -,national_metoprolol_tartrat as ( - select - t1.YYYYMM, - t2.iqvia_pack_code, - t1.zk_product_id, - t2.prod_des_c, - NVL(t2.prod_des_c, '酒石酸美托洛尔_Others') PROD_MAPPING, - t1.zk_region as province_city, - '酒石酸美托洛尔' as market, - t1.sales_value, - t1.sales_unit, - t1.sales_unit * NVL(t2.counting_unit,1) as counting_unit - from - dwd.dwd_inc_gnd_ext_retail_nataional_pack_union_all t1 - left JOIN ( - select - distinct product_id, - prod_des_c, - iqvia_pack_code, - counting_unit / coalesce(unit, 1) counting_unit - from - dwd.dwd_gnd_ext_retail_pack_property - ) t2 ON t1.zk_product_id = t2.product_id - where - t1.brand_flag = 'pack-CV-酒石酸美托洛尔.xlsx' - and t1.zk_region = '全国' -), -prov_metoprolol_tartrat as ( - select - t1.YYYYMM, - t2.iqvia_pack_code, - t1.zk_product_id, - t2.prod_des_c, - NVL(t2.prod_des_c, '酒石酸美托洛尔_Others') PROD_MAPPING, - t1.zk_region as province_city, - '酒石酸美托洛尔' as market, - t1.sales_value, - t1.sales_unit, - t1.sales_unit * NVL(t2.counting_unit,1) as counting_unit - from - dwd.dwd_inc_gnd_ext_retail_nataional_pack_union_all t1 - left JOIN ( - select - distinct product_id, - prod_des_c, - iqvia_pack_code, - counting_unit / coalesce(unit, 1) counting_unit - from - dwd.dwd_gnd_ext_retail_pack_property - ) t2 ON t1.zk_product_id = t2.product_id - where - t1.brand_flag = 'pack-CV-酒石酸美托洛尔.xlsx' - and t1.zk_region <> '全国' -), -all_metoprolol_tartrat as ( - select - t1.YYYYMM, - t1.iqvia_pack_code, - t1.zk_product_id, - t1.prod_des_c, - t1.PROD_MAPPING, - 'ROC' as province_city, - t1.market, - t1.sales_value - t2.sales_value sales_value, - t1.sales_unit - t2.sales_unit sales_unit, - t1.counting_unit - t2.counting_unit counting_unit, - 2 as pack_flag, - 2 as brand_flag - from - national_metoprolol_tartrat t1 - left join ( - select - YYYYMM, - zk_product_id, - sum(sales_value) sales_value, - sum(sales_unit) sales_unit, - sum(counting_unit) counting_unit - from - prov_metoprolol_tartrat - group by - YYYYMM, - zk_product_id - ) t2 on t1.YYYYMM = t2.YYYYMM - and t1.zk_product_id = t2.zk_product_id - union all - select - YYYYMM, - iqvia_pack_code, - zk_product_id, - prod_des_c, - PROD_MAPPING, - province_city, - market, - sales_value, - sales_unit, - counting_unit, - 1 as pack_flag, - 2 as brand_flag - from - prov_metoprolol_tartrat -) - ----他汀类+血脂康 + 高血压用药----------- ----拆分、倒减 pack_flag brand_flag 为0 ,取源数据为1 ---这里tmp_zk_retail_pack和tmp_zk_retail_brandTotal都已将酒石酸美托洛尔排除 - select A.YYYYMM,a.iqvia_pack_code,a.zk_product_id,a.prod_des_c,A.PROD_MAPPING,b.province_city,A.market,cast(a.sales_value*b.ValRate as decimal(38,10)) sales_value,cast(a.sales_unit*b.VolRate as decimal(38,10)) sales_unit,cast(a.counting_unit * b.VolRate as decimal(38,10)) counting_unit -,2 pack_flag -,case when PROD_MAPPING IN ('多达一', '氨氯地平阿托伐他汀钙片', '天依宁', 'OTHERS_氨氯地平,阿托伐他汀') or flag is null then 2 else 1 end brand_flag -from tmp.tmp_zk_retail_pack a -inner join tmp.tmp_zk_retail_brandTotal b on a.YYYYMM = b.YYYYMM and nvl(a.PROD_MAPPING ,'' )= nvl(b.prodmapping,'' ) and a.market = b.market -left join (select distinct PROD_DES_C flag from tmp.tmp_retail_brand) on a.prod_des_c = flag -UNION ALL ---- NIAD -SELECT YYYYMM,iqvia_pack_code,zk_product_id,prod_des_c, PROD_MAPPING,province_city,market,sales_value,sales_unit ,counting_unit,pack_flag,brand_flag from tmp.tmp_retail_sales_niad ---- GI -UNION ALL -select A.YYYYMM,a.iqvia_pack_code,a.zk_product_id,a.prod_des_c,A.PROD_MAPPING,b.province_city,A.market,a.sales_value*b.ValRate sales_value,a.sales_unit*b.VolRate sales_unit,a.counting_unit * b.VolRate counting_unit -,2 pack_flag --- ,case when a.PROD_MAPPING =concat('Others_',a.market ) then 2 else 1 end brand_flag -,case when (a.PROD_MAPPING like 'Others_%' and a.PROD_MAPPING not like 'Others_cmps%') or flag is null then 2 else 1 end brand_flag -from GI a -inner join tmp.tmp_zk_retail_brandTotal b on a.YYYYMM = b.YYYYMM and a.PROD_MAPPING = b.prodmapping and a.market = b.market -left join (select distinct PROD_DES_C flag from tmp.tmp_retail_brand) on a.prod_des_c = flag ---RD和抗血栓 -union all -select -YYYYMM -,iqvia_pack_code -,zk_product_id -,prod_des_c -,PROD_MAPPING -,'全国' zk_region -,case when brand_flag = 'pack-RD-肾科-全国.xlsx' then 'RD Market' else 'Brilinta Market' end market -,sales_value -,sales_unit -,counting_unit -,2 pack_flag -,2 brand_flag -from tmp -where brand_flag in ( 'pack-CV-抗血栓2通用名-全国.xlsx','pack-RD-肾科-全国.xlsx') --- 补充漏掉的部分 -union all -select -a.YYYYMM -,a.iqvia_pack_code -,a.zk_product_id -,a.prod_des_c -,a.PROD_MAPPING -,'全国' zk_region -,a.market -,a.sales_value -,a.sales_unit -,a.counting_unit -,1 pack_flag -,1 brand_flag -FROM tmp_zk_retail_pack_lost a - ------拼接re结果 --- union all --- select --- a.YYYYMM --- ,a.iqvia_pack_code --- ,a.zk_product_id --- ,b.prod_des_c --- ,b.prod_des_c --- ,a.province_city --- ,'慢性阻塞性肺疾病' market --- ,a.sales_value --- ,a.sales_unit --- ,a.counting_unit --- ,pack_flag --- ,case when c.mapp is null then 2 else 1 end brand_flag --- from tmp.tmp_retail_result_re a --- left join dwd.dwd_gnd_ext_retail_pack_property b --- on a.zk_product_id =b.product_id --- left join (select b.PROD_DES_C mapp from --- (select distinct zk_brand_category from dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all where brand_cat_type='品牌' and market='慢性阻塞性肺疾病') a --- left join (select distinct PROD_DES_C,ZK_Prod_C from dwd.dwd_inc_gnd_retail_b2c_label_total ) b on a.zk_brand_category =b.ZK_Prod_C ) c --- on b.prod_des_c = c.mapp --- --酒石酸美托洛尔 --- union all --- select --- YYYYMM, --- iqvia_pack_code, --- zk_product_id, --- prod_des_c, --- PROD_MAPPING, --- province_city, --- market, --- sales_value, --- sales_unit, --- counting_unit, --- pack_flag, --- brand_flag --- from all_metoprolol_tartrat - --- inhaled直取数据 -union all -select - YYYYMM, - iqvia_pack_code, - zk_product_id, - prod_des_c, - '' PROD_MAPPING, - province_city, - market, - Sales_value, - sales_unit, - counting_unit, - pack_flag, - brand_flag -from Inhaled_pack_direct ---bdnd数据 -union all -select - YYYYMM, - iqvia_pack_code, - zk_product_id, - prod_des_c, - '' PROD_MAPPING, - province_city, - market, - Sales_value, - sales_unit, - counting_unit, - pack_flag, - brand_flag -from bdnd_pack_direct ---小儿咳喘 -union all -select - YYYYMM, - iqvia_pack_code, - zk_product_id, - prod_des_c, - '' PROD_MAPPING, - province_city, - market, - Sales_value, - sales_unit, - counting_unit, - pack_flag, - brand_flag -from tmp_pack_xiaoer - --- COMMAND ---------- - --- MAGIC %md --- MAGIC ## 写入dws - --- COMMAND ---------- - -------------------------------将数据写入dws 并获取同期数据---------------------------- -insert overwrite table dws.dws_zk_retail_sales -select - YYYYMM - ,iqvia_pack_code - ,zk_product_id - ,prod_des_c - ,PROD_MAPPING - ,province_city - ,market - ,sum(sales_value) as sales_value - ,sum(sales_value_ly) as sales_value_ly - ,sum(sales_unit) as sales_unit - ,sum(sales_unit_ly) as sales_unit_ly - ,sum(counting_unit) as counting_unit - ,sum(counting_unit_ly) as counting_unit_ly - ,pack_flag - ,brand_flag - ,from_utc_timestamp(current_timestamp(),'UTC+8') AS etl_insert_dt - ,from_utc_timestamp(current_timestamp(),'UTC+8') AS etl_update_dt -from ( - select - YYYYMM - ,iqvia_pack_code - ,zk_product_id - ,prod_des_c - ,PROD_MAPPING - ,province_city - ,market - ,sales_value as sales_value - ,0 as sales_value_ly - ,sales_unit as sales_unit - ,0 as sales_unit_ly - ,counting_unit as counting_unit - ,0 as counting_unit_ly - ,pack_flag - ,brand_flag - from tmp.tmp_retail_result - union all - select - cast(YYYYMM + 100 as int) - ,iqvia_pack_code - ,zk_product_id - ,prod_des_c - ,PROD_MAPPING - ,province_city - ,market - ,0 as sales_value - ,sales_value as sales_value_ly - ,0 as sales_unit - ,sales_unit as sales_unit_ly - ,0 as counting_unit - ,counting_unit as counting_unit_ly - ,pack_flag - ,brand_flag - from tmp.tmp_retail_result - where YYYYMM + 100 <=(select max(yyyymm) from tmp.tmp_retail_result) -) -group by - YYYYMM - ,iqvia_pack_code - ,zk_product_id - ,prod_des_c - ,PROD_MAPPING - ,province_city - ,market - ,pack_flag - ,brand_flag - - - - - --- COMMAND ---------- - -/* -剔除利尿剂数据 -*/ -insert overwrite table tmp.tmp_zk_retail_sales -select a.* from dws.dws_zk_retail_sales a - -left join dwd.dwd_gnd_ext_retail_pack_property c on a.zk_product_id = c.product_id -where lower( c.atc2_cod ) <> 'c03' and a.market = 'RD Market' - -union all -select * from dws.dws_zk_retail_sales a -where a.market <> 'RD Market' - --- COMMAND ---------- - --- MAGIC %md --- MAGIC ## 将ta总数写入 dwd层,保持原有逻辑不动 - --- COMMAND ---------- - --- /* --- 修改时间:20250311 --- 修改人:chenwu --- 修改内容:由于TA大数没有了,所以要用pack的数据往上汇总,写入到原先的 dwd.dwd_gnd_ext_retail_nataional_ta_top_corp中 --- */ --- with corp_type_mapping as (-- corp 的类型 --- select --- case when CORP_COD ='F+N' then 'A5Z' ELSE CORP_COD END CORP_COD --- ,case when upper(MNFL_DES) = 'LOCAL' then 'LOCAL' else 'MNC' end CORP_TYPE --- from dwd.dwd_inc_gnd_retail_b2c_label_total --- group by --- case when CORP_COD ='F+N' then 'A5Z' ELSE CORP_COD END --- ,case when upper(MNFL_DES) = 'LOCAL' then 'LOCAL' else 'MNC' end --- ) - --- ,packcode_corp_mapping as (--pack 和 corp 关系 --- select iqvia_pack_code, nvl(max(corp_cod),'others') corp_cod,nvl( max(corp_des), 'others') corp_des, nvl(MAX(corp_des_c),'others') corp_des_c --- from tmp.tmp_zk_retail_pack_property --- group by 1 --- ) --- ,market_ta_mapping as ( --- select '慢性阻塞性肺疾病' market ,'RE' ta union all --- select '慢性胃炎、胃溃疡' market ,'GI' ta union all --- select 'Inhaled Extended Market' market ,'RE' ta union all --- select 'NIAD' market ,'NIAD' ta union all --- select 'Brilinta Market' market ,'CV-2' ta union all --- select '他汀类+血脂康' market ,'CV-3' ta union all --- select '小儿咳喘' market ,'XIAOER' ta union all --- select '高血压用药' market ,'CV-1' ta union all --- select 'RD Market' market ,'RD' ta --- ) --- ,ta_sumall as ( --- select --- B.corp_des_c as corp_desc --- ,B.CORP_COD as corp_name --code 暂时替代 英文名称 --- -- ,B.corp_cod as corp_cod --- ,C.CORP_TYPE as corp_type --- ,A.YYYYMM as sales_quarter --- ,cast(sum(sales_value)/1000000.000000 as decimal(38,6)) sales_amount --- ,D.ta as source_name_old --- from tmp.tmp_zk_retail_sales A --- left join packcode_corp_mapping B on A.iqvia_pack_code = B.iqvia_pack_code --- left join corp_type_mapping C on B.corp_cod = C.CORP_COD --- left join market_ta_mapping D on D.market = A.market --- where a.market<>'小儿咳喘' --and A.YYYYMM ='202412' --- group by --- B.corp_des_c --- ,B.corp_cod --- -- ,B.corp_cod --- ,C.CORP_TYPE --- ,A.YYYYMM --- ,D.ta) - --- ,sumall (--cv、niad --- select *,'CV' AS source_name from ta_sumall where left(source_name_old,2)='CV' UNION ALL --- select *,'CVRM' AS source_name from ta_sumall where left(source_name_old,2)='CV' OR source_name_old IN ('NIAD', 'RD') UNION ALL --- select *,'GI' AS source_name from ta_sumall where source_name_old='GI' UNION ALL --- select *,'RD' AS source_name from ta_sumall where source_name_old='RD' UNION ALL --- select *,'RE' AS source_name from ta_sumall where source_name_old='RE' UNION ALL --- select *,'NIAD' AS source_name from ta_sumall where source_name_old='NIAD' --- ) --- ,rankresult ( --计算排名 --- select --- row_number() over(partition by sales_quarter,source_name order by sales_amount desc) rank1 --- ,corp_desc --- ,corp_name --- ,corp_type --- ,sales_quarter --- ,sales_amount --- ,source_name --- from sumall --- ) - --- -- 写入数据到 dwd层 --- insert into table dwd.dwd_gnd_ext_retail_nataional_ta_top_corp --- (rank1, --- corp_desc, --- corp_name, --- corp_type, --- source_name, --- sales_quarter, --- sales_amount --- -- ytd_gr, --- -- ytd_ms, --- -- ytd_delta_ms, --- -- builtinarchivedate, --- -- source_file_path, --- -- source_file_name, --- -- etl_insert_dt --- ) --- select --- rank1 --- ,corp_desc --- ,corp_name --- ,corp_type --- ,source_name --- ,sales_quarter --- ,sales_amount --- from rankresult --- where rank1<=20 --数量太多 --- -- and sales_quarter ='202412' and source_name='NIAD' - - --- COMMAND ---------- - -----------------将 ta_top_corp 的数据处理到dws------------------- -insert overwrite table dws.dws_zk_retail_ta_top_corp --------------------获取 ta total 本同期数据,用于后续取 total 及 az 值------------------------ -SELECT - source_name, - rank1, - corp_desc, - CORP_COD, - yyyymm, - sum(sales_amount) sales_amount, - sum(sales_amount_ly) sales_amount_ly -FROM - ( - SELECT - a.rank1, - source_name, - A.corp_desc, - B.CORP_COD, --A.corp_name as CORP_COD, --自有的corp_name 是 corp_code - CAST(sales_quarter AS int ) yyyymm , - sales_amount * 1000000 AS sales_amount, - 0 AS sales_amount_ly - FROM dwd.dwd_gnd_ext_retail_nataional_ta_top_corp a - LEFT JOIN (SELECT DISTINCT ZK_Corp_C,CORP_COD FROM dwd.dwd_inc_gnd_retail_b2c_label_total) b - ON a.corp_desc = b.ZK_Corp_C -UNION ALL - SELECT - a.rank1, - source_name, - A.corp_desc, - B.CORP_COD, --A.corp_name as CORP_COD, --自有的corp_name 是 corp_code - CAST(sales_quarter + 100 AS int ) yyyymm , - 0 AS sales_amount, - sales_amount * 1000000 AS sales_amount_ly - FROM dwd.dwd_gnd_ext_retail_nataional_ta_top_corp a - LEFT JOIN (SELECT DISTINCT ZK_Corp_C,CORP_COD FROM dwd.dwd_inc_gnd_retail_b2c_label_total) b - ON a.corp_desc = b.ZK_Corp_C - WHERE - CAST(sales_quarter + 100 AS int ) - <=( SELECT max(CAST(sales_quarter AS int )) - FROM dwd.dwd_gnd_ext_retail_nataional_ta_top_corp ) -) -GROUP BY - 1,2,3,4,5 - - --- COMMAND ---------- - ---------------------------------------------------将 top_corp 的数据处理到dws---------------------------------------------------- ---------------------获取 全国total 本同期数据------------------------ -insert overwrite table dws.dws_zk_retail_top_corp -SELECT - yyyymm, - rank1, - corp_desc, - corporation, - -- source_name, - sum(sales_amount) as sales_amount, - sum(sales_amount_ly) as sales_amount_ly -FROM - ( - SELECT - nvl(rank1,'' ) as rank1 , - corp_desc, - corporation, - corp_type, - -- source_name, - CAST(sales_quarter AS int ) as yyyymm, - sales_amount * 1000000 AS sales_amount, - 0 AS sales_amount_ly - FROM dwd.dwd_gnd_ext_retail_nataional_top_corp - UNION ALL - SELECT - nvl(rank1,'' ) rank1, - corp_desc, - corporation, - corp_type, - -- source_name, - CAST(sales_quarter + 100 AS int ) as yyyymm, - 0 AS sales_amount, - sales_amount * 1000000 AS sales_amount_ly - FROM dwd.dwd_gnd_ext_retail_nataional_top_corp - WHERE CAST(sales_quarter + 100 AS int ) - <=(SELECT - max(CAST(sales_quarter AS int )) - FROM dwd.dwd_gnd_ext_retail_nataional_top_corp ) ) -GROUP BY - yyyymm, - rank1, - corp_desc, - corporation - -- source_name - --- COMMAND ---------- - -------------------对 配置表的pack 对应公司、分子式 根据 dwd_gnd_tbl_corp_change 表进行产品重新归属--------- -insert overwrite table tmp.tmp_zk_retail_pack_property_corp -select distinct a.iqvia_pack_code - ,COALESCE(c.corp_cod,b.corp_cod,a.corp_cod) corp_cod - ,COALESCE(c.corp_des,b.corp_des,a.corp_des) corp_des - ,COALESCE(d.corp_des_c,a.corp_des_c ) corp_des_c - ,COALESCE(c.manu_cod,b.manu_cod,a.manu_cod) manu_cod - ,COALESCE(c.manu_des,b.manu_des,a.manu_des) manu_des - ,COALESCE(e.manu_des_c,a.manu_des_c) manu_des_c -from (select DISTINCT iqvia_pack_code,corp_cod,corp_des,corp_des_c,right(concat('000000',manu_cod),6 ) manu_cod,manu_des,manu_des_c,prod_cod from tmp.tmp_zk_retail_pack_property) a -left join (select right(concat('000000000',prod_cod ),9) prod_cod,corp_cod,corp_des,right(concat('000000',manu_cod),6 ) manu_cod,manu_des from dwd.dwd_gnd_tbl_corp_change where pack_cod is null ) b -on right(concat('000000000',A.prod_cod ),9)= b.prod_cod -left join (select if( pack_cod REGEXP '^[0-9]',right(concat('000000000000',pack_cod),12),pack_cod) pack_cod,corp_cod,corp_des,right(concat('000000',manu_cod),6 ) manu_cod,manu_des from dwd.dwd_gnd_tbl_corp_change where pack_cod is not null ) c -on a.iqvia_pack_code = c.pack_cod -left join (select distinct corp_cod,corp_des_c from dwd.dwd_gnd_ext_retail_pack_property) d -on coalesce(C.corp_cod,B.corp_cod ) = d.corp_cod -Left join (select distinct right(concat('000000',manu_cod),6 ) manu_cod,manu_des,manu_des_c from dwd.dwd_gnd_ext_retail_pack_property) e -On coalesce(C.manu_cod,B.manu_cod ) = e.manu_cod - --- COMMAND ---------- - ------------------------------计算others ta 和 cv others --------------------------------------- --- 他汀类+血脂康 高血压用药 Brilinta Market 三个标签属于CV 需要倒减 cv others 及az_others -- ---增加酒石酸美托洛尔,这个也属于CV --------------------------------------CV OTHERS------------------------------------------- --- total - market -insert overwrite table tmp.tmp_dm_zk_retail_sales_tmp -WITH TEMP_CV AS ( - -------------------------------------------------CV数据关联 去重pack,避免数据重复----------------------------------------------------- - SELECT - a.YYYYMM - ,a.iqvia_pack_code - ,a.zk_product_id - ,a.prod_des_c - ,a.province_city - ,a.sales_value - ,a.sales_value_ly - ,a.sales_unit - ,a.sales_unit_ly - ,a.counting_unit - ,a.counting_unit_ly - ,pack_flag - ,brand_flag - ,collect_list(a.market) source - FROM tmp.tmp_zk_retail_sales a - inner join ( - ---CV 中对重复数据任意取一个文件来源的 pack ,避免数据重复--- - SELECT - YYYYMM - ,iqvia_pack_code - ,zk_product_id - ,prod_des_c - ,province_city - ,max(market) market - FROM tmp.tmp_zk_retail_sales - where market in ('他汀类+血脂康','高血压用药','Brilinta Market','酒石酸美托洛尔') - group by 1,2,3,4,5 - ) b on a.yyyymm = b.yyyymm - and a.iqvia_pack_code =b.iqvia_pack_code - and a.zk_product_id = b.zk_product_id - and a.province_city = b.province_city - and a.market = b.market - where a.market in ('他汀类+血脂康','高血压用药','Brilinta Market','酒石酸美托洛尔') - group by 1,2,3,4,5,6,7,8,9,10,11,12,13 -) -, CV_PACK_CORP_DATA AS ( --------------------------------------获取pack + corp 粒度 的CV数据 并倒减cv下 az others 值----------------------------------------------- ---------------------拼接CV 原始AZ PACK数据-------------------- - SELECT - YYYYMM - ,A.iqvia_pack_code - ,A.zk_product_id - ,A.prod_des_c - ,A.province_city - ,B.corp_cod - ,sales_value - ,sales_value_ly - ,sales_unit - ,sales_unit_ly - ,counting_unit - ,counting_unit_ly - ,source - ,pack_flag - ,brand_flag - from TEMP_CV A - inner JOIN (select distinct iqvia_pack_code,corp_cod,corp_des,corp_des_c from tmp.tmp_zk_retail_pack_property_corp) b - ON A.iqvia_pack_code=B.iqvia_pack_code - where corp_cod ='A5Z' - UNION ALL ---------------------CV下的AZ OTHERS,即 cv 下的 AZ 汇总值减 pack 粒度az 汇总-------------------- - SELECT - CV_PACK.YYYYMM - ,'CV_AZ_OTHERS' as iqvia_pack_code - ,'CV_AZ_OTHERS' as zk_product_id - ,null as prod_des_c - ,'ROC' as province_city - ,CV_PACK.corp_cod - ,0--,case when Total.sales_amount is not null then Total.sales_amount - CV_PACK.sales_value else 0 end as sales_value - ,0--,case when Total.sales_amount_ly is not null then Total.sales_amount_ly - CV_PACK.sales_value_ly else 0 end as sales_value_ly - ,0,0,0,0 - ,null - ,0 pack_flag - ,0 brand_flag - FROM ( - SELECT - YYYYMM - ,corp_cod - ,sum(sales_value) sales_value - ,sum(sales_value_ly) sales_value_ly - from TEMP_CV a - inner join (select distinct iqvia_pack_code,corp_cod,corp_des,corp_des_c from tmp.tmp_zk_retail_pack_property_corp ) b - on a.iqvia_pack_code = b.iqvia_pack_code - where corp_cod ='A5Z' - group by 1,2 - ) CV_PACK - LEFT JOIN ( select yyyymm,sales_amount,sales_amount_ly from dws.dws_zk_retail_ta_top_corp where source_name='CV' --AND CORP_COD='A5Z' - AND CORP_COD ='A5Z' - ) Total - ON CV_PACK.YYYYMM = Total.YYYYMM - UNION ALL ---------------------拼接CV CORP非az 值-------------------- - SELECT - YYYYMM - ,A.iqvia_pack_code - ,A.zk_product_id - ,A.prod_des_c - ,A.province_city - ,B.corp_cod - ,sales_value - ,sales_value_ly - ,sales_unit - ,sales_unit_ly - ,counting_unit - ,counting_unit_ly - ,source - ,pack_flag - ,brand_flag - from TEMP_CV A - left JOIN (select distinct iqvia_pack_code,corp_cod,corp_des,corp_des_c from tmp.tmp_zk_retail_pack_property_corp ) b - ON A.iqvia_pack_code=B.iqvia_pack_code - where nvl(corp_cod,'') <>'A5Z' -) - ------ 倒减完 AZ 的所有CV PACK 数据--------- - SELECT - YYYYMM - ,iqvia_pack_code - ,zk_product_id - ,prod_des_c - ,province_city - ,corp_cod - ,sales_value - ,sales_value_ly - ,sales_unit - ,sales_unit_ly - ,counting_unit - ,counting_unit_ly - ,source - ,pack_flag - ,brand_flag - ,'CV' FLAG - from CV_PACK_CORP_DATA - UNION ALL -------- 获取 CV_OTHERS---------- - SELECT - CV_PACK.YYYYMM - ,'CV_OTHERS' as iqvia_pack_code - ,'CV_OTHERS' as zk_product_id - ,null as prod_des_c - ,'ROC' as province_city - ,'CV_OTHERS' AS corp_cod - ,0--,case when Total.sales_amount is not null then Total.sales_amount - CV_PACK.sales_value else 0 end as sales_value - ,0--,case when Total.sales_amount_ly is not null then Total.sales_amount_ly - CV_PACK.sales_value_ly else 0 end as sales_value_ly - ,0,0,0,0 - ,null - ,0 pack_flag - ,0 brand_flag - ,'CV' - FROM ( - -------获取所有CV 数据------- - SELECT - YYYYMM - ,sum(sales_value) sales_value - ,sum(sales_value_ly) sales_value_ly - from CV_PACK_CORP_DATA - group by 1 - ) CV_PACK - LEFT JOIN ( select yyyymm,sales_amount,sales_amount_ly from dws.dws_zk_retail_ta_top_corp where source_name='CV' --AND CORP_COD='A5Z' - AND rank1 ='Total' - ) Total - ON CV_PACK.YYYYMM = Total.YYYYMM - UNION ALL ----------- 除了 CV 外的其他数据---------- - SELECT DISTINCT - YYYYMM - ,A.iqvia_pack_code - ,A.zk_product_id - ,A.prod_des_c - ,A.province_city - ,B.corp_cod - ,round(sales_value,2) sales_value - ,round(sales_value_ly,2) sales_value_ly - ,round(sales_unit,2) sales_unit - ,round(sales_unit_ly,2) sales_unit_ly - ,round(counting_unit,2) counting_unit - ,round(counting_unit_ly,2) counting_unit_ly - ,collect_list(market) source - ,pack_flag - ,brand_flag - ,CASE WHEN A.market IN ('NIAD','RD Market') THEN 'CVRM' ELSE '' END FLAG - from tmp.tmp_zk_retail_sales A - LEFT JOIN (select distinct iqvia_pack_code,corp_cod from tmp.tmp_zk_retail_pack_property_corp ) b - ON A.iqvia_pack_code=B.iqvia_pack_code - where market not in ('他汀类+血脂康','高血压用药','Brilinta Market','酒石酸美托洛尔') - group by - YYYYMM - ,A.iqvia_pack_code - ,A.zk_product_id - ,A.prod_des_c - ,A.province_city - ,B.corp_cod - ,round(sales_value,2) - ,round(sales_value_ly,2) - ,round(sales_unit,2) - ,round(sales_unit_ly,2) - ,round(counting_unit,2) - ,round(counting_unit_ly,2) - ,pack_flag - ,brand_flag - ,CASE WHEN A.market IN ('NIAD','RD Market') THEN 'CVRM' ELSE '' END - - - - --- COMMAND ---------- - ---------------------------------------------------------------------倒减cvrm az 及cvrm total ----------------------------------------------------- -insert overwrite table tmp.tmp_dm_zk_retail_sales_tmp2 -with alldata as ( - SELECT - YYYYMM - ,iqvia_pack_code - ,zk_product_id - ,prod_des_c - ,province_city - ,corp_cod - ,sales_value - ,sales_value_ly - ,sales_unit - ,sales_unit_ly - ,counting_unit - ,counting_unit_ly - ,source - ,pack_flag - ,brand_flag - ,FLAG -FROM TMP.tmp_dm_zk_retail_sales_tmp -UNION ALL -SELECT - A.YYYYMM - ,'CVRM_AZ_OTHERS' iqvia_pack_code - ,'CVRM_AZ_OTHERS' zk_product_id - ,NULL prod_des_c - ,'ROC' - ,A.corp_cod - ,0--,case when B.sales_amount is not null then B.sales_amount - A.sales_value else 0 end sales_value - ,0--case when B.sales_amount_ly is not null then B.sales_amount_ly - A.sales_value_ly else 0 end sales_value_ly - ,0 sales_unit - ,0 sales_unit_ly - ,0 counting_unit - ,0 counting_unit_ly - ,NULL source - ,0 pack_flag - ,0 brand_flag - ,'CVRM' -FROM ( SELECT - YYYYMM,corp_cod - ,SUM(sales_value) sales_value - ,SUM(sales_value_ly) sales_value_ly - FROM tmp.tmp_dm_zk_retail_sales_tmp WHERE corp_cod ='A5Z' AND FLAG IN ('CV','CVRM') - GROUP BY 1,2 -) A -LEFT JOIN (select CORP_COD,yyyymm,sales_amount,sales_amount_ly from dws.dws_zk_retail_ta_top_corp where source_name='CVRM' AND CORP_COD='A5Z') B -ON A.YYYYMM=B.yyyymm AND A.corp_cod=B.CORP_COD -) - - SELECT - YYYYMM - ,iqvia_pack_code - ,zk_product_id - ,prod_des_c - ,province_city - ,corp_cod - ,sales_value - ,sales_value_ly - ,sales_unit - ,sales_unit_ly - ,counting_unit - ,counting_unit_ly - ,source - ,pack_flag - ,brand_flag - ,FLAG -from alldata -union all -SELECT - A.YYYYMM - ,'CVRM_OTHERS' iqvia_pack_code - ,'CVRM_OTHERS' zk_product_id - ,NULL prod_des_c - ,'ROC' - ,'CVRM_OTHERS' corp_cod - ,0--,case when B.sales_amount is not null then B.sales_amount - A.sales_value else 0 end sales_value - ,0--case when B.sales_amount_ly is not null then B.sales_amount_ly - A.sales_value_ly else 0 end sales_value_ly - ,0 sales_unit - ,0 sales_unit_ly - ,0 counting_unit - ,0 counting_unit_ly - ,NULL source - ,0 pack_flag - ,0 brand_flag - ,'CVRM' -FROM ( SELECT - YYYYMM - ,SUM(sales_value) sales_value - ,SUM(sales_value_ly) sales_value_ly - FROM alldata WHERE FLAG IN ('CV','CVRM') - GROUP BY 1 -) A -LEFT JOIN (select yyyymm,sales_amount,sales_amount_ly from dws.dws_zk_retail_ta_top_corp where corp_desc='CVRM') B -ON A.YYYYMM=B.yyyymm - - --- COMMAND ---------- - -------------------------8.2不上线,但后续肯定会上线----------------- --- -----Non AZ Retail Related Market 逻辑,仅需要全国数据,该市场均为各文件中没有市场的数据,逻辑中存在仅取 gi re 文件数据,原因是 高血压、他汀血脂康、niad 在拆分时 使用的时整个文件拆分,而RD 、抗血栓 整个文件是全取,non az 市场数据若有,就已经存在结果表里; 反之 GI 、RE(含Inhaled) 拆分时通过 tblmarket 框选了对应市场的数据进行拆分,其他数据被排除了(即NON AZ 市场数据,该数据不属于任何TA ,但归属于TOTAL),后续这部分数据需要 在pbi 展示,所有需要在倒减 others_ta 时加上。 --- INSERT INTO tmp.tmp_dm_zk_retail_sales_tmp2 --- select --- YYYYMM --- ,iqvia_pack_code --- ,zk_product_id --- ,prod_des_c --- ,province_city --- ,corp_cod --- ,SUM(sales_value) sales_value --- ,SUM(sales_value_ly) sales_value_ly --- ,SUM(sales_unit) sales_unit --- ,SUM(sales_unit_ly) sales_unit_ly --- ,sum(counting_unit) counting_unit --- ,sum(counting_unit_ly) counting_unit_ly --- ,source --- ,pack_flag --- ,brand_flag --- ,flag --- from ( - --- --------------获取本期、同期数据---------- --- select --- a.YYYYMM --- ,b.iqvia_pack_code --- ,a.zk_product_id --- ,b.prod_des_c --- ,'ROC' province_city --- ,coalesce(c.corp_cod,b.corp_cod ) corp_cod --- ,sum(a.sales_value) sales_value --- ,0 sales_value_ly --- ,sum(a.sales_unit) sales_unit --- ,0 sales_unit_ly --- ,sum(a.sales_unit *(a.counting_unit / coalesce(b.unit,1 ))) counting_unit --- ,0 counting_unit_ly --- ,collect_list(a.brand_flag ) source --- ,2 pack_flag --- ,case when prod.prod_des_c is null THEN 2 else 1 END brand_flag --- ,null flag --- from dwd.dwd_inc_gnd_ext_retail_nataional_pack_union_all a --- left join dwd.dwd_gnd_ext_retail_pack_property b on a.zk_product_id = b.product_id --- left join tmp.tmp_zk_retail_pack_property_corp c on c.iqvia_pack_code = right(concat('0000000',b.iqvia_pack_code ),7 ) --- left join (SELECT DISTINCT b.prod_des_c FROM TMP.tmp_zk_retail_nataional_brand_union A --- LEFT JOIN (SELECT DISTINCT iqvia_pack_code,prod_des_c FROM tmp.tmp_zk_retail_pack_property) b on a.iqvia_pack_code=b.iqvia_pack_code --- ) prod on b.prod_des_c=prod.prod_des_c --- where b.iqvia_pack_code in ( select distinct iqvia_pack_code from tmp.tmp_zk_retail_pack_property where market = 'Non AZ Retail Related Market' ) --- and a.zk_region ='全国' --- AND a.brand_flag in ('pack-GI-慢性胃炎胃溃疡-全国.xlsx','pack-RE-慢阻肺-全国.xlsx') --- and b.iqvia_pack_code not in (select distinct iqvia_pack_code from tmp.tmp_dm_zk_retail_sales_tmp ) --- group by a.YYYYMM,b.iqvia_pack_code,a.zk_product_id,b.prod_des_c,a.brand_flag --- ,coalesce(c.corp_cod,b.corp_cod ) --- ,case when prod.prod_des_c is null --- THEN 2 else 1 --- END --- union all --- select --- cast(a.YYYYMM + 100 as int ) YYYYMM --- ,b.iqvia_pack_code --- ,a.zk_product_id --- ,b.prod_des_c --- ,'ROC' province_city --- ,coalesce(c.corp_cod,b.corp_cod ) corp_cod --- ,0 sales_value --- ,sum(a.sales_value) sales_value_ly --- ,0 sales_unit --- ,sum(a.sales_unit) sales_unit_ly --- ,0 counting_unit --- ,sum(a.sales_unit *(a.counting_unit / coalesce(b.unit,1 ))) counting_unit_ly --- ,collect_list(a.brand_flag ) source --- ,2 pack_flag --- ,case when prod.prod_des_c is null THEN 2 else 1 END brand_flag --- ,null flag --- from dwd.dwd_inc_gnd_ext_retail_nataional_pack_union_all a --- left join dwd.dwd_gnd_ext_retail_pack_property b on a.zk_product_id = b.product_id --- left join tmp.tmp_zk_retail_pack_property_corp c on c.iqvia_pack_code = right(concat('0000000',b.iqvia_pack_code ),7 ) --- left join (SELECT DISTINCT b.prod_des_c FROM TMP.tmp_zk_retail_nataional_brand_union A --- LEFT JOIN (SELECT DISTINCT iqvia_pack_code,prod_des_c FROM tmp.tmp_zk_retail_pack_property) b on a.iqvia_pack_code=b.iqvia_pack_code --- ) prod on b.prod_des_c=prod.prod_des_c --- where b.iqvia_pack_code in ( select distinct iqvia_pack_code from tmp.tmp_zk_retail_pack_property where market = 'Non AZ Retail Related Market' ) --- and a.zk_region ='全国' --- AND a.brand_flag in ('pack-GI-慢性胃炎胃溃疡-全国.xlsx','pack-RE-慢阻肺-全国.xlsx') --- and b.iqvia_pack_code not in (select distinct iqvia_pack_code from tmp.tmp_dm_zk_retail_sales_tmp ) --- and a.YYYYMM + 100 <= (select max(YYYYMM) from tmp.tmp_dm_zk_retail_sales_tmp ) --- group by cast(a.YYYYMM + 100 as int ) --- ,b.iqvia_pack_code,a.zk_product_id,b.prod_des_c,a.brand_flag --- ,coalesce(c.corp_cod,b.corp_cod ) --- ,case when prod.prod_des_c is null --- THEN 2 else 1 --- END --- ) group by --- YYYYMM,iqvia_pack_code,zk_product_id,prod_des_c,province_city,corp_cod,source,pack_flag,brand_flag,flag - - --- COMMAND ---------- - --------------------------------------------------倒减OTHERS TA\ others az 并写入dm----------------------------------------- -insert overwrite table dm.dm_zk_retail_sales -with all_ta_data as ( - SELECT - YYYYMM - ,iqvia_pack_code - ,zk_product_id - ,prod_des_c - ,province_city - ,corp_cod - ,sales_value - ,sales_value_ly - ,sales_unit - ,sales_unit_ly - ,counting_unit - ,counting_unit_ly - ,source - ,pack_flag - ,brand_flag - ,FLAG - from tmp.tmp_dm_zk_retail_sales_tmp2 - UNION ALL - SELECT - mkt.YYYYMM - ,'OTHERS_AZ_TA' as iqvia_pack_code - ,'OTHERS_AZ_TA' as zk_product_id - ,null as prod_des_c - ,'ROC' as province_city - ,mkt.corp_cod - ,case when Total.sales_amount is not null then Total.sales_amount - mkt.sales_value else 0 end as sales_value - ,case when Total.sales_amount_ly is not null then Total.sales_amount_ly - mkt.sales_value_ly else 0 end as sales_value_ly - ,0,0,0,0 - ,null - ,0 pack_flag - ,0 brand_flag - ,'TA_AZ' - FROM ( - SELECT - YYYYMM - ,corp_cod - ,sum(sales_value) sales_value - ,sum(sales_value_ly) sales_value_ly - from tmp.tmp_dm_zk_retail_sales_tmp2 A - where nvl(corp_cod,'') ='A5Z' - group by YYYYMM,corp_cod - ) mkt - LEFT JOIN (SELECT yyyymm,sales_amount,sales_amount_ly FROM dws.dws_zk_retail_top_corp WHERE corp_desc='阿斯利康') TOTAL - ON mkt.YYYYMM = Total.YYYYMM -) -,Result as ( - ------------------------------- 所有pack数据 ------------------------------- -SELECT - YYYYMM - ,iqvia_pack_code - ,zk_product_id - ,prod_des_c - ,province_city - ,corp_cod - ,sales_value - ,sales_value_ly - ,sales_unit - ,sales_unit_ly - ,counting_unit - ,counting_unit_ly - ,source - ,pack_flag - ,brand_flag - ,FLAG -from all_ta_data - ----------------------------------OTHERS_TA 倒减数据----------------------------------- -union all -SELECT - mkt.YYYYMM - ,'OTHERS_TA' as iqvia_pack_code - ,'OTHERS_TA' as zk_product_id - ,null as prod_des_c - ,'ROC' as province_city - ,'OTHERS_TA' as corp_cod - ,Total.sales_amount - mkt.sales_value as sales_value - ,Total.sales_amount_ly - mkt.sales_value_ly as sales_value_ly - ,0,0,0,0 - ,null - ,0 pack_flag - ,0 brand_flag - ,'OTHERS_TA' -FROM ( - SELECT - YYYYMM - ,sum(sales_value) sales_value - ,sum(sales_value_ly) sales_value_ly - from all_ta_data A - group by YYYYMM - ) mkt -LEFT JOIN (SELECT yyyymm,sales_amount,sales_amount_ly FROM dws.dws_zk_retail_top_corp WHERE rank1='Total') TOTAL -ON mkt.YYYYMM = Total.YYYYMM -) -----------------------------------------数据写入DM------------------------------------------------ -select - pack.YYYYMM - ,pack.iqvia_pack_code - ,NVL(CASE WHEN PACK.province_city ='全国' then 'ROC' ELSE T2.geo_key END ,'ROC') AUDIT_COD - ,CASE WHEN PACK.province_city ='全国' then 'ROC' ELSE PACK.province_city END province_city - ,corp_cod - ,sum(pack.sales_unit) sales_unit - ,sum(pack.sales_unit_ly) sales_unit_ly - ,sum(pack.sales_value) sales_value - ,sum(pack.sales_value_ly) sales_value_ly - ,sum(pack.counting_unit) counting_unit - ,sum(pack.counting_unit_ly) counting_unit_ly - ,'Retail (Quarterly)' DATA_SOURCE - ,source - ,pack_flag - ,brand_flag - ,FLAG - ,from_utc_timestamp(current_timestamp(),'UTC+8') AS etl_insert_dt - ,from_utc_timestamp(current_timestamp(),'UTC+8') AS etl_update_dt -from result pack -left join dm.dm_zk_retail_geo t2 -on pack.province_city = t2.province_city -group by pack.YYYYMM - ,pack.iqvia_pack_code - ,NVL(CASE WHEN PACK.province_city ='全国' then 'ROC' ELSE T2.geo_key END ,'ROC') - ,CASE WHEN PACK.province_city ='全国' then 'ROC' ELSE PACK.province_city END - ,source - ,pack_flag - ,brand_flag - ,corp_cod - ,FLAG - - --- COMMAND ---------- - ----------------------------------------------将倒减的pack 补充到ppack info -insert overwrite table dws.dws_zk_retail_pack_property -select -* - ,from_utc_timestamp(current_timestamp(),'UTC+8') etl_insert_dt - ,from_utc_timestamp(current_timestamp(),'UTC+8') etl_update_dt -from tmp.tmp_zk_retail_pack_property -union all -------事实表中倒减出来的pack 需要补充到配置表中 - select - '' iqvia_lineno - ,iqvia_pack_code PACK_CODE - ,'' iqvia_prod_code - ,'' iqvia_notes - ,'' new_pack_flag - ,'' Is_exists_chpa - ,iqvia_pack_code product_id - ,'' prescription_nature - ,'' medicine_type - ,'' zk_medicine_tier1 - ,'' zk_medicine_tier2 - ,'' zk_medicine_tier3 - ,'' zk_medicine_tier4 - ,'' common_name - ,'' dosage_form - ,'' user_type - ,'' category_name - ,'' product_name - ,'' brand - ,'' zk_manu_des - ,'' zk_corp_des - ,'' zk_pack_des - ,'' counting_unit_a - ,'' dosage_unit_a - ,'' unit_a - ,'' 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 - ,'' cmps_cod - ,'' cmps_des - ,'' cmps_des_c - ,corp_cod 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 - ,'Others' prod_des - ,'Others' prod_des_c - ,'' tcm_desc - ,'' vbp_desc - ,'' unit - ,'' counting_unit - ,'' dosage_unit - ,'' NRDL_ENTRY_DATE - ,'Non AZ Retail Related Market' market - ,'' bu - ,1 extend_market_ratio - ,CASE WHEN iqvia_pack_code LIKE '%AZ%' THEN 'Y' ELSE 'N' END is_az - ,from_utc_timestamp(current_timestamp(),'UTC+8') etl_insert_dt - ,from_utc_timestamp(current_timestamp(),'UTC+8') etl_update_dt -from (select distinct iqvia_pack_code,corp_cod - from DM.dm_zk_retail_sales where iqvia_pack_code not in (select distinct iqvia_pack_code from tmp.tmp_zk_retail_pack_property)) - - - --- COMMAND ---------- - --- dwd_gnd_tbl_corp_change ----------------------------------------对公司归属从新划分---------------------- -insert overwrite table tmp.tmp_dm_zk_retail_pack_property -select distinct - a.iqvia_lineno - ,a.iqvia_pack_code - ,a.PROD_COD - ,a.iqvia_notes - ,a.new_pack_flag - ,a.is_exists_chpa - ,a.product_id - ,a.prescription_nature - ,a.medicine_type - ,a.zk_medicine_tier1 - ,a.zk_medicine_tier2 - ,a.zk_medicine_tier3 - ,a.zk_medicine_tier4 - ,a.common_name - ,a.dosage_form - ,a.user_type - ,a.category_name - ,a.product_name - ,a.brand_name - ,a.zk_manu_des - ,a.zk_corp_des - ,a.zk_pack_des - ,a.counting_unit_a - ,a.dosage_unit_a - ,a.unit_a - ,a.app1_cod - ,a.app1_des - ,a.app1_des_c - ,a.app2_cod - ,a.app2_des - ,a.app2_des_c - ,a.app3_cod - ,a.app3_des - ,a.app3_des_c - ,a.atc1_cod - ,a.atc1_des - ,a.atc1_des_c - ,a.atc2_cod - ,a.atc2_des - ,a.atc2_des_c - ,a.atc3_cod - ,a.atc3_des - ,a.atc3_des_c - ,a.atc4_cod - ,a.atc4_des - ,a.atc4_des_c - ,a.bio_desc - ,a.cmps_cod - ,a.cmps_des - ,a.cmps_des_c - ,COALESCE(c.corp_cod,b.corp_cod,a.corp_cod) corp_cod - ,COALESCE(c.corp_des,b.corp_des,a.corp_des) corp_des - ,COALESCE(d.corp_des_c,a.corp_des_c ) corp_des_c - ,a.edl_desc - ,a.eth_otc_desc - ,a.gene_orig_desc - ,a.gqce_desc - ,COALESCE(c.manu_cod,b.manu_cod,a.manu_cod) manu_cod - ,COALESCE(c.manu_des,b.manu_des,a.manu_des) manu_des - ,COALESCE(e.manu_des_c,a.manu_des_c) manu_des_c - ,a.mnfl_cod - ,a.mnfl_des - ,a.nrdl_desc - ,a.pack_des - ,a.stgh_des - ,a.pack_lch - ,a.paed_desc - ,a.prod_des - ,a.prod_des_c - ,a.tcm_desc - ,a.vbp_desc - ,a.unit - ,a.counting_unit - ,a.dosage_unit - ,a.NRDL_ENTRY_DATE - -- ,CASE WHEN a.market= 'Antacid anti GI swelling agent+PPI Oral' THEN 'Retail_GI Market' ELSE a.MARKET END MARKET - ,A.MARKET - ,a.bu - ,a.extend_market_ratio - ,a.is_az -from dws.dws_zk_retail_pack_property a -left join (select right(concat('000000000',prod_cod ),9) prod_cod,corp_cod,corp_des, right(concat('000000',manu_cod ),6) manu_cod,manu_des from dwd.dwd_gnd_tbl_corp_change where pack_cod is null ) b -on right(concat('000000000',A.prod_cod ),9)= b.prod_cod -left join (select if( pack_cod REGEXP '^[0-9]',right(concat('000000000000',pack_cod),12),pack_cod) pack_cod,corp_cod,corp_des, right(concat('000000',manu_cod ),6) manu_cod,manu_des from dwd.dwd_gnd_tbl_corp_change where pack_cod is not null ) c -on a.iqvia_pack_code = c.pack_cod -left join (select distinct corp_cod,corp_des_c from dwd.dwd_gnd_ext_retail_pack_property) d -on coalesce(C.corp_cod,B.corp_cod ) = d.corp_cod -Left join (select distinct right(concat('000000',manu_cod ),6) manu_cod,manu_des,manu_des_c from dwd.dwd_gnd_ext_retail_pack_property) e -On coalesce(C.manu_cod,B.manu_cod ) = e.manu_cod - --- COMMAND ---------- - - ------------------------------获取pack market 的对应关系---------------------------- --- drop table if exists dm.dm_zk_retail_pack_property; --- create table if not exists dm.dm_zk_retail_pack_property --- using delta as -INSERT OVERWRITE table dm.dm_zk_retail_pack_property -SELECT MARKET_PACK_KEY -,iqvia_pack_code iqvia_pack_code -,MAX(pack_des) pack_des -,MAX(stgh_des) stgh_des -,MAX(pack_lch) pack_lch -,MAX(Family_Code) Family_Code -,MAX(Family_Name) Family_Name -,MAX(iqvia_prod_code) iqvia_prod_code -,MAX(prod_des) prod_des -,MAX(prod_des_c) prod_des_c -,MAX(cmps_cod) cmps_cod -,MAX(CMPS_DES) CMPS_DES -,MAX(cmps_des_c) cmps_des_c -,MAX(atc1_cod) atc1_cod -,MAX(atc2_cod) atc2_cod -,MAX(atc3_cod) atc3_cod -,MAX(atc4_cod) atc4_cod -,MAX(APP1_COD) APP1_COD -,MAX(APP2_COD) APP2_COD -,MAX(APP3_COD) APP3_COD -,MAX(BIO_DESC) BIO_DESC -,MAX(gene_orig_desc) gene_orig_desc -,MAX(ETH_OTC_DESC) ETH_OTC_DESC -,MAX(nrdl_desc) nrdl_desc -,MAX(NRDL_ENTRY_DATE) NRDL_ENTRY_DATE -,MAX(edl_desc) edl_desc -,MAX(TCM_DESC) TCM_DESC -,MAX(PAED_DESC) PAED_DESC -,MAX(GQCE_DESC) GQCE_DESC -,MAX(VBP_DESC) VBP_DESC -,MAX(MANU_COD) MANU_COD -,MAX(MANU_DES) MANU_DES -,MAX(MANU_DES_C) MANU_DES_C -,MAX(MNFL_COD) MNFL_COD -,MAX(MNFL_DES) MNFL_DES -,MAX(corp_cod) corp_cod -,MAX(corp_des) corp_des -,MAX(CORP_DES_C) CORP_DES_C -,MAX(BrandType) BrandType -,MAX(market) market -,MAX(KEY_COMPETITOR) KEY_COMPETITOR -,MAX(is_az) is_az -,MAX(AZ_MAIN) AZ_MAIN -,MAX(AZ_Related) AZ_Related -,MAX(atc1_des) atc1_des -,MAX(atc1_des_c) atc1_des_c -,MAX(atc2_des) atc2_des -,MAX(atc2_des_c) atc2_des_c -,MAX(atc3_des) atc3_des -,MAX(atc3_des_c) atc3_des_c -,MAX(atc4_des) atc4_des -,MAX(atc4_des_c) atc4_des_c -,MAX(app1_des) app1_des -,MAX(app1_des_c) app1_des_c -,MAX(app2_des) app2_des -,MAX(app2_des_c) app2_des_c -,MAX(app3_des) app3_des -,MAX(app3_des_c) app3_des_c -,MAX(class) class -,MAX(TA) TA -FROM ( - select distinct - CASE when a.iqvia_pack_code IN ('CVRM_AZ_OTHERS','CVRM_OTHERS') THEN 'CVRM_OTHER Market' - WHEN a.iqvia_pack_code IN ('CV_AZ_OTHERS','CV_OTHERS') THEN 'CV_OTHER Market' - WHEN A.iqvia_pack_code IN ('OTHERS_AZ_TA','OTHERS_TA') THEN 'OTHERS Market' - ELSE a.market - END ||'_'||a.iqvia_pack_code MARKET_PACK_KEY -,a.iqvia_pack_code -,c.pack_des -,c.stgh_des -,c.pack_lch -,'' Family_Code -,'' Family_Name -,c.iqvia_prod_code -,case when c.iqvia_pack_code like '%O%' THEN 'Others' else c.prod_des end prod_des -,case when c.iqvia_pack_code like '%O%' THEN 'Others' else c.prod_des_c end prod_des_c -,c.cmps_cod -,c.CMPS_DES -,c.cmps_des_c -,c.atc1_cod -,c.atc2_cod -,c.atc3_cod -,c.atc4_cod -,c.APP1_COD -,c.APP2_COD -,c.APP3_COD -,c.BIO_DESC -,c.gene_orig_desc -,c.ETH_OTC_DESC -,c.nrdl_desc -,nvl(MOLE.NRDL_Entry_Date,'') AS NRDL_ENTRY_DATE -,c.edl_desc -,c.TCM_DESC -,c.PAED_DESC -,c.GQCE_DESC -,c.VBP_DESC -,a.MANU_COD -,a.MANU_DES -,a.MANU_DES_C -,c.MNFL_COD -,c.MNFL_DES -,CASE WHEN A.iqvia_pack_code LIKE '%AZ%' THEN 'A5Z' else a.CORP_COD END - corp_cod -,CASE WHEN A.iqvia_pack_code LIKE '%AZ%' THEN 'ASTRAZENECA' else case when a.CORP_DES like '% GROUP%' THEN replace(a.CORP_DES ,' GROUP','' ) ELSE a.CORP_DES END END - corp_des -,CASE WHEN A.iqvia_pack_code LIKE '%AZ%' THEN '阿斯利康制药集团' else a.CORP_DES_C END - CORP_DES_C -,'' BrandType -,CASE when a.iqvia_pack_code IN ('CVRM_AZ_OTHERS','CVRM_OTHERS') THEN 'CVRM_OTHER Market' - WHEN a.iqvia_pack_code IN ('CV_AZ_OTHERS','CV_OTHERS') THEN 'CV_OTHER Market' - WHEN A.iqvia_pack_code IN ('OTHERS_AZ_TA','OTHERS_TA') THEN 'OTHERS Market' - ELSE a.market - END market -,t5.KEY_COMPETITOR -,IF(a.corp_des_c in('阿斯利康制药集团') ,'Y','N') is_az -,'' AZ_MAIN -,'' AZ_Related -,c.atc1_des -,c.atc1_des_c -,c.atc2_des -,c.atc2_des_c -,c.atc3_des -,c.atc3_des_c -,c.atc4_des -,c.atc4_des_c -,c.app1_des -,c.app1_des_c -,c.app2_des -,c.app2_des_c -,c.app3_des -,c.app3_des_c --- ,nvl(cla.class,'Others') class -,nvl(t3.class,'Others') class -,case when a.market ='Antacid anti GI swelling agent+PPI Oral' then 'GI' - when a.MARKET ='RD Market' then 'RD' - ELSE - CASE when a.iqvia_pack_code IN ('CVRM_AZ_OTHERS','CVRM_OTHERS') THEN 'CVRM' - WHEN a.iqvia_pack_code IN ('CV_AZ_OTHERS','CV_OTHERS') THEN 'CV' - ELSE t2.ta END - END TA -from tmp.tmp_dm_zk_retail_pack_property a -left join dwd.dwd_gnd_ext_retail_pack_property c on a.product_id = c.product_id -LEFT JOIN dwd.dwd_ims_td_pack_additional_attribute MOLE ON a.iqvia_pack_code = MOLE.Pack_Code -left join dws.dws_ext_retail_td_ta t2 on a.market = t2.market -left join dwd.dwd_gnd_tblclass t3 on a.MARKET = case when t3.market is null then a.market else t3.market end - and nvl(a.iqvia_pack_code,'') = case when t3.pack_code is null then nvl(a.iqvia_pack_code,'') else if( t3.pack_code REGEXP '^[0-9]',right(concat('000000000000',t3.pack_code),12),t3.pack_code) end - and nvl(a.PROD_COD,'') = case when t3.product_code is null then nvl(a.PROD_COD ,'') else right(concat('000000000', t3.product_code),9 ) end - and nvl(a.cmps_cod,'') = case when t3.molecule_code is null then nvl(a.cmps_cod ,'') else right(concat('000000', t3.molecule_code ),6 ) end - and nvl(a.corp_cod,'') = case when t3.Corporation_code is null then nvl(a.corp_cod ,'') else t3.Corporation_code end - and nvl(a.manu_cod,'')=case when t3.Manufacturer_Code is null then nvl(a.manu_cod,'') else t3.Manufacturer_Code end - and nvl(c.atc1_cod,'') = case when t3.ATC1_Code is null then nvl(c.atc1_cod ,'') else t3.ATC1_Code end - and nvl(c.ATC2_COD,'') = case when t3.ATC2_Code is null then nvl(c.ATC2_COD ,'') else t3.ATC2_Code end - and nvl(c.ATC3_COD,'') = case when t3.ATC3_Code is null then nvl(c.ATC3_COD ,'') else t3.ATC3_Code end - and nvl(c.ATC4_COD,'') = case when t3.ATC4_Code is null then nvl(c.ATC4_COD ,'') else t3.ATC4_Code end - and nvl(c.app1_cod,'') = case when t3.NFC1_Code is null then nvl(c.app1_cod ,'') else t3.NFC1_Code end - and nvl(c.APP2_COD,'') = case when t3.NFC2_Code is null then nvl(c.APP2_COD ,'') else t3.NFC2_Code end - and nvl(c.APP3_COD,'') = case when t3.NFC3_Code is null then nvl(c.APP3_COD ,'') else t3.NFC3_Code end - and nvl(c.stgh_des,'') = case when t3.Strength is null then nvl(c.stgh_des ,'') else t3.Strength end -left join (select distinct MARKET,PACK_COD,KEY_COMPETITOR from dm.dm_ims_td_pack_property) t5 -on a.market = t5.MARKET -and a.iqvia_pack_code = t5.PACK_COD -) - -group by MARKET_PACK_KEY -,iqvia_pack_code - - --- COMMAND ---------- - -------------获取pack market ta 对应关系表------------- -insert overwrite table dm.dm_zk_retail_market_property -select distinct -iqvia_pack_code,market,ta -from dm.dm_zk_retail_pack_property - --- COMMAND ---------- - -------------rc 拆分逻辑处理----------- -insert overwrite table dws.dws_ext_rc_ratio -select - a.sub_bu - ,a.mkt - ,a.region_code - ,nvl(b.PROVINCE_CODE,c.PROVINCE_CODE ) PROVINCE_CODE - ,nvl(b.AUDIT_COD,c.PROVINCE_CODE) city_code - ,a.ratio - ,From_utc_timestamp(CURRENT_TIMESTAMP(), 'UTC+8') etl_insert_dt - ,From_utc_timestamp(CURRENT_TIMESTAMP(), 'UTC+8') etl_update_dt - from dwd.dwd_gnd_ext_rc_ratio a - left join dm.dm_ims_td_geo b - on a.city = b.CITY_C - left join (select province_code,province_name from dm.dm_td_geography group by province_name,province_code) c - on a.city = c.province_name - --- COMMAND ---------- - -----------------rc拆分逻辑处理到dm -insert overwrite table dm.dm_ext_rc_ratio -select - sub_bu - ,mkt - ,region_code - ,PROVINCE_CODE - ,city_code - ,ratio - ,From_utc_timestamp(CURRENT_TIMESTAMP(), 'UTC+8') etl_insert_dt - ,From_utc_timestamp(CURRENT_TIMESTAMP(), 'UTC+8') etl_update_dt - from dws.dws_ext_rc_ratio - --- COMMAND ---------- - --- MAGIC %md --- MAGIC ## DTP维度表 - --- COMMAND ---------- - --- -----dtp 维度表处理------------------ --- --第一步: --- --先处理 Extend_Market 和 NOT_IN_FLAG 都为空的数据,代表有明确定义得市场 -insert overwrite table tmp.tmp_zk_retail_dtp_market -select distinct -t1.region_type -,t1.higher_level_region -,t2.market -,if( t1.iqvia_pack_code REGEXP '^[0-9]',right(concat('000000000000',t1.iqvia_pack_code),12),t1.iqvia_pack_code) iqvia_pack_code --right(concat('0000000', t1.iqvia_pack_code ),7) -,right(concat('000000000', t1.iqvia_prod_code ),9) iqvia_prod_code --right(concat('00000', t1.iqvia_prod_code ),5) -,t1.iqvia_notes -,t1.new_pack_flag -,t1.is_exists_chpa -,t1.prescription_nature -,t1.common_name -,t1.dosage_form -,t1.category_name -,t1.product_name -,t1.brand_name -,t1.zk_corp_des -,t1.zk_pack_des -,t1.counting_unit_a -,t1.app1_cod -,t1.app1_des -,t1.app1_des_c -,t1.app2_cod -,t1.app2_des -,t1.app2_des_c -,t1.app3_cod -,t1.app3_des -,t1.app3_des_c -,t1.atc1_cod -,t1.atc1_des -,t1.atc1_des_c -,t1.atc2_cod -,t1.atc2_des -,t1.atc2_des_c -,t1.atc3_cod -,t1.atc3_des -,t1.atc3_des_c -,t1.atc4_cod -,t1.atc4_des -,t1.atc4_des_c -,t1.bio_desc -, right(concat('000000', t1.CMPS_COD ),6 ) cmps_cod -,t1.cmps_des -,t1.cmps_des_c -,t1.corp_cod -,t1.corp_des -,t1.corp_des_c -,t1.edl_desc -,t1.eth_otc_desc -,t1.gene_orig_desc -,t1.gqce_desc -,t1.manu_cod -,t1.manu_des -,t1.manu_des_c -,t1.mnfl_cod -,t1.mnfl_des -,t1.nrdl_desc -,t1.pack_des -,t1.stgh_des -,t1.pack_lch -,t1.paed_desc -,t1.prod_des -,t1.prod_des_c -,t1.tcm_desc -,t1.vbp_desc -,t1.unit -,t1.counting_unit -,t1.dosage_unit -,nvl(MOLE.NRDL_Entry_Date,'') AS NRDL_ENTRY_DATE -,t2.bu,CASE WHEN t2.extend_market_ratio IS NULL THEN '1' ELSE t2.extend_market_ratio END AS Market_Ratio -from dwd.dwd_gnd_ext_dtp_pack_property t1 -LEFT JOIN dwd.dwd_ims_td_pack_additional_attribute MOLE ON t1.iqvia_pack_code = MOLE.Pack_Code -left join (select * from dwd.dwd_gnd_dtp_tblmarket WHERE Extend_Market IS NULL AND ( NOT_IN_FLAG IS NULL or NOT_IN_FLAG = '1' )) t2 --- on t1.cmps_cod=right(concat('000000', Molecule_Code),6 ) -on t1.ATC1_COD = case when t2.ATC1_Code is null then t1.ATC1_COD else t2.ATC1_Code end -and t1.ATC2_COD = case when t2.ATC2_Code is null then t1.ATC2_COD else t2.ATC2_Code end -and t1.ATC3_COD = case when t2.ATC3_Code is null then t1.ATC3_COD else t2.ATC3_Code end -and t1.ATC4_COD = case when t2.ATC4_Code is null then t1.ATC4_COD else t2.ATC4_Code end -and t1.APP1_COD = case when t2.NFC1_Code is null then t1.APP1_COD else t2.NFC1_Code end -and t1.APP2_COD = case when t2.NFC2_Code is null then t1.APP2_COD else t2.NFC2_Code end -and t1.APP3_COD = case when t2.NFC3_Code is null then t1.APP3_COD else t2.NFC3_Code end -and t1.CORP_COD = case when t2.corporation_code is null then t1.CORP_COD else t2.corporation_code end -and t1.MANU_COD = case when t2.Manufacturer_Code is null then t1.MANU_COD else t2.Manufacturer_Code end -and right(concat('000000000', t1.iqvia_prod_code ),9) = case when t2.Product_Code is null then right(concat('000000000', t1.iqvia_prod_code ),9) else right(concat('000000000', t2.Product_Code ),9) end -and if( t1.iqvia_pack_code REGEXP '^[0-9]',right(concat('000000000000',t1.iqvia_pack_code),12),t1.iqvia_pack_code) - = case when t2.Pack_Code is null then if( t1.iqvia_pack_code REGEXP '^[0-9]',right(concat('000000000000',t1.iqvia_pack_code),12),t1.iqvia_pack_code) - else if( t2.Pack_Code REGEXP '^[0-9]',right(concat('000000000000',t2.Pack_Code),12),t2.Pack_Code) end -and t1.STGH_DES = case when t2.Strength is null then t1.STGH_DES else t2.Strength end -and right(concat('000000', t1.CMPS_COD ),6 ) = case when t2.Molecule_Code is null then right(concat('000000', t1.CMPS_COD ),6 ) else right(concat('000000', Molecule_Code),6 ) end -where t2.market is not null -; - - --- COMMAND ---------- - -insert overwrite table tmp.tmp_zk_retail_dtp_market_del -select distinct - t1.region_type -,t1.higher_level_region -,t2.market -,if( t1.iqvia_pack_code REGEXP '^[0-9]',right(concat('000000000000',t1.iqvia_pack_code),12),t1.iqvia_pack_code) iqvia_pack_code -, right(concat('000000000', t1.iqvia_prod_code ),9) iqvia_prod_code -,t1.iqvia_notes -,t1.new_pack_flag -,t1.is_exists_chpa -,t1.prescription_nature -,t1.common_name -,t1.dosage_form -,t1.category_name -,t1.product_name -,t1.brand_name -,t1.zk_corp_des -,t1.zk_pack_des -,t1.counting_unit_a -,t1.app1_cod -,t1.app1_des -,t1.app1_des_c -,t1.app2_cod -,t1.app2_des -,t1.app2_des_c -,t1.app3_cod -,t1.app3_des -,t1.app3_des_c -,t1.atc1_cod -,t1.atc1_des -,t1.atc1_des_c -,t1.atc2_cod -,t1.atc2_des -,t1.atc2_des_c -,t1.atc3_cod -,t1.atc3_des -,t1.atc3_des_c -,t1.atc4_cod -,t1.atc4_des -,t1.atc4_des_c -,t1.bio_desc -, right(concat('000000', t1.CMPS_COD ),6 ) cmps_cod -,t1.cmps_des -,t1.cmps_des_c -,t1.corp_cod -,t1.corp_des -,t1.corp_des_c -,t1.edl_desc -,t1.eth_otc_desc -,t1.gene_orig_desc -,t1.gqce_desc -,t1.manu_cod -,t1.manu_des -,t1.manu_des_c -,t1.mnfl_cod -,t1.mnfl_des -,t1.nrdl_desc -,t1.pack_des -,t1.stgh_des -,t1.pack_lch -,t1.paed_desc -,t1.prod_des -,t1.prod_des_c -,t1.tcm_desc -,t1.vbp_desc -,t1.unit -,t1.counting_unit -,t1.dosage_unit -,nvl(MOLE.NRDL_Entry_Date,'') AS NRDL_ENTRY_DATE -,t2.bu,CASE WHEN t2.extend_market_ratio IS NULL THEN '1' ELSE t2.extend_market_ratio END AS Market_Ratio - from dwd.dwd_gnd_ext_dtp_pack_property t1 -LEFT JOIN dwd.dwd_ims_td_pack_additional_attribute MOLE ON t1.iqvia_pack_code = MOLE.Pack_Code -left join (select * from dwd.dwd_gnd_dtp_tblmarket WHERE Extend_Market IS NULL AND NOT_IN_FLAG = '0' ) t2 --- on t1.cmps_cod=right(concat('000000', Molecule_Code),6 ) - on t1.ATC1_COD = case when t2.ATC1_Code is null then t1.ATC1_COD else t2.ATC1_Code end - and t1.ATC2_COD = case when t2.ATC2_Code is null then t1.ATC2_COD else t2.ATC2_Code end - and t1.ATC3_COD = case when t2.ATC3_Code is null then t1.ATC3_COD else t2.ATC3_Code end - and t1.ATC4_COD = case when t2.ATC4_Code is null then t1.ATC4_COD else t2.ATC4_Code end - and t1.APP1_COD = case when t2.NFC1_Code is null then t1.APP1_COD else t2.NFC1_Code end - and t1.APP2_COD = case when t2.NFC2_Code is null then t1.APP2_COD else t2.NFC2_Code end - and t1.APP3_COD = case when t2.NFC3_Code is null then t1.APP3_COD else t2.NFC3_Code end - and t1.CORP_COD = case when t2.corporation_code is null then t1.CORP_COD else t2.corporation_code end - and t1.MANU_COD = case when t2.Manufacturer_Code is null then t1.MANU_COD else t2.Manufacturer_Code end -and right(concat('000000000', t1.iqvia_prod_code ),9) = case when t2.Product_Code is null then right(concat('000000000', t1.iqvia_prod_code ),9) else right(concat('000000000', t2.Product_Code ),9) end -and if( t1.iqvia_pack_code REGEXP '^[0-9]',right(concat('000000000000',t1.iqvia_pack_code),12),t1.iqvia_pack_code) - = case when t2.Pack_Code is null then if( t1.iqvia_pack_code REGEXP '^[0-9]',right(concat('000000000000',t1.iqvia_pack_code),12),t1.iqvia_pack_code) - else if( t2.Pack_Code REGEXP '^[0-9]',right(concat('000000000000',t2.Pack_Code),12),t2.Pack_Code) end - and t1.STGH_DES = case when t2.Strength is null then t1.STGH_DES else t2.Strength end - and right(concat('000000', t1.CMPS_COD ),6 ) = case when t2.Molecule_Code is null then right(concat('000000', t1.CMPS_COD ),6 ) else right(concat('000000', Molecule_Code),6 ) end - where t2.market is not null - --- COMMAND ---------- - - --- --!!!注意此段是反选的规则,故执行的是从已经定义好的TempMKT中删除数据 --- --需要看TempMKT的字段结构,没有值的字段,在Value里面放个空值 -MERGE INTO tmp.tmp_zk_retail_dtp_market AS t1 -USING tmp.tmp_zk_retail_dtp_market_del AS t2 - on t1.ATC1_COD = t2.ATC1_COD - and t1.ATC2_COD = t2.ATC2_COD - and t1.ATC3_COD = t2.ATC3_COD - and t1.ATC4_COD = t2.ATC4_COD - and t1.APP1_COD = t2.APP1_COD - and t1.APP2_COD = t2.APP2_COD - and t1.APP3_COD = t2.APP3_COD - and t1.CORP_COD = t2.CORP_COD - and t1.MANU_COD = t2.MANU_COD - and t1.iqvia_prod_code = t2.iqvia_prod_code - and t1.iqvia_pack_code = t2.iqvia_pack_code - and t1.STGH_DES = t2.STGH_DES - and t1.CMPS_COD = t2.CMPS_COD - and t1.market = t2.market -WHEN MATCHED THEN DELETE -; - --- COMMAND ---------- - -------------------------将产品对应的公司重新归属 -insert overwrite table tmp.tmp_zk_retail_dtp_market_corp -select -A.region_type -,A.higher_level_region -,A.market -,A.iqvia_pack_code -,A.iqvia_prod_code -,A.iqvia_notes -,A.new_pack_flag -,A.is_exists_chpa -,A.prescription_nature -,A.common_name -,A.dosage_form -,A.category_name -,A.product_name -,A.brand_name -,A.zk_corp_des -,A.zk_pack_des -,A.counting_unit_a -,A.app1_cod -,A.app1_des -,A.app1_des_c -,A.app2_cod -,A.app2_des -,A.app2_des_c -,A.app3_cod -,A.app3_des -,A.app3_des_c -,A.atc1_cod -,A.atc1_des -,A.atc1_des_c -,A.atc2_cod -,A.atc2_des -,A.atc2_des_c -,A.atc3_cod -,A.atc3_des -,A.atc3_des_c -,A.atc4_cod -,A.atc4_des -,A.atc4_des_c -,A.bio_desc -,A.cmps_cod -,A.cmps_des -,A.cmps_des_c - ,COALESCE(c.corp_cod,b.corp_cod,a.corp_cod) corp_cod - ,COALESCE(c.corp_des,b.corp_des,a.corp_des) corp_des - ,COALESCE(d.corp_des_c,a.corp_des_c ) corp_des_c -,A.edl_desc -,A.eth_otc_desc -,A.gene_orig_desc -,A.gqce_desc - ,COALESCE(c.manu_cod,b.manu_cod,a.manu_cod) manu_cod - ,COALESCE(c.manu_des,b.manu_des,a.manu_des) manu_des - ,COALESCE(e.manu_des_c,a.manu_des_c) manu_des_c -,A.mnfl_cod -,A.mnfl_des -,A.nrdl_desc -,A.pack_des -,A.stgh_des -,A.pack_lch -,A.paed_desc -,A.prod_des -,A.prod_des_c -,A.tcm_desc -,A.vbp_desc -,A.unit -,A.counting_unit -,A.dosage_unit -,A.NRDL_ENTRY_DATE -,A.bu -,A.Market_Ratio -from tmp.tmp_zk_retail_dtp_market a -left join (select DISTINCT right(concat('000000000',prod_cod ),9) prod_cod,corp_cod,corp_des, right(concat('000000',manu_cod ),6) manu_cod,manu_des from dwd.dwd_gnd_tbl_corp_change where pack_cod is null ) b -on right(concat('000000000',A.iqvia_prod_code ),9)= b.prod_cod -left join (select DISTINCT if( pack_cod REGEXP '^[0-9]',right(concat('000000000000',pack_cod),12),pack_cod) pack_cod ,corp_cod,corp_des, right(concat('000000',manu_cod ),6) manu_cod,manu_des from dwd.dwd_gnd_tbl_corp_change where pack_cod is not null ) c -on a.iqvia_pack_code = c.pack_cod -left join (select distinct corp_cod,corp_des_c from dwd.dwd_gnd_ext_dtp_pack_property) d -on coalesce(C.corp_cod,B.corp_cod ) = d.corp_cod -Left join (select distinct right(concat('000000',manu_cod ),6) manu_cod,manu_des,manu_des_c from dwd.dwd_gnd_ext_dtp_pack_property) e -On coalesce(C.manu_cod,B.manu_cod ) = e.manu_cod - --- COMMAND ---------- - --- MAGIC %md --- MAGIC ## DTP 数据 - --- COMMAND ---------- - -/* -修改日期:20250515 -修改人:chenwu -修改内容:新增 Anti-HER2 mBC 直取逻辑 -*/ -create or replace temporary view dtp_rawdata_Anti -as -with all_data as ( - select - left(dtp.year, 4) year, - concat(left(dtp.year, 4), 'Q', cal.quarter) yq, - cast(dtp.`time` as int) yyyymm, - pack.iqvia_pack_code, - pack.corp_cod, - geo.geo_key, - cast(dtp.counting_unit as double) count_unit, - cast(dtp.average_price as double) average_price, - cast(dtp.sales_amount as double) sales_value, - cast(dtp.sales_volume as double) sales_unit, - cast(dtp.counting_units_obversion as double) counting_units_obversion, - cast(dtp.sales_volume * (pack.counting_unit / pack.unit) as double) counting_unit - ,target_points market --使用dtp pack中的靶向点 字段来判断是否是需要拆分的市场 - ,pack.product_name brand_name - from dwd.dwd_gnd_ext_retail_dtp_datasource dtp - left join ( - select - DISTINCT brand_name, - iqvia_pack_code, - corp_cod, - zk_pack_des, - product_name, - counting_unit, - unit - from - tmp.tmp_zk_retail_dtp_market_corp - ) pack on dtp.pack_des = pack.zk_pack_des - AND nvl(dtp.product_name, '') = nvl(pack.product_name, '') - and dtp.brand_name = pack.brand_name - left join dm.dm_zk_retail_geo geo on dtp.region = geo.province_name - left join ( select distinct yyyymm,quarter from dm.dm_td_calendar ) cal on cal.yyyymm = dtp.`time` - where dtp.target_points = 'Anti-HER2 mBC' -) - ---全国的数据 -,quanguo_data as ( - select - * - from all_data - where geo_key = 'CHT' -) ---省份数据 -,province_data as ( - select - * - from all_data - where geo_key <> 'CHT' -) -,province_sum_data as ( - select - A.year - ,A.yq - ,A.yyyymm - ,A.iqvia_pack_code - ,A.corp_cod - ,max(A.count_unit) count_unit - ,max(A.average_price) average_price - ,sum(A.sales_value) as sales_value - ,sum(A.sales_unit) as sales_unit - ,sum(A.counting_units_obversion) as counting_units_obversion - ,sum(A.counting_unit) as counting_unit - from province_data A - group by 1,2,3,4,5 -) --- select * from province_data ---倒减ROC部分 = 全国 - 省份 -,roc_data as ( - select - A.year - ,A.yq - ,A.yyyymm - ,A.iqvia_pack_code - ,A.corp_cod - ,'ROC' geo_key - ,A.count_unit - ,if(B.average_price is not null, 2*A.average_price- B.average_price,A.average_price) as average_price - ,A.sales_value - B.sales_value as sales_value - ,A.sales_unit - B.sales_unit as sales_unit - ,A.counting_units_obversion -B.counting_units_obversion AS counting_units_obversion - ,A.counting_unit - B.counting_unit AS counting_unit - from quanguo_data A - left join province_sum_data B on A.yyyymm = B.yyyymm and A.iqvia_pack_code = B.iqvia_pack_code and A.corp_cod = B.corp_cod -) - -select -A.year -,A.yq -,A.yyyymm -,A.iqvia_pack_code -,A.corp_cod -,A.geo_key -,A.count_unit -,A.average_price -,A.sales_value as sales_value -,A.sales_unit as sales_unit -,A.counting_units_obversion as counting_units_obversion -,A.counting_unit as counting_unit -,1 pack_flag -,1 brand_flag -from province_data A -union all -select -A.year -,A.yq -,A.yyyymm -,A.iqvia_pack_code -,A.corp_cod -,A.geo_key -,A.count_unit -,A.average_price -,A.sales_value as sales_value -,A.sales_unit as sales_unit -,A.counting_units_obversion as counting_units_obversion -,A.counting_unit as counting_unit -,1 pack_flag -,1 brand_flag -from roc_data A - --- COMMAND ---------- - ----------------------------------------------------------- -/* -修改时间:20250311 -修改人:chenwu -修改内容:新增手动拆分DTP逻辑修改 -*/ ----------------------------------------------------------- -create or replace table tmp.tmp_zk_retail_brandTotal_dtp -with dtp_egfr_tki_market(--brand中 EGFR TKI Market 的量 - select - YYYYMM - ,market - ,province_city - ,cast(sales_value * 1000000 as decimal(30,10)) AS sales_val - ,cast(sales_volume * 1000000 as decimal(30,10)) AS sales_vol - ,'EGFR TKI Market' marketmapping - ,'--' cmps_des_c - ,'--' prod_des_c - from dwd.dwd_gnd_ext_dtp_zk_brand - where type = '品类' --and TA = 'ONC' - and ranked_by = 'value' - and market = 'EGFR TKI' -) - -,dtp_brand(--brand数据中 brand的量 - select - YYYYMM - ,market - ,province_city - ,cast(sales_value * 1000000 as decimal(30,10)) AS sales_val - ,cast(sales_volume * 1000000 as decimal(30,10)) AS sales_vol - ,'EGFR TKI Market' marketmapping - ,case when zk_brand_category = '泰瑞沙' then '奥希替尼' - when zk_brand_category = '凯美纳' then '埃克替尼' - when zk_brand_category = '阿美乐' then '阿美替尼' - when zk_brand_category = '艾弗沙' then '伏美替尼' - else 'Others_cmps_EGFR TKI Market' end - as cmps_des_c - ,zk_brand_category as prod_des_c - - from dwd.dwd_gnd_ext_dtp_zk_brand - where type = '品牌' - and ranked_by = 'value' - and zk_brand_category in ('泰瑞沙','凯美纳','阿美乐','艾弗沙') -) - -,other_dtp_cmps(--其他的 - select - A.YYYYMM - ,A.market - ,A.province_city - ,A.sales_val - B.sales_val as sales_val - ,A.sales_vol - B.sales_vol as sales_vol - ,'other_EGFR TKI Market' marketmapping - ,concat('Others_cmps_',A.market ) as cmps_des_c - ,'Others_brand' as prod_des_c -from dtp_egfr_tki_market A -left join ( - select - YYYYMM - ,province_city - ,sum(sales_val) as sales_val - ,sum(sales_vol) as sales_vol - from dtp_brand group by 1,2 - ) B - ON A.YYYYMM = B.YYYYMM and A.province_city=B.province_city -) - ---合并所有 -,dtp_all as ( - select * from dtp_brand - union all - select * from other_dtp_cmps -) - ---计算ROC部分 -,dtp_roc( - select - A.YYYYMM - ,A.market - ,'Other Low Tiers' province_city - ,A.marketmapping - ,A.cmps_des_c - ,A.prod_des_c - ,A.sales_val-B.sales_val as sales_val - ,A.sales_vol-B.sales_vol as sales_vol - from dtp_all A - left join ( - select - YYYYMM - ,market - ,marketmapping - ,cmps_des_c - ,prod_des_c - ,sum(sales_val) sales_val - ,sum(sales_vol) sales_vol - from dtp_all - where province_city<>'全国' - group by YYYYMM, market, marketmapping, cmps_des_c, prod_des_c - ) B on A.YYYYMM=B.YYYYMM - and A.market=A.market - and A.marketmapping=B.marketmapping - and A.cmps_des_c=B.cmps_des_c - and A.prod_des_c=B.prod_des_c - where A.province_city = '全国' - - union all - --非全国部分 - select - YYYYMM - ,market - ,province_city - ,marketmapping - ,cmps_des_c - ,prod_des_c - ,sales_val - ,sales_vol - from dtp_all - where province_city <> '全国' -) -,default_rate as (select cast(1.0/count( distinct province_city ) as decimal(38,15)) as d_rate from dtp_roc ) -,geo as (select distinct geo_Key ,province_name from dm.dm_zk_retail_geo) -select - YYYYMM - ,market - ,geo.geo_Key - -- ,province_city - ,marketmapping - ,cmps_des_c - ,prod_des_c - ,sales_val - ,sales_vol - ,nvl(cast(sales_val as decimal(38,15)) / sum(sales_val) over(PARTITION BY YYYYMM,market,marketmapping,cmps_des_c,prod_des_c),default_rate.d_rate ) valRate - ,nvl(cast(sales_vol as decimal(38,15)) / sum(sales_vol) over(PARTITION BY YYYYMM,market,marketmapping,cmps_des_c,prod_des_c),default_rate.d_rate ) volRate -from dtp_roc -left join default_rate --取默认比率 -left join geo on geo.province_name = dtp_roc.province_city - - --- COMMAND ---------- - ----new dtp pack data -/* -修改人:chenwu -修改时间:20250415 -修改内容:新增市场时,可能出现 一个pack对应多个市场的情况,所以直接用 tmp.tmp_zk_retail_dtp_market_corp 取pack和market的对应关系会导致数据重复, -故使用dtp pack中的[靶向点]字段来判断是否是需要拆分的市场。 -*/ -create or replace temporary view new_dtp_pack_data -as -with dtp_pack_old (--原有逻辑 -select - left(dtp.year, 4) year, - concat(left(dtp.year, 4), 'Q', cal.quarter) yq, - cast(dtp.`time` as int) yyyymm, - pack.iqvia_pack_code, - pack.corp_cod, - geo.geo_key, - cast(dtp.counting_unit as double) count_unit, - cast(dtp.average_price as double) average_price, - cast(dtp.sales_amount as double) sales_value, - cast(dtp.sales_volume as double) sales_unit, - cast(dtp.counting_units_obversion as double) counting_units_obversion, - cast(dtp.sales_volume * (pack.counting_unit / pack.unit) as double) counting_unit - ,target_points market --使用dtp pack中的靶向点 字段来判断是否是需要拆分的市场 - ,pack.product_name brand_name -from - dwd.dwd_gnd_ext_retail_dtp_datasource dtp - left join ( - select - DISTINCT brand_name, - iqvia_pack_code, - corp_cod, - zk_pack_des, - product_name, - counting_unit, - unit - from - tmp.tmp_zk_retail_dtp_market_corp - ) pack on dtp.pack_des = pack.zk_pack_des - AND nvl(dtp.product_name, '') = nvl(pack.product_name, '') - and dtp.brand_name = pack.brand_name - left join dm.dm_zk_retail_geo geo on dtp.region = geo.province_name - left join ( select distinct yyyymm,quarter from dm.dm_td_calendar ) cal on cal.yyyymm = dtp.`time` - where dtp.target_points <> 'Anti-HER2 mBC' -) - -select -A.year -,A.yq -,A.yyyymm -,A.iqvia_pack_code -,A.corp_cod -,Case when B.YYYYMM IS NULL and C.YYYYMM IS NULL then a.geo_key - when B.YYYYMM IS NULL THEN C.geo_key ELSE B.geo_key end as geo_key -,A.count_unit -,A.average_price -,Case when B.YYYYMM IS NULL and C.YYYYMM IS NULL then 1 - when B.YYYYMM IS NULL THEN C.valRate ELSE B.valRate end * A.sales_value as sales_value -,Case when B.YYYYMM IS NULL and C.YYYYMM IS NULL then 1 - when B.YYYYMM IS NULL THEN C.volRate ELSE B.volRate end * A.sales_unit as sales_unit -,Case when B.YYYYMM IS NULL and C.YYYYMM IS NULL then 1 - when B.YYYYMM IS NULL THEN C.volRate ELSE B.volRate end * A.counting_units_obversion as counting_units_obversion -,Case when B.YYYYMM IS NULL and C.YYYYMM IS NULL then 1 - when B.YYYYMM IS NULL THEN C.volRate ELSE B.volRate end * A.counting_unit as counting_unit --- ,a.market -,1 pack_flag -,Case when B.YYYYMM IS NULL and C.YYYYMM IS NULL then 1 - when B.YYYYMM IS NULL THEN 2 else 1 end as brand_flag --如果 能够匹配上 brand的比例则 1,否则2 -from dtp_pack_old A -left join tmp.tmp_zk_retail_brandTotal_dtp B - on A.brand_name = B.prod_des_c and A.yyyymm = B.yyyymm -left join tmp.tmp_zk_retail_brandTotal_dtp C - on B.YYYYMM IS NULL AND C.prod_des_c = 'Others_brand' and A.yyyymm = C.yyyymm -where a.market = 'EGFR TKI' ---not EGFR TKI Market -union all -select -A.year -,A.yq -,A.yyyymm -,A.iqvia_pack_code -,A.corp_cod -,A.geo_key -,A.count_unit -,A.average_price -,A.sales_value as sales_value -,A.sales_unit as sales_unit -,A.counting_units_obversion as counting_units_obversion -,A.counting_unit as counting_unit --- ,a.market -,1 pack_flag -,2 brand_flag -from dtp_pack_old A -where a.market <> 'EGFR TKI' - ---有省份数据的pack数据 -UNION ALL -SELECT -A.year -,A.yq -,A.yyyymm -,A.iqvia_pack_code -,A.corp_cod -,A.geo_key -,A.count_unit -,A.average_price -,A.sales_value -,A.sales_unit -,A.counting_units_obversion -,A.counting_unit -,1 pack_flag -,1 brand_flag -FROM dtp_rawdata_Anti A - --- COMMAND ---------- - -insert overwrite table dws.dws_retail_dtp_sales -with pack_data as ( - --- 获取 dtp 底表数据 并进行格式转换---- - select * from new_dtp_pack_data -) -,AZ AS ( -SELECT -B.YQ -,A.yyyymm -,A.CORP_COD -,'DTP_AZ_OTHERS' iqvia_pack_code -,A.sales_amount -AZ_SALE sales_value -FROM (select cast(top_corp.sales_quarter as int ) yyyymm - ,top_corp.corp_name,top_corp.sales_amount *1000000.0 sales_amount ,pack.CORP_COD - from dwd.dwd_gnd_ext_retail_dtp_top_copd top_corp - left join (select distinct ZK_Corp_C,CORP_COD from dwd.dwd_inc_gnd_retail_b2c_label_total ) pack on replace(top_corp.corp_name,'-','')=pack.ZK_Corp_C - where pack.CORP_COD='A5Z') A - left join (SELECT YQ,yyyymm , CORP_COD ,SUM(sales_value) AZ_SALE FROM pack_data WHERE corp_cod ='A5Z' group by corp_cod,yyyymm,YQ) B ON A.CORP_COD=B.CORP_COD AND A.yyyymm=B.yyyymm -) -,total_dtp as ( - --获取total 数据-- -SELECT - dtp_name - ,sales_quarter - ,sales_amount*1000000.0 as sales_amount -FROM dwd.dwd_gnd_ext_retail_dtp_overall_market -) -select - year - ,yq - ,yyyymm - ,iqvia_pack_code - ,geo_key - ,count_unit - ,average_price - ,sales_value - ,sales_unit - ,counting_units_obversion - ,counting_unit - ,pack_flag - ,brand_flag -from pack_data -union all -select - year - ,yq - ,yyyymm - ,'DTP_OTHERS' iqvia_pack_code - ,'CHT' geo_key --赋给全国 - ,0 counting_unit - ,0 average_price - ,total_dtp.sales_amount - pack_data.sales_value sales_value - ,0 sales_volume - ,0 counting_units_obversion - ,0 - ,0 - ,0 -from ( ---修改人:chenwu,修改时间:20250415,修改内容:dtp_overall_market中没有geo信息,故给全国,去除geo_key的group by信息,并修改关联键 -SELECT year, yq,yyyymm,SUM(sales_value) sales_value -FROM ( select year,yq,yyyymm,geo_key,sum(sales_value) sales_value from pack_data GROUP BY 1,2,3,4 - UNION ALL - SELECT left(YYYYMM,4 ),YQ,YYYYMM,'CHT' ,sales_value FROM AZ ) -GROUP BY yq,yyyymm ,year - ) pack_data -left join total_dtp on pack_data.yyyymm=total_dtp.sales_quarter -UNION ALL -SELECT -left(yyyymm,4 ) ,YQ,yyyymm - ,iqvia_pack_code - ,'CHT' geo_key - ,0 count_unit - ,0 average_price - ,sales_value - ,0 sales_unit - ,0 counting_units_obversion - ,0 counting_unit - ,0 pack_flag - ,0 brand_flag -FROM AZ - - - --- COMMAND ---------- - --- dtp 数据获取本同期数据-- -insert overwrite table dm.dm_zk_retail_dtp_sales -select - year - ,yq - ,yyyymm - ,iqvia_pack_code - ,CASE WHEN geo_key ='CHT' then 'ROC' else geo_key end as AUDIT_COD - --- 全国写死为 ROC - -- ,'ROC' AUDIT_COD - ,sum(sales_value) sales_value - ,sum(sales_unit) sales_unit - ,sum(counting_unit) counting_unit - ,sum(sales_value_ly) sales_value_ly - ,sum(sales_unit_ly) sales_unit_ly - ,sum(counting_unit_ly) counting_unit_ly - ,pack_flag - ,brand_flag - from ( - select - year - ,yq - ,yyyymm - ,iqvia_pack_code - ,geo_key - ,sales_value - ,sales_unit - ,counting_unit counting_unit - ,0 sales_value_ly - ,0 sales_unit_ly - ,0 counting_unit_ly - ,brand_flag - ,pack_flag - from dws.dws_retail_dtp_sales - union all - select - cast(year+1 as int ) year - ,concat(cast(left(yq,4)+1 as int ),right(yq,2)) yq - ,cast(yyyymm+100 as int ) yyyymm - ,iqvia_pack_code - ,geo_key - ,0 sales_value - ,0 sales_unit - ,0 counting_unit - ,sales_value sales_value_ly - ,sales_unit sales_unit_ly - ,counting_unit counting_unit_ly - ,brand_flag - ,pack_flag - from dws.dws_retail_dtp_sales - where yyyymm +100 <= (select max(yyyymm) from dws.dws_retail_dtp_sales) - ) - group by 1,2,3,4,5,12,13 - - --- COMMAND ---------- - --- dtp 部分生成dws -insert overwrite table dws.dws_zk_retail_dtp_market -select distinct t1.* -from tmp.tmp_zk_retail_dtp_market_corp t1 -union -select - '' region_type -,'' higher_level_region -,'DTP_OTHER Market' market -,iqvia_pack_code -,'' iqvia_prod_code -,'' iqvia_notes -,'' new_pack_flag -,'' is_exists_chpa -,'' prescription_nature -,'' common_name -,'' dosage_form -,'' category_name -,'' product_name -,'' brand_name -,'' zk_corp_des -,'' zk_pack_des -,'' counting_unit_a -,'' 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 -,'' cmps_cod -,'' cmps_des -,'' cmps_des_c -,CASE WHEN t1.iqvia_pack_code LIKE '%AZ%' THEN 'A5Z' ELSE '' END corp_cod -,CASE WHEN t1.iqvia_pack_code LIKE '%AZ%' THEN 'ASTRAZENECA' ELSE '' END corp_des -,CASE WHEN t1.iqvia_pack_code LIKE '%AZ%' THEN '阿斯利康制药集团' ELSE '' END 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 -,null NRDL_ENTRY_DATE -,null -,'1' Market_Ratio -from dws.dws_retail_dtp_sales t1 -where iqvia_pack_code LIKE '%OTHERS' - --- COMMAND ---------- - --- dtp 部分生成 dm -------------获取对应class 及其他维度------- -insert overwrite table dm.dm_zk_retail_dtp_pack_property -select distinct - A.market ||'_'|| A.iqvia_pack_code MARKET_PACK_KEY -,A.iqvia_pack_code -,A.pack_des -,A.stgh_des -,A.pack_lch -,'' Family_cod -,'' Family_Name -,A.iqvia_prod_code PROD_COD -,A.prod_des -,A.prod_des_c -,A.cmps_cod -,A.cmps_des -,A.cmps_des_c -,A.atc1_cod -,A.atc2_cod -,A.atc3_cod -,A.atc4_cod -,A.app1_cod -,A.app2_cod -,A.app3_cod -,A.BIO_DESC -,A.gene_orig_desc -,A.eth_otc_desc -,A.nrdl_desc -,A.NRDL_ENTRY_DATE -,A.edl_desc -,A.TCM_DESC -,A.PAED_DESC -,A.GQCE_DESC -,A.VBP_DESC -,A.MANU_COD -,A.MANU_DES -,A.MANU_DES_C -,A.MNFL_COD -,A.MNFL_DES -,A.CORP_COD -,CASE WHEN A.corp_des LIKE '% GROUP%' THEN replace(A.corp_des,' GROUP','' ) ELSE A.corp_des END corp_des -,CORP_DES_C -,'' BrandType -,A.MARKET -,t5.KEY_COMPETITOR -,CASE WHEN CORP_COD ='A5Z' THEN 'Y' ELSE 'N' END IS_AZ -,'' AZ_MAIN -,case when dmt.TA is null then 'Others MKT' else 'AZ Related MKT' end as 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 -,ifnull(t3.class,'Others') as Class -,from_utc_timestamp(current_timestamp(),'UTC+8') etl_insert_dt -,from_utc_timestamp(current_timestamp(),'UTC+8') etl_update_dt -from dws.dws_zk_retail_dtp_market A -left join dwd.dwd_gnd_ims_tblmarket_ta_map dmt on dmt.Market = A.Market -left join dwd.dwd_gnd_tblclass t3 - on A.market = ifnull(t3.market , A.market ) - and A.iqvia_pack_code = ifnull(if( t3.pack_code REGEXP '^[0-9]',right(concat('000000000000',t3.pack_code),12),t3.pack_code), A.iqvia_pack_code) - and A.iqvia_prod_code = ifnull(right(concat('000000000', t3.product_code),9 ) , A.iqvia_prod_code) - and A.cmps_cod = ifnull(right(concat('000000',t3.molecule_code ), 6) , A.cmps_cod) - and A.corp_cod = ifnull(t3.Corporation_code , A.corp_cod) - and A.manu_cod = ifnull(t3.Manufacturer_Code , A.manu_cod) - and A.ATC1_COD = ifnull(t3.ATC1_Code , A.ATC1_COD) - and A.ATC2_COD = ifnull(t3.ATC2_Code , A.ATC2_COD) - and A.ATC3_COD = ifnull(t3.ATC3_Code , A.ATC3_COD) - and A.ATC4_COD = ifnull(t3.ATC4_Code , A.ATC4_COD) - and A.APP1_COD = ifnull(t3.NFC1_Code , A.APP1_COD) - and A.APP2_COD = ifnull(t3.NFC2_Code , A.APP2_COD) - and A.APP3_COD = ifnull(t3.NFC3_Code , A.APP3_COD) - and A.STGH_DES = ifnull(t3.Strength , A.STGH_DES) -left join (select distinct MARKET,PACK_COD,KEY_COMPETITOR from dm.dm_ims_td_pack_property) t5 -on A.market = t5.MARKET -and A.iqvia_pack_code = t5.PACK_COD - - --- COMMAND ---------- - --- MAGIC %md --- MAGIC ## 其他 - --- COMMAND ---------- - -------------------------将品牌数据进行处理,获取同期值(有挺多冗余,但懒得改了)-------------------------------------- -insert overwrite table tmp.tmp_zk_retail_nataional_brand_union -select distinct - bq.brand_cat_type - ,bq.TA - ,bq.market market - ,bq.zk_brand_category zk_brand - -- ,IQVIA_PROD_CODE - ,coalesce(b.iqvia_pack_code,c.iqvia_pack_code,d.iqvia_pack_code ) iqvia_pack_code - ,coalesce(b.corp_cod,c.corp_cod,d.corp_cod ) corp_cod - ,t2.geo_key - ,bq.province_city - ,bq.YYYYMM - ,bq.year - ,bq.quarter - ,bq.zk_common_name - ,bq.zk_manu_des - ,bq.rc_name_en - ,bq.ytd - ,bq.yq - ,BQ.sales_val - ,bq.sales_vol - ,bq.price - ,bq.num_dist_rate - ,bq.weig_dist_rate - ,bq.val_share - ,bq.vol_share - ,tq.sales_val sales_val_ly - ,tq.sales_vol sales_vol_ly - ,tq.price price_ly - ,tq.num_dist_rate num_dist_rate_ly - ,tq.weig_dist_rate weig_dist_rate_ly - ,tq.val_share val_share_ly - ,tq.vol_share vol_share_ly - ,bq.key_brand_ytd - ,bq.key_brand_rank_ytd - ,bq.top_brand_ytd - ,bq.top_brand_ms_ytd - ,bq.top_brand_inc_ms_ytd - ,bq.top_brand_gr_ytd - ,bq.key_brand_qtd - ,bq.key_brand_rank_qtd - ,bq.top_brand_qtd - ,bq.top_brand_ms_qtd - ,bq.top_brand_inc_ms_qtd - ,bq.top_brand_gr_qtd - ,bq.ranked_by - ,kpi.key_brand_ytd_ly - ,kpi.key_brand_rank_ytd_ly - ,kpi.top_brand_ytd_ly - ,kpi.top_brand_ms_ytd_ly - ,kpi.top_brand_inc_ms_ytd_ly - ,kpi.top_brand_gr_ytd_ly - ,kpi.key_brand_qtd_ly - ,kpi.key_brand_rank_qtd_ly - ,kpi.top_brand_qtd_ly - ,kpi.top_brand_ms_qtd_ly - ,kpi.top_brand_inc_ms_qtd_ly - ,kpi.top_brand_gr_qtd_ly -from dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all bq -left join dm.dm_zk_retail_geo t2 on bq.province_city = t2.province_city -left join (select distinct ZK_Prod_C,PROD_DES_C from dwd.dwd_inc_gnd_retail_b2c_label_total) t3 on zk_brand_category = t3.ZK_Prod_C -left join dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all tq -on bq.market =tq.market and bq.zk_brand_category =tq.zk_brand_category - and bq.YYYYMM = cast(tq.YYYYMM + 100 as int ) and bq.zk_common_name = tq.zk_common_name - and bq.zk_manu_des = tq.zk_manu_des and bq.province_city =tq.province_city - and bq.ranked_by = tq.ranked_by - and bq.brand_cat_type = tq.brand_cat_type - and tq.brand_cat_type ='品牌' -left join ( - select distinct - left(ytd,3) || cast(substr(ytd,4,2)+1 as int) || right( ytd,2 ) ytd - ,market - ,province_city - ,key_brand_ytd key_brand_ytd_ly - ,key_brand_rank_ytd key_brand_rank_ytd_ly - ,top_brand_ytd top_brand_ytd_ly - ,top_brand_ms_ytd top_brand_ms_ytd_ly - ,top_brand_inc_ms_ytd top_brand_inc_ms_ytd_ly - ,top_brand_gr_ytd top_brand_gr_ytd_ly - ,key_brand_qtd key_brand_qtd_ly - ,key_brand_rank_qtd key_brand_rank_qtd_ly - ,top_brand_qtd top_brand_qtd_ly - ,top_brand_ms_qtd top_brand_ms_qtd_ly - ,top_brand_inc_ms_qtd top_brand_inc_ms_qtd_ly - ,top_brand_gr_qtd top_brand_gr_qtd_ly - ,ranked_by - from dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all - where brand_cat_type='品类' and left(ytd,3) || cast(substr(ytd,4,2)+1 as int) || right( ytd,2 ) <= (select max(ytd) from dwd.dwd_inc_gnd_ext_retail_nataional_brand_union_all where brand_cat_type='品类') -) kpi on bq.market = kpi.market and bq.ytd=kpi.ytd and bq.province_city =kpi.province_city - and bq.ranked_by = tq.ranked_by -left join (select max(iqvia_pack_code) iqvia_pack_code,prod_des_c,corp_cod from dwd.dwd_gnd_ext_retail_pack_property -where iqvia_pack_code in (select DISTINCT iqvia_pack_code from dm.dm_zk_retail_sales) -group by prod_des_c,corp_cod) b on t3.PROD_DES_C=b.prod_des_c -left join (select max(iqvia_pack_code) iqvia_pack_code,prod_des_c,corp_cod from dwd.dwd_gnd_ext_retail_pack_property -where iqvia_pack_code in (select DISTINCT iqvia_pack_code from dm.dm_zk_retail_sales) -group by prod_des_c,corp_cod) c on bq.zk_brand_category=c.prod_des_c -left join (select max(iqvia_pack_code) iqvia_pack_code,product_name,corp_cod from dwd.dwd_gnd_ext_retail_pack_property -where iqvia_pack_code in (select DISTINCT iqvia_pack_code from dm.dm_zk_retail_sales) - group by product_name,corp_cod) d on bq.zk_brand_category=d.product_name -where bq.brand_cat_type ='品牌' and bq.zk_brand_category not in ('多达一','天依宁','氨氯地平阿托伐他汀钙片' ,'OTHERS') - - --- COMMAND ---------- - -------------------------将RX市场数据合并并处理数据格式获取code -------------------------------------- ----------关联 corp code ----------是否total 数据打标 ----------格式处理 ----------dm 使用 niad 数据 ----------全国数据 地理编码 为 roc -insert overwrite table tmp.tmp_zk_retail_rx_ta_and_top_corp -select - distinct - case WHEN right(corporation,3) ='TTL' THEN 'ta_total' else 'ta_corp' end data_type - ,case when replace(a.rx_type,' TTL','') ='NIAD' THEN 'DM' - when replace(a.rx_type,' TTL','') ='GI-Rx+OTC' then 'GI' - ELSE replace(a.rx_type,' TTL','') END ta - ,nvl(b.CORP_COD ,CORP_COD) CORP_COD - ,CASE WHEN right(corporation,3) ='TTL' THEN 'Y' else 'N' end TOTAL_FLAG - ,a.quarter_flag YTD - ,'ROC' GEO_KEY - ,replace(a.top1_brand_val,'-','') top1_brand_val - ,coalesce(cast(a.top1_brand_gr as double ),0 ) top1_brand_gr - ,replace(a.top2_brand_val,'-','') top2_brand_val - ,coalesce(cast(a.top2_brand_gr as double ),0 ) top2_brand_gr - ,replace(a.top1_incremental_brand,'-','') top1_incremental_brand - ,coalesce(cast(a.top1_incremental_gr as double ),0 ) top1_incremental_gr - ,replace(a.top2_incremental_brand,'-','') top2_incremental_brand - ,coalesce(cast(a.top2_incremental_gr as double ),0 ) top2_incremental_gr - from dwd.dwd_gnd_ext_retail_rx_ta_top_corp a - left join (select ZK_Corp_C,max(case when CORP_COD ='F+N' then 'A5Z' ELSE CORP_COD END ) CORP_COD from dwd.dwd_inc_gnd_retail_b2c_label_total group by ZK_Corp_C ) b - on a.corporation = b.ZK_Corp_C - WHERE rx_type <>'DM' -UNION ALL - select - distinct - case WHEN right(corporation,3) ='TTL' THEN 'ta_total' else 'ta_corp' end data_type - ,replace(a.rx_type,' TTL','') ta - ,nvl(b.CORP_COD ,CORP_COD) CORP_COD - ,CASE WHEN right(corporation,3) ='TTL' THEN 'Y' else 'N' end TOTAL_FLAG - ,a.quarter_flag YTD - ,'ROC' GEO_KEY - ,replace(a.top1_brand_val,'-','') top1_brand_val - ,coalesce(cast(a.top1_brand_gr as double ) ,0 ) top1_brand_gr - ,replace(a.top2_brand_val,'-','') top2_brand_val - ,coalesce(cast(a.top2_brand_gr as double ) ,0 ) top2_brand_gr - ,replace(a.top1_incremental_brand,'-','') top1_incremental_brand - ,coalesce(cast(a.top1_incremental_gr as double ),0 ) top1_incremental_gr - ,replace(a.top2_incremental_brand,'-','') top2_incremental_brand - ,coalesce(cast(a.top2_incremental_gr as double ) ,0 ) top2_incremental_gr - from dwd.dwd_gnd_ext_retail_rx_ta_top_corp a - left join (select ZK_Corp_C,max(case when CORP_COD ='F+N' then 'A5Z' ELSE CORP_COD END ) CORP_COD from dwd.dwd_inc_gnd_retail_b2c_label_total group by ZK_Corp_C ) b - on a.corporation = b.ZK_Corp_C - WHERE rx_type ='NIAD' - union all - select distinct - 'top_corp' data_type - ,NULL ta - ,nvl(b.CORP_COD,a.corporation) CORP_COD - ,'Y' TOTAL_FLAG - ,a.quarter_flag - ,'ROC' GEO_KEY - ,replace(a.top1_brand_val,'-','') top1_brand_val - ,coalesce(cast(a.top1_brand_gr as double ),0 ) top1_brand_gr - ,replace(a.top2_brand_val,'-','') top2_brand_val - ,coalesce(cast(a.top2_brand_gr as double ),0 ) top2_brand_gr - ,replace(a.top1_incremental_brand,'-','') top1_incremental_brand - ,coalesce(cast(a.top1_incremental_gr as double ) ,0 ) top1_incremental_gr - ,replace(a.top2_incremental_brand,'-','') top2_incremental_brand - ,coalesce(cast(a.top2_incremental_gr as double ) ,0 ) top2_incremental_gr - from dwd.dwd_gnd_ext_retail_rx_top_corp a - left join (select ZK_Corp,max(case when CORP_COD ='F+N' then 'A5Z' ELSE CORP_COD END ) CORP_COD from dwd.dwd_inc_gnd_retail_b2c_label_total group by ZK_Corp ) b - on a.corporation = b.ZK_Corp - - --- COMMAND ---------- - ----------------------------------------将pack表的price 数据进行处理---------------------------------------- ----------关联 corp code ----------获取geo_key 后续的audit key ----------获取ta 值 ----------获取pack 文件中计算price 的所有指标 及加权铺货率、数字铺货率 -insert overwrite table tmp.tmp_zk_retail_price -with a as ( - select - df.brand_flag,df.zk_product_id,YYYYMM,pack.iqvia_pack_code,corp.corp_cod,zk_region - ,sum(sales_value) sales_value - ,sum(sales_unit) sales_unit - ,sum(weighted_spread_rate) weighted_spread_rate - ,sum(digital_spread_rate) digital_spread_rate - ,sum(sales_value_ly) sales_value_ly - ,sum(sales_unit_ly) sales_unit_ly - ,sum(weighted_spread_rate_ly) weighted_spread_rate_ly - ,sum(digital_spread_rate_ly) digital_spread_rate_ly -from ( - select YYYYMM,zk_product_id,zk_region - ,sales_value,sales_unit,weighted_spread_rate,digital_spread_rate - ,0 sales_value_ly - ,0 sales_unit_ly - ,0 weighted_spread_rate_ly - ,0 digital_spread_rate_ly - ,brand_flag - from dwd.dwd_inc_gnd_ext_retail_nataional_pack_union_all - union all - select cast( YYYYMM + 100 as int ),zk_product_id,zk_region - ,0 sales_value - ,0 sales_unit - ,0 weighted_spread_rate - ,0 digital_spread_rate - ,sales_value sales_value_ly - ,sales_unit sales_unit_ly - ,weighted_spread_rate weighted_spread_rate_ly - ,digital_spread_rate digital_spread_rate_ly - ,brand_flag - from dwd.dwd_inc_gnd_ext_retail_nataional_pack_union_all - where YYYYMM + 100 <= (select max(yyyymm) FROM dwd.dwd_inc_gnd_ext_retail_nataional_pack_union_all) -) df -left join (select product_id,iqvia_pack_code from dwd.dwd_gnd_ext_retail_pack_property GROUP BY product_id,iqvia_pack_code) pack on pack.product_id = df.zk_product_id -left join tmp.tmp_zk_retail_pack_property_corp corp on pack.iqvia_pack_code = corp.iqvia_pack_code -group by YYYYMM,pack.iqvia_pack_code,corp.corp_cod,zk_region,df.brand_flag,df.zk_product_id -) -select distinct YYYYMM,zk_product_id,d.ta,c.geo_key,a.iqvia_pack_code,b.iqvia_prod_code,b.prod_des_c,corp_cod,zk_region -,sales_value,sales_value_ly,sales_unit,sales_unit_ly,weighted_spread_rate,weighted_spread_rate_ly,digital_spread_rate,digital_spread_rate_ly -from a -left join (select distinct iqvia_pack_code ,prod_des_c,prod_des,iqvia_prod_code from dm.dm_zk_retail_pack_property) b on a.iqvia_pack_code=b.iqvia_pack_code -left join (select distinct geo_key,province_city from dm.dm_zk_retail_geo) c on a.zk_region = c.province_city -left join (select distinct iqvia_pack_code,ta from dm.dm_zk_retail_market_property ) d on a.iqvia_pack_code=d.iqvia_pack_code -where a.iqvia_pack_code in (select distinct iqvia_pack_code from dm.dm_zk_retail_sales) - - --- COMMAND ---------- - --- MAGIC %md --- MAGIC ## 直取 - --- COMMAND ---------- - -/* -修改时间:20250311 -修改人:chenwu -修改内容: -sales_quarter 由原来的 yyyyQn 转换成 yyyymm -*/ ----------------------------------------将直取部分数据处理成KPI形式----------------------------------------- -insert overwrite table dws.dws_zk_retail_sales_kpi -with top_corp_total as ( - ----------------------处理top_corp 大数-------------------- ----------关联 corp code 特殊:dwd_inc_gnd_retail_b2c_label_total 这个表 az 公司有两个code ,需要取A5Z 那个 ----------是否total 数据打标 ----------格式处理 ----------dm 使用 niad 数据 ----------全国数据 地理编码 为 roc - select - a.corp_desc, - 'top_corp' data_type - ,b.CORP_COD - ,'Y' TOTAL_FLAG - ,a.sales_quarter - ,cast(a.sales_quarter as int) yyyymm - ,'ROC' geo_key - ,a.sales_amount*1000000 sales_amount - ,c.sales_amount*1000000 sales_amount_ly - ,a.rank1 - ,null ta - FROM dwd.dwd_gnd_ext_retail_nataional_top_corp a - left join (select ZK_Corp_C,max(case when CORP_COD ='F+N' then 'A5Z' ELSE CORP_COD END ) CORP_COD from dwd.dwd_inc_gnd_retail_b2c_label_total group by ZK_Corp_C ) b - on a.corp_desc= b.ZK_Corp_C - left join dwd.dwd_gnd_ext_retail_nataional_top_corp c - on a.corp_desc= c.corp_desc and nvl(a.corp_type,'' ) = nvl(c.corp_type,'' ) and - cast(a.sales_quarter as int) =cast(c.sales_quarter as int)+100 - where a.rank1 is not null - unioN all - -select - a.corp_desc, - 'top_ta_corp' data_type - ,B.CORP_COD --A.corp_name as CORP_COD, --自有的corp_name 是 corp_code - ,case when A.corp_name is null then 'Y' ELSE 'N' END TOTAL_FLAG - ,a.sales_quarter - ,cast(a.sales_quarter as int) yyyymm - ,'ROC' geo_key - ,a.sales_amount*1000000 sales_amount - ,c.sales_amount*1000000 sales_amount_ly - ,a.rank1 - ,CASE WHEN trim(a.source_name) ='GI-Rx+OTC' THEN 'GI' ELSE trim(a.source_name) END ta - FROM dwd.dwd_gnd_ext_retail_nataional_ta_top_corp a - left join (select ZK_Corp_C,max(case when CORP_COD ='F+N' then 'A5Z' ELSE CORP_COD END ) CORP_COD from dwd.dwd_inc_gnd_retail_b2c_label_total group by ZK_Corp_C ) b - on a.corp_desc= b.ZK_Corp_C - left join dwd.dwd_gnd_ext_retail_nataional_ta_top_corp c - on a.corp_desc= c.corp_desc and nvl(a.corp_type,'' ) = nvl(c.corp_type,'' ) and - cast(a.sales_quarter as int) =cast(c.sales_quarter as int)+100 - and a.source_name =c.source_name -WHERE trim(a.source_name) <>'DM' -UNION ALL - select - CASE WHEN a.corp_desc='NIAD' THEN 'DM' ELSE a.corp_desc END corp_desc, - 'top_ta_corp' data_type - ,B.CORP_COD --A.corp_name as CORP_COD, --自有的corp_name 是 corp_code - ,case when A.corp_name is null then 'Y' ELSE 'N' END TOTAL_FLAG - ,a.sales_quarter - ,cast(a.sales_quarter as int) yyyymm - ,'ROC' geo_key - ,a.sales_amount*1000000 sales_amount - ,c.sales_amount*1000000 sales_amount_ly - ,a.rank1 - ,'DM' ta - FROM dwd.dwd_gnd_ext_retail_nataional_ta_top_corp a - left join (select ZK_Corp_C,max(case when CORP_COD ='F+N' then 'A5Z' ELSE CORP_COD END ) CORP_COD from dwd.dwd_inc_gnd_retail_b2c_label_total group by ZK_Corp_C ) b - on a.corp_desc= b.ZK_Corp_C - left join dwd.dwd_gnd_ext_retail_nataional_ta_top_corp c - on a.corp_desc= c.corp_desc and nvl(a.corp_type,'' ) = nvl(c.corp_type,'' ) and - cast(a.sales_quarter as int) =cast(c.sales_quarter as int)+100 - and a.source_name =c.source_name -WHERE trim(a.source_name) ='NIAD' -) - - -------- tmp_zk_retail_nataional_brand_union(品牌数据报表) 的数据ranked by这个字段 枚举值为 volume value ,这会导致部分指标重复,取数时任意其一就行,具体如代码取数情况 - - SELECT distinct - val.iqvia_pack_code pack_code - ,val.corp_cod corp_cod - ,val.YYYYMM - ,null ytd - ,val.geo_key - ,'share' KPI_name - ,val.val_share kpi_val - ,val.val_share_ly kpi_val_ly - ,null str_kpi_val - ,null str_kpi_val_ly - ,val.vol_share kpi_vol - ,val.vol_share_ly kpi_vol_ly - ,null str_kpi_vol - ,null str_kpi_vol_ly - ,'N' TOTAL_FLAG - ,ta - from tmp.tmp_zk_retail_nataional_brand_union val - where val.ranked_by ='volume' - union all - SELECT distinct - '' pack_code - ,'' corp_cod - ,null - ,val.ytd - ,val.geo_key - ,'key_brand_ytd' - ,NULL - ,NULL - ,val.key_brand_ytd - ,val.key_brand_ytd_ly - ,null - ,null - ,vol.key_brand_ytd - ,val.key_brand_ytd_ly - ,'N' TOTAL_FLAG - ,val.ta - from tmp.tmp_zk_retail_nataional_brand_union val - left join tmp.tmp_zk_retail_nataional_brand_union vol - on val.market = vol.market - and val.ytd = vol.ytd - and val.geo_key = vol.geo_key - and vol.ranked_by ='volume' - where val.ranked_by ='value' and val.ytd is not null - -UNION all - SELECT distinct - '' pack_code - ,'' corp_cod - ,null - ,val.ytd - ,val.geo_key - ,'key_brand_rank_ytd' - ,val.key_brand_rank_ytd - ,val.key_brand_rank_ytd_ly - ,NULL - ,NULL - ,vol.key_brand_rank_ytd - ,vol.key_brand_rank_ytd_ly - ,NULL - ,NULL - ,'N' TOTAL_FLAG - ,val.ta - from tmp.tmp_zk_retail_nataional_brand_union val - left join tmp.tmp_zk_retail_nataional_brand_union vol - on val.market = vol.market - and val.ytd = vol.ytd - and val.geo_key = vol.geo_key - and vol.ranked_by ='volume' - where val.ranked_by ='value' and val.ytd is not null - union all - SELECT distinct - -- MAX(val.iqvia_pack_code) pack_code - -- ,MAX(val.corp_cod ) corp_cod - '' pack_code - ,'' corp_cod - ,null - ,val.ytd - ,val.geo_key - ,'top_brand_ytd' - ,NULL - ,NULL - ,val.top_brand_ytd - ,val.top_brand_ytd_ly - ,null - ,null - ,vol.top_brand_ytd - ,val.top_brand_ytd_ly - ,'N' TOTAL_FLAG - ,val.ta - from tmp.tmp_zk_retail_nataional_brand_union val - left join tmp.tmp_zk_retail_nataional_brand_union vol - on val.market = vol.market - and val.ytd = vol.ytd - and val.geo_key = vol.geo_key - and vol.ranked_by ='volume' - where val.ranked_by ='value' and val.ytd is not null - -- GROUP BY val.market,val.ytd,val.geo_key,val.top_brand_ytd,val.top_brand_ytd_ly,vol.top_brand_ytd,vol.top_brand_ytd_ly,val.ta - - union all - SELECT distinct - -- MAX(val.iqvia_pack_code) pack_code - -- ,MAX(val.corp_cod ) corp_cod - '' pack_code - ,'' corp_cod - ,null - ,val.ytd - ,val.geo_key - ,'top_brand_ms_ytd' - ,val.top_brand_ms_ytd - ,val.top_brand_ms_ytd_ly - ,NULL - ,NULL - ,vol.top_brand_ms_ytd - ,vol.top_brand_ms_ytd_ly - ,NULL - ,NULL - ,'N' TOTAL_FLAG - ,val.ta - from tmp.tmp_zk_retail_nataional_brand_union val - left join tmp.tmp_zk_retail_nataional_brand_union vol - on val.market = vol.market - and val.ytd = vol.ytd - and val.geo_key = vol.geo_key - and vol.ranked_by ='volume' - where val.ranked_by ='value' and val.ytd is not null -union all - SELECT distinct - -- MAX(val.iqvia_pack_code) pack_code - -- ,MAX(val.corp_cod ) corp_cod - '' pack_code - ,'' corp_cod - ,null - ,val.ytd - ,val.geo_key - ,'top_brand_inc_ms_ytd' - ,val.top_brand_inc_ms_ytd - ,val.top_brand_inc_ms_ytd_ly - ,NULL - ,NULL - ,vol.top_brand_inc_ms_ytd - ,vol.top_brand_inc_ms_ytd_ly - ,NULL - ,NULL - ,'N' TOTAL_FLAG - ,val.ta - from tmp.tmp_zk_retail_nataional_brand_union val - left join tmp.tmp_zk_retail_nataional_brand_union vol - on val.market = vol.market - and val.ytd = vol.ytd - and val.geo_key = vol.geo_key - and vol.ranked_by ='volume' - where val.ranked_by ='value' and val.ytd is not null -union all - SELECT distinct - -- MAX(val.iqvia_pack_code) pack_code - -- ,MAX(val.corp_cod ) corp_cod - '' pack_code - ,'' corp_cod - ,null - ,val.ytd - ,val.geo_key - ,'top_brand_gr_ytd' - ,val.top_brand_gr_ytd - ,val.top_brand_gr_ytd_ly - ,NULL - ,NULL - ,vol.top_brand_gr_ytd - ,vol.top_brand_gr_ytd_ly - ,NULL - ,NULL - ,'N' TOTAL_FLAG - ,val.ta - from tmp.tmp_zk_retail_nataional_brand_union val - left join tmp.tmp_zk_retail_nataional_brand_union vol - on val.market = vol.market - and val.ytd = vol.ytd - and val.geo_key = vol.geo_key - and vol.ranked_by ='volume' - where val.ranked_by ='value' and val.ytd is not null -union all - SELECT distinct - -- MAX(val.iqvia_pack_code) pack_code - -- ,MAX(val.corp_cod ) corp_cod - '' pack_code - ,'' corp_cod - ,val.YYYYMM - ,null - ,val.geo_key - ,'key_brand_qtd' - ,NULL - ,NULL - ,val.key_brand_qtd - ,val.key_brand_qtd_ly - ,null - ,null - ,vol.key_brand_qtd - ,val.key_brand_qtd_ly - ,'N' TOTAL_FLAG - ,val.ta - from tmp.tmp_zk_retail_nataional_brand_union val - left join tmp.tmp_zk_retail_nataional_brand_union vol - on val.market = vol.market - and val.YYYYMM = vol.YYYYMM - and val.geo_key = vol.geo_key - and vol.ranked_by ='volume' - where val.ranked_by ='value' -union all - SELECT distinct - -- MAX(val.iqvia_pack_code) pack_code - -- ,MAX(val.corp_cod ) corp_cod - '' pack_code - ,'' corp_cod - ,val.YYYYMM - ,null - ,val.geo_key - ,'key_brand_rank_qtd' - ,val.key_brand_rank_qtd - ,val.key_brand_rank_qtd_ly - ,NULL - ,NULL - ,vol.key_brand_rank_qtd - ,vol.key_brand_rank_qtd_ly - ,NULL - ,NULL - ,'N' TOTAL_FLAG - ,val.ta - from tmp.tmp_zk_retail_nataional_brand_union val - left join tmp.tmp_zk_retail_nataional_brand_union vol - on val.market = vol.market - and val.YYYYMM = vol.YYYYMM - and val.geo_key = vol.geo_key - and vol.ranked_by ='volume' - where val.ranked_by ='value' - union all - SELECT distinct - -- MAX(val.iqvia_pack_code) pack_code - -- ,MAX(val.corp_cod ) corp_cod - '' pack_code - ,'' corp_cod - ,val.YYYYMM - ,null - ,val.geo_key - ,'top_brand_qtd' - ,NULL - ,NULL - ,val.top_brand_qtd - ,val.top_brand_qtd_ly - ,null - ,null - ,vol.top_brand_qtd - ,val.top_brand_qtd_ly - ,'N' TOTAL_FLAG - ,val.ta - from tmp.tmp_zk_retail_nataional_brand_union val - left join tmp.tmp_zk_retail_nataional_brand_union vol - on val.market = vol.market - and val.YYYYMM = vol.YYYYMM - and val.geo_key = vol.geo_key - and vol.ranked_by ='volume' - where val.ranked_by ='value' - union all - SELECT distinct - -- MAX(val.iqvia_pack_code) pack_code - -- ,MAX(val.corp_cod ) corp_cod - '' pack_code - ,'' corp_cod - ,val.YYYYMM - ,null - ,val.geo_key - ,'top_brand_ms_qtd' - ,val.top_brand_ms_qtd - ,val.top_brand_ms_qtd_ly - ,NULL - ,NULL - ,vol.top_brand_ms_qtd - ,vol.top_brand_ms_qtd_ly - ,NULL - ,NULL - ,'N' TOTAL_FLAG - ,val.ta - from tmp.tmp_zk_retail_nataional_brand_union val - left join tmp.tmp_zk_retail_nataional_brand_union vol - on val.market = vol.market - and val.YYYYMM = vol.YYYYMM - and val.geo_key = vol.geo_key - and vol.ranked_by ='volume' - where val.ranked_by ='value' -union all - SELECT distinct - -- MAX(val.iqvia_pack_code) pack_code - -- ,MAX(val.corp_cod ) corp_cod - '' pack_code - ,'' corp_cod - ,val.YYYYMM - ,null - ,val.geo_key - ,'top_brand_inc_ms_qtd' - ,val.top_brand_inc_ms_qtd - ,val.top_brand_inc_ms_qtd_ly - ,NULL - ,NULL - ,vol.top_brand_inc_ms_qtd - ,vol.top_brand_inc_ms_qtd_ly - ,NULL - ,NULL - ,'N' TOTAL_FLAG - ,val.ta - from tmp.tmp_zk_retail_nataional_brand_union val - left join tmp.tmp_zk_retail_nataional_brand_union vol - on val.market = vol.market - and val.YYYYMM = vol.YYYYMM - and val.geo_key = vol.geo_key - and vol.ranked_by ='volume' - where val.ranked_by ='value' - union all - SELECT distinct - -- MAX(val.iqvia_pack_code) pack_code - -- ,MAX(val.corp_cod ) corp_cod - '' pack_code - ,'' corp_cod - ,val.YYYYMM - ,null - ,val.geo_key - ,'top_brand_gr_qtd' - ,val.top_brand_gr_qtd - ,val.top_brand_gr_qtd_ly - ,NULL - ,NULL - ,vol.top_brand_gr_qtd - ,vol.top_brand_gr_qtd_ly - ,NULL - ,NULL - ,'N' TOTAL_FLAG - ,val.ta - from tmp.tmp_zk_retail_nataional_brand_union val - left join tmp.tmp_zk_retail_nataional_brand_union vol - on val.market = vol.market - and val.YYYYMM = vol.YYYYMM - and val.geo_key = vol.geo_key - and vol.ranked_by ='volume' - where val.ranked_by ='value' ------------------------------------处理 top 数据 -union all - SELECT distinct - '' pack_code - ,corp_cod - ,NULL YYYYMM - ,ytd - ,geo_key - ,'top1_brand_val' kpi_name - ,null kpi_val - ,NULL kpi_val_ly - ,top1_brand_val str_kpi_val - ,NULL str_kpi_val_ly - ,null kpi_vol - ,null kpi_vol_ly - ,null str_kpi_vol - ,null str_kpi_vol_ly - ,TOTAL_FLAG - ,ta - from tmp.tmp_zk_retail_rx_ta_and_top_corp - - - - union all - SELECT distinct - '' pack_code - ,corp_cod - ,NULL YYYYMM - ,ytd - ,geo_key - ,'top1_brand_gr' kpi_name - ,top1_brand_gr kpi_val - ,NULL kpi_val_ly - ,NULL str_kpi_val - ,NULL str_kpi_val_ly - ,null kpi_vol - ,null kpi_vol_ly - ,null str_kpi_vol - ,null str_kpi_vol_ly - ,TOTAL_FLAG - ,ta - from tmp.tmp_zk_retail_rx_ta_and_top_corp - union all - SELECT distinct - '' pack_code - ,corp_cod - ,NULL YYYYMM - ,ytd - ,geo_key - ,'top2_brand_val' kpi_name - ,null kpi_val - ,NULL kpi_val_ly - ,top2_brand_val str_kpi_val - ,NULL str_kpi_val_ly - ,null kpi_vol - ,null kpi_vol_ly - ,null str_kpi_vol - ,null str_kpi_vol_ly - ,TOTAL_FLAG - ,ta - from tmp.tmp_zk_retail_rx_ta_and_top_corp - union all - SELECT distinct - '' pack_code - ,corp_cod - ,NULL YYYYMM - ,ytd - ,geo_key - ,'top2_brand_gr' kpi_name - ,top2_brand_gr kpi_val - ,NULL kpi_val_ly - ,NULL str_kpi_val - ,NULL str_kpi_val_ly - ,null kpi_vol - ,null kpi_vol_ly - ,null str_kpi_vol - ,null str_kpi_vol_ly - ,TOTAL_FLAG - ,ta - from tmp.tmp_zk_retail_rx_ta_and_top_corp - union all - SELECT distinct - '' pack_code - ,corp_cod - ,NULL YYYYMM - ,ytd - ,geo_key - ,'top1_incremental_brand' kpi_name - ,null kpi_val - ,NULL kpi_val_ly - ,top1_incremental_brand str_kpi_val - ,NULL str_kpi_val_ly - ,null kpi_vol - ,null kpi_vol_ly - ,null str_kpi_vol - ,null str_kpi_vol_ly - ,TOTAL_FLAG - ,ta - from tmp.tmp_zk_retail_rx_ta_and_top_corp - union all - SELECT distinct - '' pack_code - ,corp_cod - ,NULL YYYYMM - ,ytd - ,geo_key - ,'top1_incremental_gr' kpi_name - ,top1_incremental_gr kpi_val - ,NULL kpi_val_ly - ,NULL str_kpi_val - ,NULL str_kpi_val_ly - ,null kpi_vol - ,null kpi_vol_ly - ,null str_kpi_vol - ,null str_kpi_vol_ly - ,TOTAL_FLAG - ,ta - from tmp.tmp_zk_retail_rx_ta_and_top_corp - - union all - SELECT distinct - '' pack_code - ,corp_cod - ,NULL YYYYMM - ,ytd - ,geo_key - ,'top2_incremental_brand' kpi_name - ,null kpi_val - ,NULL kpi_val_ly - ,top2_incremental_brand str_kpi_val - ,NULL str_kpi_val_ly - ,null kpi_vol - ,null kpi_vol_ly - ,null str_kpi_vol - ,null str_kpi_vol_ly - ,TOTAL_FLAG - ,ta - from tmp.tmp_zk_retail_rx_ta_and_top_corp - union all - SELECT distinct - '' pack_code - ,corp_cod - ,NULL YYYYMM - ,ytd - ,geo_key - ,'top2_incremental_gr' kpi_name - ,top2_incremental_gr kpi_val - ,NULL kpi_val_ly - ,NULL str_kpi_val - ,NULL str_kpi_val_ly - ,null kpi_vol - ,null kpi_vol_ly - ,null str_kpi_vol - ,null str_kpi_vol_ly - ,TOTAL_FLAG - ,ta - from tmp.tmp_zk_retail_rx_ta_and_top_corp ----------------处理增量数据 -union all -select distinct - '' pack_code - ,bq.type_name corp_cod - ,cast(bq.sales_quarter as int) yyyymm - ,null ytd - ,'ROC' geo_key - ,'corp_type_sales_amount' kpi_name - ,bq.sales_amount * 1000000 kpi_val - ,tq.sales_amount * 1000000 kpi_val_ly - ,NULL str_kpi_val - ,NULL str_kpi_val_ly - ,null kpi_vol - ,null kpi_vol_ly - ,null str_kpi_vol - ,null str_kpi_vol_ly - ,'Y' TOTAL_FLAG - ,null ta - from dwd.dwd_gnd_ext_retail_rx_market bq - left join dwd.dwd_gnd_ext_retail_rx_market tq on bq.type_name=tq.type_name - and cast(bq.sales_quarter as int)= cast(tq.sales_quarter+100 as int) - - union all - ---- 处理top corp 及 rank 数据 - select DISTINCT - '' pack_code - ,corp_cod - ,yyyymm - ,null ytd - ,geo_key - ,'top_corp_sales_amount' kpi_name - ,sales_amount kpi_val - ,sales_amount_ly kpi_val_ly - ,NULL str_kpi_val - ,NULL str_kpi_val_ly - ,null kpi_vol - ,null kpi_vol_ly - ,null str_kpi_vol - ,null str_kpi_vol_ly - ,TOTAL_FLAG - ,ta - from top_corp_total - union all - select distinct - '' pack_code - ,corp_cod - ,yyyymm - ,null ytd - ,geo_key - ,'top_corp_rank' kpi_name - ,rank1 kpi_val - ,null kpi_val_ly - ,NULL str_kpi_val - ,NULL str_kpi_val_ly - ,null kpi_vol - ,null kpi_vol_ly - ,null str_kpi_vol - ,null str_kpi_vol_ly - ,TOTAL_FLAG - ,ta - from top_corp_total - where lower(rank1) <>'total' - - - - --- COMMAND ---------- - ----将dtp 数据转换成 kpi 格式--- -----品牌数据 初始 ----- 关联公司code ------处理pack code ------处理格式 ------total flag 打标 -----------------------------------------------------dtp 所有数据的ta 均为 ONCO----------------------------------------------------------------------------- -insert overwrite table dws.dws_zk_retail_dtp_sales_kpi - with tmp as ( - -------------获取dtp top brand 的 本同期数据-------------------------- - select - cast(top_corp.sales_quarter as int ) yyyymm - ,top_corp.sales_quarter - ,replace(top_corp.rank1,'-','') rank1 - ,replace(top_corp.corp_name,'-','') crp_name - ,top_corp.brand_name - ,case when top_corp.brand_name ='Others' then 'Others' else zk.IQVIA_PROD_CODE end iqvia_prod_code - ,case when top_corp.brand_name ='Others' then 'Others' else brand.iqvia_pack_code end iqvia_pack_code - ,zk.CORP_COD - -- ,top_corp.source_name - ,top_corp.sales_amount*1000000 sales_amount - ,tq.sales_amount*1000000 sales_amount_ly - ,'Y' TOTAL_FLAG -from dwd.dwd_gnd_ext_retail_dtp_top_brand top_corp -left join dwd.dwd_gnd_ext_retail_dtp_top_brand tq -on cast(top_corp.sales_quarter as int ) = cast(tq.sales_quarter+100 as int ) and nvl(top_corp.corp_name,'') = nvl(tq.corp_name,'' ) -and tq.rank1 =top_corp.rank1 and nvl(top_corp.brand_name,'' ) =nvl(tq.brand_name,'' ) -left join (select distinct ZK_Prod_C,IQVIA_PROD_CODE,ZK_Corp_C,CORP_COD from dwd.dwd_inc_gnd_retail_b2c_label_total ) zk -on top_corp.brand_name = zk.ZK_Prod_C AND replace(top_corp.corp_name,'-','')=zk.ZK_Corp_C -left join (select PROD_COD IQVIA_PROD_CODE,max(PACK_COD) iqvia_pack_code,CORP_COD from dm.dm_ims_td_pack_property group by PROD_COD,CORP_COD) brand on zk.IQVIA_PROD_CODE = brand.iqvia_prod_code AND replace(zk.CORP_COD,'-','')=brand.corp_cod -UNION all - -------获取 dtp top corp 得 本同期数据------------ - select - cast(top_corp.sales_quarter as int ) yyyymm - ,top_corp.sales_quarter - ,replace(top_corp.rank1,'-','') rank1 - ,replace(top_corp.corp_name,'-','') corp_name - ,'' brand_name - ,''iqvia_prod_code - ,'' iqvia_pack_code - ,case when replace(top_corp.corp_name,'-','') ='Others' then '' else pack.corp_cod end corp_cod - -- ,top_corp.source_name - ,top_corp.sales_amount*1000000 sales_amount - ,tq.sales_amount*1000000 sales_amount_ly --- ,case when replace(top_corp.rank1,'-','') ='' then 'Y' ELSE 'N' END TOTAL_FLAG - ,'Y' TOTAL_FLAG -from dwd.dwd_gnd_ext_retail_dtp_top_copd top_corp -left join dwd.dwd_gnd_ext_retail_dtp_top_copd tq -on cast(top_corp.sales_quarter as int ) = cast(tq.sales_quarter+100 as int ) and nvl(top_corp.corp_name,'') = nvl(tq.corp_name,'' ) -and tq.rank1 =top_corp.rank1 --- left join (select zk_corp_des,max(corp_cod) corp_cod from dwd.dwd_inc_gnd_retail_b2c_label_total group by zk_corp_des) pack -left join (select distinct ZK_Corp_C,CORP_COD from dwd.dwd_inc_gnd_retail_b2c_label_total ) pack -on replace(top_corp.corp_name,'-','')=pack.ZK_Corp_C -) -select distinct - iqvia_prod_code pack_code - ,corp_cod - ,'ONCO' ta - ,yyyymm - ,null ytd - ,'ROC' geo_key - ,'top_corp_rank' kpi_name - ,cast(rank1 as double) kpi_val - ,null kpi_val_ly - ,null str_kpi_val - ,null str_kpi_val_ly - ,null kpi_vol - ,null kpi_vol_ly - ,null str_kpi_vol - ,null str_kpi_vol_ly - , TOTAL_FLAG - -- ,null ta -from tmp where rank1 !='' -union all -select distinct - iqvia_prod_code pack_code - ,corp_cod - ,'ONCO' ta - ,yyyymm - ,null ytd - ,'ROC' geo_key - ,'top_corp_sales_amount' kpi_name - ,sales_amount kpi_val - ,sales_amount_ly kpi_val_ly - ,null str_kpi_val - ,null str_kpi_val_ly - ,null kpi_vol - ,null kpi_vol_ly - ,null str_kpi_vol - ,null str_kpi_vol_ly - ,TOTAL_FLAG - -- ,null ta -from tmp - - --- COMMAND ---------- - -----------------------------------7月30日新增------------------------------- --------------------------retail 自有部分数据处理成kpi 形式-------------------- -insert overwrite table dws.dws_zk_retail_sales_own_kpi ---------在 retail 拆分好的结果表里获取pack 粒度的 price 分子 - select - a.iqvia_pack_code pack_code - ,a.corp_cod - ,YYYYMM - ,null ytd - ,a.AUDIT_COD geo_key - ,'pack_price_fz' KPI_name - ,sum(sales_value) kpi_val - ,sum(sales_value_ly) kpi_val_ly - ,null str_kpi_val - ,null str_kpi_val_ly - ,null kpi_vol - ,null kpi_vol_ly - ,null str_kpi_vol - ,null str_kpi_vol_ly - ,'N' TOTAL_FLAG - ,case when a.source[0] = '慢性阻塞性肺疾病' then 'RE' - WHEN A.source[0]= '慢性胃炎、胃溃疡' THEN 'GI' - WHEN A.source[0] = 'NIAD' THEN 'DM' - WHEN A.source[0] IN ('Brilinta Market','他汀类+血脂康','高血压用药','酒石酸美托洛尔') THEN 'CV' - WHEN A.source[0] ='RD Market' THEN 'RD' - END ta - ,a.brand_flag - ,a.pack_flag - from dm.dm_zk_retail_sales a - GROUP BY a.iqvia_pack_code ,a.corp_cod,YYYYMM ,a.AUDIT_COD - ,case when a.source[0] = '慢性阻塞性肺疾病' then 'RE' - WHEN A.source[0]= '慢性胃炎、胃溃疡' THEN 'GI' - WHEN A.source[0] = 'NIAD' THEN 'DM' - WHEN A.source[0] IN ('Brilinta Market','他汀类+血脂康','高血压用药','酒石酸美托洛尔') THEN 'CV' - WHEN A.source[0] ='RD Market' THEN 'RD' - END - ,a.brand_flag - ,a.pack_flag - having ta is not null and sum(sales_value)>0 -union all ---------在 retail 拆分好的结果表里获取pack 粒度的 price 分母 - select - a.iqvia_pack_code pack_code - ,a.corp_cod - ,YYYYMM - ,null ytd - ,a.AUDIT_COD geo_key - ,'pack_price_fm' KPI_name - ,sum(a.sales_unit) kpi_val - ,sum(a.sales_unit_ly) kpi_val_ly - ,null str_kpi_val - ,null str_kpi_val_ly - ,null kpi_vol - ,null kpi_vol_ly - ,null str_kpi_vol - ,null str_kpi_vol_ly - ,'N' TOTAL_FLAG - ,case when a.source[0] = '慢性阻塞性肺疾病' then 'RE' - WHEN A.source[0]= '慢性胃炎、胃溃疡' THEN 'GI' - WHEN A.source[0] = 'NIAD' THEN 'DM' - WHEN A.source[0] IN ('Brilinta Market','他汀类+血脂康','高血压用药','酒石酸美托洛尔') THEN 'CV' - WHEN A.source[0] ='RD Market' THEN 'RD' - END ta - ,a.brand_flag - ,a.pack_flag - from dm.dm_zk_retail_sales a - GROUP BY a.iqvia_pack_code ,a.corp_cod,YYYYMM ,a.AUDIT_COD - ,case when a.source[0] = '慢性阻塞性肺疾病' then 'RE' - WHEN A.source[0]= '慢性胃炎、胃溃疡' THEN 'GI' - WHEN A.source[0] = 'NIAD' THEN 'DM' - WHEN A.source[0] IN ('Brilinta Market','他汀类+血脂康','高血压用药','酒石酸美托洛尔') THEN 'CV' - WHEN A.source[0] ='RD Market' THEN 'RD' - END - ,a.brand_flag - ,a.pack_flag - having ta is not null and sum(sales_unit)>0 - -union all ---------在 retail 拆分好的结果表里获取pack 粒度的 by counting unit 的 price 分母 - - select - a.iqvia_pack_code pack_code - ,a.corp_cod - ,YYYYMM - ,null ytd - ,a.AUDIT_COD geo_key - ,'pack_price_by_counting_unit_fm' KPI_name - ,sum(a.counting_unit) kpi_val - ,sum(a.counting_unit_ly) kpi_val_ly - ,null str_kpi_val - ,null str_kpi_val_ly - ,null kpi_vol - ,null kpi_vol_ly - ,null str_kpi_vol - ,null str_kpi_vol_ly - ,'N' TOTAL_FLAG - ,case when a.source[0] = '慢性阻塞性肺疾病' then 'RE' - WHEN A.source[0]= '慢性胃炎、胃溃疡' THEN 'GI' - WHEN A.source[0] = 'NIAD' THEN 'DM' - WHEN A.source[0] IN ('Brilinta Market','他汀类+血脂康','高血压用药','酒石酸美托洛尔') THEN 'CV' - WHEN A.source[0] ='RD Market' THEN 'RD' - END ta - ,a.brand_flag - ,a.pack_flag - from dm.dm_zk_retail_sales a - GROUP BY a.iqvia_pack_code ,a.corp_cod,YYYYMM ,a.AUDIT_COD - ,case when a.source[0] = '慢性阻塞性肺疾病' then 'RE' - WHEN A.source[0]= '慢性胃炎、胃溃疡' THEN 'GI' - WHEN A.source[0] = 'NIAD' THEN 'DM' - WHEN A.source[0] IN ('Brilinta Market','他汀类+血脂康','高血压用药','酒石酸美托洛尔') THEN 'CV' - WHEN A.source[0] ='RD Market' THEN 'RD' - END - ,a.brand_flag - ,a.pack_flag - having ta is not null and sum(counting_unit)>0 - - union all - --------在 retail pack 粒度的文件中获取加权铺货率 - -select distinct - iqvia_pack_code pack_code - ,corp_cod - ,YYYYMM - ,null ytd - ,geo_key - ,'weighted_spread_rate' KPI_name - ,weighted_spread_rate kpi_val - ,weighted_spread_rate_ly kpi_val_ly - ,null str_kpi_val - ,null str_kpi_val_ly - ,null kpi_vol - ,null kpi_vol_ly - ,null str_kpi_vol - ,null str_kpi_vol_ly - ,'N' TOTAL_FLAG - ,ta ta - ,case when prod.prod_des_c is null THEN 2 else 1 END brand_flag - ,case when geo_key ='CHT' THEN 2 else 1 END pack_flag - from tmp.tmp_zk_retail_price a - left join (SELECT DISTINCT b.prod_des_c FROM TMP.tmp_zk_retail_nataional_brand_union A - LEFT JOIN (SELECT DISTINCT iqvia_pack_code,prod_des_c - FROM dm.dm_zk_retail_pack_property) b on a.iqvia_pack_code=b.iqvia_pack_code - ) prod on a.prod_des_c=prod.prod_des_c -union all - --------在 retail pack 粒度的文件中获取数字铺货率 - -select distinct - iqvia_pack_code - ,corp_cod - ,YYYYMM - ,null ytd - ,geo_key - ,'digital_spread_rate' KPI_name - ,digital_spread_rate kpi_val - ,digital_spread_rate_ly kpi_val_ly - ,null str_kpi_val - ,null str_kpi_val_ly - ,null kpi_vol - ,null kpi_vol_ly - ,null str_kpi_vol - ,null str_kpi_vol_ly - ,'N' TOTAL_FLAG - ,ta ta - ,case when prod.prod_des_c is null THEN 2 else 1 END brand_flag - ,case when geo_key ='CHT' THEN 2 else 1 END pack_flag - from tmp.tmp_zk_retail_price a - left join (SELECT DISTINCT b.prod_des_c FROM TMP.tmp_zk_retail_nataional_brand_union A - LEFT JOIN (SELECT DISTINCT iqvia_pack_code,prod_des_c - FROM dm.dm_zk_retail_pack_property) b on a.iqvia_pack_code=b.iqvia_pack_code - ) prod on a.prod_des_c=prod.prod_des_c -union all - --------在 retail pack 粒度的文件中获取计算pack 粒度的price -select distinct - iqvia_pack_code - ,corp_cod - ,YYYYMM - ,null ytd - ,geo_key - ,'pack_price' KPI_name - ,round(sum(sales_value)/sum(sales_unit),3) kpi_val - ,round(sum(sales_value_ly)/sum(sales_unit_ly),3) kpi_val_ly - ,null str_kpi_val - ,null str_kpi_val_ly - ,null kpi_vol - ,null kpi_vol_ly - ,null str_kpi_vol - ,null str_kpi_vol_ly - ,'N' TOTAL_FLAG - ,ta ta - ,case when prod.prod_des_c is null THEN 2 else 1 END brand_flag - ,case when geo_key ='CHT' THEN 2 else 1 END pack_flag - from tmp.tmp_zk_retail_price a - left join (SELECT DISTINCT b.prod_des_c FROM TMP.tmp_zk_retail_nataional_brand_union A - LEFT JOIN (SELECT DISTINCT iqvia_pack_code,prod_des_c - FROM dm.dm_zk_retail_pack_property) b on a.iqvia_pack_code=b.iqvia_pack_code - ) prod on a.prod_des_c=prod.prod_des_c - group by corp_cod,YYYYMM,geo_key,ta,iqvia_pack_code - ,case when prod.prod_des_c is null THEN 2 else 1 END - ,case when geo_key ='CHT' THEN 2 else 1 END - -union all - --------在 retail pack 粒度的文件中获取计算pack 粒度的price by counting unit - -select distinct - a.iqvia_pack_code - ,a.corp_cod - ,YYYYMM - ,null ytd - ,geo_key - ,'pack_price_by_counting_unit' KPI_name - ,round(sum(sales_value)/sum(sales_unit*(b.counting_unit/coalesce(b.unit,1 ))),3) kpi_val - ,round(sum(sales_value_ly)/sum(sales_unit_ly*(b.counting_unit/coalesce(b.unit,1 ))),3) kpi_val_ly - ,null str_kpi_val - ,null str_kpi_val_ly - ,null kpi_vol - ,null kpi_vol_ly - ,null str_kpi_vol - ,null str_kpi_vol_ly - ,'N' TOTAL_FLAG - ,ta ta - ,case when prod.prod_des_c is null THEN 2 else 1 END brand_flag - ,case when geo_key ='CHT' THEN 2 else 1 END pack_flag - from tmp.tmp_zk_retail_price a - left join dwd.dwd_gnd_ext_retail_pack_property b on a.zk_product_id =b.product_id - left join (SELECT DISTINCT b.prod_des_c FROM TMP.tmp_zk_retail_nataional_brand_union A - LEFT JOIN (SELECT DISTINCT iqvia_pack_code,prod_des_c - FROM dm.dm_zk_retail_pack_property) b on a.iqvia_pack_code=b.iqvia_pack_code - ) prod on a.prod_des_c=prod.prod_des_c - group by a.corp_cod,YYYYMM,geo_key,ta,a.iqvia_pack_code - ,case when prod.prod_des_c is null THEN 2 else 1 END - ,case when geo_key ='CHT' THEN 2 else 1 END -union all - --------在 retail brand 品牌文件中获取数字铺货率 并对re 特殊处理,re相关品牌优先取inhaled market 对应 pack - - SELECT distinct - nvl(B.iqvia_pack_code,val.iqvia_pack_code ) pack_code - ,val.corp_cod corp_cod - ,val.YYYYMM YYYYMM - ,null ytd - ,val.geo_key geo_key - ,'num_dist_rate' KPI_name - ,val.num_dist_rate kpi_val - ,val.num_dist_rate_ly kpi_val_ly - ,null str_kpi_val - ,null str_kpi_val_ly - ,null kpi_vol - ,null kpi_vol_ly - ,null str_kpi_vol - ,null str_kpi_vol_ly - ,'N' TOTAL_FLAG - ,ta ta - ,case when prod.prod_des_c is null THEN 2 else 1 END brand_flag - ,case when geo_key ='CHT' THEN 2 else 1 END pack_flag - from tmp.tmp_zk_retail_nataional_brand_union val - left join (select distinct iqvia_pack_code ,prod_des_c from dm.dm_zk_retail_pack_property ) c on val.iqvia_pack_code=c.iqvia_pack_code - left join (select prod_des_c,max(iqvia_pack_code) iqvia_pack_code from dm.dm_zk_retail_pack_property - -- where market='Inhaled Extended Market by Brand' group by 1) b on c.prod_des_c =b.prod_des_c - where market='Inhaled Extended Market' group by 1) b on c.prod_des_c =b.prod_des_c - left join (SELECT DISTINCT b.prod_des_c FROM TMP.tmp_zk_retail_nataional_brand_union A - LEFT JOIN (SELECT DISTINCT iqvia_pack_code,prod_des_c - FROM dm.dm_zk_retail_pack_property) b on a.iqvia_pack_code=b.iqvia_pack_code - ) prod on c.prod_des_c=prod.prod_des_c - where val.ranked_by ='volume' - union all - --------在 retail brand 品牌文件中获取加权铺货率 并对re 特殊处理,re相关品牌优先取inhaled market 对应 pack - - SELECT distinct - nvl(B.iqvia_pack_code,val.iqvia_pack_code ) pack_code - ,val.corp_cod corp_cod - ,val.YYYYMM YYYYMM - ,null ytd - ,val.geo_key geo_key - ,'weig_dist_rate' - ,val.weig_dist_rate - ,val.weig_dist_rate_ly - ,null str_kpi_val - ,null str_kpi_val_ly - ,null kpi_vol - ,null kpi_vol_ly - ,null str_kpi_vol - ,null str_kpi_vol_ly - ,'N' TOTAL_FLAG - ,ta ta - ,case when prod.prod_des_c is null THEN 2 else 1 END brand_flag - ,case when geo_key ='CHT' THEN 2 else 1 END pack_flag - from tmp.tmp_zk_retail_nataional_brand_union val - left join (select distinct iqvia_pack_code ,prod_des_c from dm.dm_zk_retail_pack_property ) c on val.iqvia_pack_code=c.iqvia_pack_code --- left join (select prod_des_c,max(iqvia_pack_code) iqvia_pack_code from dm.dm_zk_retail_pack_property where market='Inhaled Extended Market by Brand' group by 1) b on c.prod_des_c =b.prod_des_c - left join (select prod_des_c,max(iqvia_pack_code) iqvia_pack_code from dm.dm_zk_retail_pack_property where market='Inhaled Extended Market' group by 1) b - on c.prod_des_c =b.prod_des_c - left join (SELECT DISTINCT b.prod_des_c FROM TMP.tmp_zk_retail_nataional_brand_union A - LEFT JOIN (SELECT DISTINCT iqvia_pack_code,prod_des_c - FROM dm.dm_zk_retail_pack_property) b on a.iqvia_pack_code=b.iqvia_pack_code - ) prod on c.prod_des_c=prod.prod_des_c - where val.ranked_by ='volume' - --- COMMAND ---------- - ----------------将所有渠道kpi 数据汇总到dm -------------- ------KPI 表汇总 ------ytd 为是否ytd flag ------geo 将cht(全国) 改成 ROC ------DTP FLAG O 非dtp , 1 dtp 数据 -insert overwrite table dm.dm_zk_retail_sales_kpi -(pack_code -,corp_cod -,ta -,YYYYMM -,ytd -,geo_key -,KPI_name -,kpi_val -,kpi_val_ly -,str_kpi_val -,str_kpi_val_ly -,kpi_vol -,kpi_vol_ly -,str_kpi_vol -,str_kpi_vol_ly -,TOTAL_FLAG -,data_source -,dtp_flag -,brand_flag -,pack_flag -) ---------retail 渠道 kpi -select - nvl(pack_code,'') pack_code - ,nvl(corp_cod,'') corp_cod - ,nvl(ta,'') ta - ,nvl(YYYYMM,cast( if(length(ytd)=7 AND substr(ytd,6,1)<>'Q',concat('20',substr(ytd,4,2))*100 + right(ytd,2) ,concat('20',substr(ytd,4,2))*100 + right(ytd,1) * 3 ) as int )) YYYYMM - ,if(ytd IS NOT NULL ,'Y' ,'N') YTD - ,case when geo_key ='CHT' THEN 'ROC' ELSE nvl(geo_key,'') END geo_key - ,nvl(kpi_name,'') as kpi_name - ,nvl(cast(kpi_val as double),0) kpi_val - ,nvl(cast(kpi_val_ly as double),0) kpi_val_ly - ,nvl(str_kpi_val,'') - ,nvl(str_kpi_val_ly,'') - ,nvl(cast(kpi_vol as double),0) kpi_vol - ,nvl(cast(kpi_vol_ly as double),0) kpi_vol_ly - ,nvl(str_kpi_vol,'') - ,nvl(str_kpi_vol_ly,'') - ,nvl(TOTAL_FLAG,'') - ,'Retail(Quarterly)' data_source - ,'0' dtp_flag - ,0 - , 0 - from dws.dws_zk_retail_sales_kpi - WHERE nvl(ta,'' ) NOT IN ('GI-Rx','GI-OTC') - ---------------dtp 的kpi - union all -select - nvl(pack_code,'') pack_code - ,nvl(corp_cod,'') corp_cod - ,nvl(ta,'') ta - ,nvl(YYYYMM,cast( if(length(ytd)=7,concat('20',substr(ytd,4,2))*100 + right(ytd,1) * 3 ,substr(ytd,4,4) * 100 + right(ytd,1) * 3 ) as int )) YYYYMM - ,if(ytd IS NOT NULL ,'Y' ,'N') YTD - ,case when geo_key ='CHT' THEN 'ROC' ELSE nvl(geo_key,'') END - ,nvl(kpi_name,'') - ,nvl(kpi_val,0) - ,nvl(kpi_val_ly,0) - ,nvl(str_kpi_val,'') - ,nvl(str_kpi_val_ly,'') - ,nvl(kpi_vol,0) - ,nvl(kpi_vol_ly,0) - ,nvl(str_kpi_vol,'') - ,nvl(str_kpi_vol_ly,'') - ,nvl(TOTAL_FLAG,'') - ,'Retail(Quarterly)' data_source - ,'1' dtp_flag - ,0 - ,0 -from dws.dws_zk_retail_dtp_sales_kpi - WHERE nvl(ta,'' ) NOT IN ('GI-Rx','GI-OTC') ---拼接retail 自有部分kpi - union all -select - nvl(pack_code,'') pack_code - ,nvl(corp_cod,'') corp_cod - ,nvl(ta,'') ta - ,nvl(YYYYMM,cast( if(length(ytd)=7,concat('20',substr(ytd,4,2))*100 + right(ytd,1) * 3 ,substr(ytd,4,4) * 100 + right(ytd,1) * 3 ) as int )) YYYYMM - ,if(ytd IS NOT NULL ,'Y' ,'N') YTD - ,case when geo_key ='CHT' THEN 'ROC' ELSE nvl(geo_key,'') END geo_key - ,nvl(kpi_name,'') - ,nvl(cast(kpi_val as double),0) kpi_val - ,nvl(cast(kpi_val_ly as double),0) kpi_val_ly - ,nvl(str_kpi_val,'') - ,nvl(str_kpi_val_ly,'') - ,nvl(cast(kpi_vol as double),0) kpi_vol - ,nvl(cast(kpi_vol_ly as double),0) kpi_vol_ly - ,nvl(str_kpi_vol,'') - ,nvl(str_kpi_vol_ly,'') - ,nvl(TOTAL_FLAG,'') - ,'Retail(Quarterly)' data_source - ,'0' dtp_flag - ,nvl(brand_flag,0) - ,nvl(pack_flag,0) - from dws.dws_zk_retail_sales_own_kpi - WHERE nvl(ta,'' ) NOT IN ('GI-Rx','GI-OTC') - - - - --- COMMAND ---------- - -/* -修改人:chenwu -修改时间:20250319 -修改内容:如果tblbrandratio 里面的没有对应的 ratio 则用market_ratio兜底而不是直接1 -*/ -------------------------生产retail 的ratio 表,该表系数用于计算pdot-------- -insert overwrite table dm.dm_zk_retail_market_ratio -select distinct - a.market || a.iqvia_pack_code as market_pack_key - ,a.iqvia_pack_code as pack_cod - ,a.prod_des as prod_des - ,a.cmps_des as cmps_des - ,a.corp_cod as corp_cod - ,a.market as market - ,a.extend_market_ratio as value_market_ratio - ,a.extend_market_ratio as unit_market_ratio - ,coalesce(case when t4.ratio is null then t5.ratio*coalesce(a.extend_market_ratio ,1 ) - else t4.ratio*coalesce(a.extend_market_ratio ,1 ) - end ,a.extend_market_ratio ) countingunit_market_ratio --20250319如果tblbrandratio 里面的没有对应的 ratio 则用market_ratio兜底而不是直接1 - ,from_utc_timestamp(current_timestamp(),'UTC+8') AS etl_insert_dt - ,from_utc_timestamp(current_timestamp(),'UTC+8') AS etl_update_dt - from tmp.tmp_dm_zk_retail_pack_property a -left join (--COUNTINGUNIT - select distinct - market, - cmps_cod, - cmps_des, - pack_cod, - pack_des, - level, - type, - cast(ratio as float) as ratio, - cast(starttime as int) starttime, - cast (endtime as int) endtime - from dwd.dwd_gnd_ims_tblbrandratio - where UPPER(TYPE) = 'COUNTINGUNIT' and UPPER(Level) = 'PACK' -)t4 on a.market=t4.market - and if( a.iqvia_pack_code REGEXP '^[0-9]',right(concat('000000000000',a.iqvia_pack_code),12),a.iqvia_pack_code) - = if( t4.PACK_COD REGEXP '^[0-9]',right(concat('000000000000',t4.PACK_COD),12),t4.PACK_COD) - --right(concat('0000000',a.iqvia_pack_code ), 7) = right(concat('0000000',t4.PACK_COD ),7 ) -left join (--COUNTINGUNIT - select distinct - market, - cmps_cod, - cmps_des, - pack_cod, - pack_des, - level, - type, - cast(ratio as float) as ratio, - cast(starttime as int) starttime, - cast (endtime as int) endtime - from dwd.dwd_gnd_ims_tblbrandratio - where UPPER(TYPE) = 'COUNTINGUNIT' and UPPER(Level) = 'MOLECULE' -) t5 on a.market=t5.market - and right(concat('000000',a.CMPS_COD ),6 )= right(concat('000000',t5.CMPS_COD ),6 ) -union all -select distinct - a.market || a.iqvia_pack_code as market_pack_key - ,a.iqvia_pack_code as pack_cod - ,a.prod_des as prod_des - ,a.cmps_des as cmps_des - ,a.corp_cod as corp_cod - ,a.market as market - ,a.Market_Ratio as value_market_ratio - ,a.Market_Ratio as unit_market_ratio - ,coalesce(case when t4.ratio is null then t5.ratio*coalesce(a.Market_Ratio ,1 ) - else t4.ratio*coalesce(a.Market_Ratio ,1 ) - end ,a.Market_Ratio ) countingunit_market_ratio --20250319如果tblbrandratio 里面的没有对应的 ratio 则用market_ratio兜底而不是直接1 - ,from_utc_timestamp(current_timestamp(),'UTC+8') AS etl_insert_dt - ,from_utc_timestamp(current_timestamp(),'UTC+8') AS etl_update_dt - from dws.dws_zk_retail_dtp_market a -left join (--COUNTINGUNIT - select distinct - market, - cmps_cod, - cmps_des, - pack_cod, - pack_des, - level, - type, - cast(ratio as float) as ratio, - cast(starttime as int) starttime, - cast (endtime as int) endtime - from dwd.dwd_gnd_ims_tblbrandratio - where UPPER(TYPE) = 'COUNTINGUNIT' and UPPER(Level) = 'PACK' -)t4 on a.market=t4.market - -- and right(concat('0000000',a.iqvia_pack_code ), 7) = right(concat('0000000',t4.PACK_COD ),7 ) - and if( a.iqvia_pack_code REGEXP '^[0-9]',right(concat('000000000000',a.iqvia_pack_code),12),a.iqvia_pack_code) - = if( t4.PACK_COD REGEXP '^[0-9]',right(concat('000000000000',t4.PACK_COD),12),t4.PACK_COD) -left join (--COUNTINGUNIT - select distinct - market, - cmps_cod, - cmps_des, - pack_cod, - pack_des, - level, - type, - cast(ratio as float) as ratio, - cast(starttime as int) starttime, - cast (endtime as int) endtime - from dwd.dwd_gnd_ims_tblbrandratio - where UPPER(TYPE) = 'COUNTINGUNIT' and UPPER(Level) = 'MOLECULE' -) t5 on a.market=t5.market - and right(concat('000000',a.CMPS_COD ),6 ) = right(concat('000000',t5.CMPS_COD ),6 ) - \ No newline at end of file diff --git a/EXTERNAL/Retail/z2 retail_load_data_作废.sql:Zone.Identifier b/EXTERNAL/Retail/z2 retail_load_data_作废.sql:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2x= '201801' \ No newline at end of file diff --git a/EXTERNAL/THC/02 dm_ext_thc_sales.sql:Zone.Identifier b/EXTERNAL/THC/02 dm_ext_thc_sales.sql:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2x= '201801' \ No newline at end of file diff --git a/EXTERNAL/THC/02 dm_ext_thc_sales_bakup_20260327.sql:Zone.Identifier b/EXTERNAL/THC/02 dm_ext_thc_sales_bakup_20260327.sql:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2x=t2.starttime and t1.YYYYMM <=t2.endtime -and t1.YYYYMM >= t2.Value_brand_Ratio_start and t1.YYYYMM <=t2.Value_brand_Ratio_end -and t1.YYYYMM >= t2.Unit_brand_start and t1.YYYYMM <=t2.Unit_brand_end -and t1.YYYYMM >= t2.CountingUnit_brand_start and t1.YYYYMM <=t2.CountingUnit_brand_end -and t1.YYYYMM >= t2.PDOT_brand_start and t1.YYYYMM <=t2.PDOT_brand_end -LEFT JOIN DM.dm_td_ext_THC_market_pack_mapping t3 -on t1.PACK_CODE = t3.PACK_CODE -and (t1.YYYYMM-100) >=t3.starttime and (t1.YYYYMM-100) <=t3.endtime -and (t1.YYYYMM-100) >= t3.Value_brand_Ratio_start and (t1.YYYYMM-100) <=t3.Value_brand_Ratio_end -and (t1.YYYYMM-100) >= t3.Unit_brand_start and (t1.YYYYMM-100) <=t3.Unit_brand_end -and (t1.YYYYMM-100) >= t3.CountingUnit_brand_start and (t1.YYYYMM-100) <=t3.CountingUnit_brand_end -and (t1.YYYYMM-100) >= t3.PDOT_brand_start and (t1.YYYYMM-100) <=t3.PDOT_brand_end -and t2.market = t3.MARKET -where t1.DATA_SOURCE = 'THC(Quarterly)' -and AUDIT_CODE <> 'CHT' \ No newline at end of file diff --git a/EXTERNAL/THC/03 DM_TF_EXT_THC_MARKET_SALES_CHT.sql:Zone.Identifier b/EXTERNAL/THC/03 DM_TF_EXT_THC_MARKET_SALES_CHT.sql:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2x 'CHT' \ No newline at end of file diff --git a/EXTERNAL/THC/04 dm_tf_external_sales_thc.sql:Zone.Identifier b/EXTERNAL/THC/04 dm_tf_external_sales_thc.sql:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2x '' -GROUP BY PACK_CODE - --- COMMAND ---------- - --- 数据源2 COUNTY -CREATE OR REPLACE TEMPORARY VIEW VIEW_COUNTY_PACK_INFO -AS -SELECT - PACK_CODE AS PACK_CODE, - MAX(PACK_DESC) AS PACK_DESC, - MAX(PACK_LCH) AS PACK_LCH, - MAX(PROD_CODE) AS PROD_CODE, - MAX(PROD_DESC) AS PROD_DESC, - MAX(PROD_DESC_C) AS PROD_DESC_C, - MAX(CMPS_CODE) AS CMPS_CODE, - MAX(CMPS_DESC) AS CMPS_DESC, - MAX(CMPS_DESC_C) AS CMPS_DESC_C, - NULL AS VBP_BATCH, - NULL AS VBP_IMPLEMENTING_TIME, - MAX(STGH_DESC) AS STGH_DESC, - MAX(BIO_DESC) AS BIO_DESC, - MAX(ETH_OTC_DESC) AS ETH_OTC_DESC, - MAX(NRDL_DESC) AS NRDL_DESC, - MAX(NRDL_ENTRY_DATE) AS NRDL_ENTRY_DATE, - MAX(EDL_DESC) AS EDL_DESC, - MAX(TCM_DESC) AS TCM_DESC, - MAX(PAED_DESC) AS PAED_DESC, - MAX(GQCE_DESC) AS GQCE_DESC, - MAX(MANU_CODE) AS MANU_CODE, - MAX(MANU_DESC) AS MANU_DESC, - MAX(MANU_DESC_C) as MANU_DESC_C, - MAX(MNFL_CODE) AS MNFL_CODE, - MAX(ATC1_CODE) AS ATC1_CODE, - MAX(ATC1_DESC) AS ATC1_DESC, - MAX(ATC1_DESC_C) AS ATC1_DESC_C, - MAX(ATC2_CODE) AS ATC2_CODE, - MAX(ATC2_DESC) AS ATC2_DESC, - MAX(ATC2_DESC_C) AS ATC2_DESC_C, - MAX(ATC3_CODE) AS ATC3_CODE, - MAX(ATC3_DESC) AS ATC3_DESC, - MAX(ATC3_DESC_C) AS ATC3_DESC_C, - MAX(ATC4_CODE) AS ATC4_CODE, - MAX(ATC4_DESC) AS ATC4_DESC, - MAX(ATC4_DESC_C) AS ATC4_DESC_C, - MAX(APP1_CODE) AS APP1_CODE, - MAX(APP1_DESC) AS APP1_DESC, - MAX(APP1_DESC_C) AS APP1_DESC_C, - MAX(APP2_CODE) AS APP2_CODE, - MAX(APP2_DESC) AS APP2_DESC, - MAX(APP2_DESC_C) AS APP2_DESC_C, - MAX(APP3_CODE) AS APP3_CODE, - MAX(APP3_DESC) AS APP3_DESC, - MAX(APP3_DESC_C) AS APP3_DESC_C, - MAX(GENE_ORIG_DESC) AS GENE_ORIG_DESC, - CASE - WHEN MAX(VBP_DESC) = 'VBP-IN' THEN 'VBP-IN' - WHEN MAX(VBP_DESC) LIKE '%VBP%' THEN 'VBP-OUT' - WHEN MAX(VBP_DESC) IS NOT NULL THEN 'Non VBP' - ELSE NULL END AS VBP_DESC, - MAX(CORP_CODE) AS CORP_CODE, - CASE - WHEN MAX(GENE_ORIG_DESC) = 'ORIG' THEN 1 - WHEN MAX(GENE_ORIG_DESC) = 'Branded Gen' THEN 2 - WHEN MAX(GENE_ORIG_DESC) = 'Unbranded Gen' THEN 3 - WHEN MAX(GENE_ORIG_DESC) = 'TCM' THEN 4 - ELSE 5 END AS GEN_RN, - MAX(CORP_DESC) AS CORP_DESC, - MAX(CORP_DESC_C) AS CORP_DESC_C, - NULL AS PACK_RN, - NULL AS PROD_RN, - NULL AS CMPS_RN, - NULL AS DATA_SOURCE, - NULL AS ATC, - NULL AS NEW_CODE, - NULL AS COMMON_NAME, - NULL AS PRODUCT_NAME, - NULL AS MANU_DES_XIEHE, - NULL AS PACK_DES_XIEHE, - NULL AS DRUG_DELIVERY_ROUTE, - NULL AS NFC, - NULL AS CORP_TYPE, - NULL AS LAUNCHTIME, - NULL AS VBP_BRAND -FROM dm.DM_TD_EXT_COUNTY_PACK_PROPERTY b -GROUP BY PACK_CODE - --- COMMAND ---------- - --- 数据源3 THC -CREATE OR REPLACE TEMPORARY VIEW VIEW_THC_PACK_INFO -AS -SELECT - PACK_CODE AS PACK_CODE, - MAX(PACK_DESC) AS PACK_DESC, - MAX(PACK_LCH) AS PACK_LCH, - MAX(PROD_CODE) AS PROD_CODE, - MAX(PROD_DESC) AS PROD_DESC, - MAX(PROD_DESC_C) AS PROD_DESC_C, - MAX(CMPS_CODE) AS CMPS_CODE, - MAX(CMPS_DESC) AS CMPS_DESC, - MAX(CMPS_DESC_C) AS CMPS_DESC_C, - NULL AS VBP_BATCH, - NULL AS VBP_IMPLEMENTING_TIME, - MAX(STGH_DESC) AS STGH_DESC, - MAX(BIO_DESC) AS BIO_DESC, - MAX(ETH_OTC_DESC) AS ETH_OTC_DESC, - MAX(NRDL_DESC) AS NRDL_DESC, - NULL AS NRDL_ENTRY_DATE, - MAX(EDL_DESC) AS EDL_DESC, - MAX(TCM_DESC) AS TCM_DESC, - MAX(PAED_DESC) AS PAED_DESC, - MAX(GQCE_DESC) AS GQCE_DESC, - MAX(MANU_CODE) AS MANU_CODE, - MAX(MANU_DESC) AS MANU_DESC, - MAX(MANU_DESC_C) as MANU_DESC_C, - MAX(MNFL_CODE) AS MNFL_CODE, - MAX(ATC1_CODE) AS ATC1_CODE, - MAX(ATC1_DESC) AS ATC1_DESC, - MAX(ATC1_DESC_C) AS ATC1_DESC_C, - MAX(ATC2_CODE) AS ATC2_CODE, - MAX(ATC2_DESC) AS ATC2_DESC, - MAX(ATC2_DESC_C) AS ATC2_DESC_C, - MAX(ATC3_CODE) AS ATC3_CODE, - MAX(ATC3_DESC) AS ATC3_DESC, - MAX(ATC3_DESC_C) AS ATC3_DESC_C, - MAX(ATC4_CODE) AS ATC4_CODE, - MAX(ATC4_DESC) AS ATC4_DESC, - MAX(ATC4_DESC_C) AS ATC4_DESC_C, - MAX(APP1_CODE) AS APP1_CODE, - MAX(APP1_DESC) AS APP1_DESC, - MAX(APP1_DESC_C) AS APP1_DESC_C, - MAX(APP2_CODE) AS APP2_CODE, - MAX(APP2_DESC) AS APP2_DESC, - MAX(APP2_DESC_C) AS APP2_DESC_C, - MAX(APP3_CODE) AS APP3_CODE, - MAX(APP3_DESC) AS APP3_DESC, - MAX(APP3_DESC_C) AS APP3_DESC_C, - MAX(GENE_ORIG_DESC) AS GENE_ORIG_DESC, - MAX(VBP_DESC) AS VBP_DESC, - MAX(CORP_CODE) AS CORP_CODE, - CASE - WHEN MAX(GENE_ORIG_DESC) = 'ORIG' THEN 1 - WHEN MAX(GENE_ORIG_DESC) = 'Branded Gen' THEN 2 - WHEN MAX(GENE_ORIG_DESC) = 'Unbranded Gen' THEN 3 - WHEN MAX(GENE_ORIG_DESC) = 'TCM' THEN 4 - ELSE 5 END AS GEN_RN, - MAX(CORP_DESC) AS CORP_DESC, - MAX(CORP_DESC_C) AS CORP_DESC_C, - NULL AS PACK_RN, - NULL AS PROD_RN, - NULL AS CMPS_RN, - NULL AS DATA_SOURCE, - NULL AS ATC, - NULL AS NEW_CODE, - NULL AS COMMON_NAME, - NULL AS PRODUCT_NAME, - NULL AS MANU_DES_XIEHE, - NULL AS PACK_DES_XIEHE, - NULL AS DRUG_DELIVERY_ROUTE, - NULL AS NFC, - NULL AS CORP_TYPE, - NULL AS LAUNCHTIME, - NULL AS VBP_BRAND -FROM DM.DM_TD_EXT_THC_PACK_PROPERTY -GROUP BY PACK_CODE - --- COMMAND ---------- - --- 数据源4 CHC -CREATE OR REPLACE TEMPORARY VIEW VIEW_CHC_PACK_INFO -AS -SELECT - PACK_CODE AS PACK_CODE, - MAX(PACK_DESC) AS PACK_DESC, - MAX(PACK_LCH) AS PACK_LCH, - MAX(PROD_CODE) AS PROD_CODE, - MAX(PROD_DESC) AS PROD_DESC, - MAX(PROD_DESC_C) AS PROD_DESC_C, - MAX(CMPS_CODE) AS CMPS_CODE, - MAX(CMPS_DESC) AS CMPS_DESC, - MAX(CMPS_DESC_C) AS CMPS_DESC_C, - NULL AS VBP_BATCH, - NULL AS VBP_IMPLEMENTING_TIME, - MAX(STGH_DESC) AS STGH_DESC, - MAX(BIO_DESC) AS BIO_DESC, - MAX(ETH_OTC_DESC) AS ETH_OTC_DESC, - MAX(NRDL_DESC) AS NRDL_DESC, - NULL AS NRDL_ENTRY_DATE, - MAX(EDL_DESC) AS EDL_DESC, - MAX(TCM_DESC) AS TCM_DESC, - MAX(PAED_DESC) AS PAED_DESC, - MAX(GQCE_DESC) AS GQCE_DESC, - MAX(MANU_CODE) AS MANU_CODE, - MAX(MANU_DESC) AS MANU_DESC, - MAX(MANU_DESC_C) as MANU_DESC_C, - MAX(MNFL_CODE) AS MNFL_CODE, - MAX(ATC1_CODE) AS ATC1_CODE, - MAX(ATC1_DESC) AS ATC1_DESC, - MAX(ATC1_DESC_C) AS ATC1_DESC_C, - MAX(ATC2_CODE) AS ATC2_CODE, - MAX(ATC2_DESC) AS ATC2_DESC, - MAX(ATC2_DESC_C) AS ATC2_DESC_C, - MAX(ATC3_CODE) AS ATC3_CODE, - MAX(ATC3_DESC) AS ATC3_DESC, - MAX(ATC3_DESC_C) AS ATC3_DESC_C, - MAX(ATC4_CODE) AS ATC4_CODE, - MAX(ATC4_DESC) AS ATC4_DESC, - MAX(ATC4_DESC_C) AS ATC4_DESC_C, - MAX(APP1_CODE) AS APP1_CODE, - MAX(APP1_DESC) AS APP1_DESC, - MAX(APP1_DESC_C) AS APP1_DESC_C, - MAX(APP2_CODE) AS APP2_CODE, - MAX(APP2_DESC) AS APP2_DESC, - MAX(APP2_DESC_C) AS APP2_DESC_C, - MAX(APP3_CODE) AS APP3_CODE, - MAX(APP3_DESC) AS APP3_DESC, - MAX(APP3_DESC_C) AS APP3_DESC_C, - MAX(GENE_ORIG_DESC) AS GENE_ORIG_DESC, - MAX(VBP_DESC) AS VBP_DESC, - MAX(CORP_CODE) AS CORP_CODE, - CASE - WHEN MAX(GENE_ORIG_DESC) = 'ORIG' THEN 1 - WHEN MAX(GENE_ORIG_DESC) = 'Branded Gen' THEN 2 - WHEN MAX(GENE_ORIG_DESC) = 'Unbranded Gen' THEN 3 - WHEN MAX(GENE_ORIG_DESC) = 'TCM' THEN 4 - ELSE 5 END AS GEN_RN, - MAX(CORP_DESC) AS CORP_DESC, - MAX(CORP_DESC_C) AS CORP_DESC_C, - NULL AS PACK_RN, - NULL AS PROD_RN, - NULL AS CMPS_RN, - NULL AS DATA_SOURCE, - NULL AS ATC, - NULL AS NEW_CODE, - NULL AS COMMON_NAME, - NULL AS PRODUCT_NAME, - NULL AS MANU_DES_XIEHE, - NULL AS PACK_DES_XIEHE, - NULL AS DRUG_DELIVERY_ROUTE, - NULL AS NFC, - NULL AS CORP_TYPE, - NULL AS LAUNCHTIME, - NULL AS VBP_BRAND -FROM DM.DM_TD_EXT_CHC_PACK_PROPERTY -GROUP BY PACK_CODE - --- COMMAND ---------- - --- 数据源5 retail -CREATE OR REPLACE TEMPORARY VIEW VIEW_RETAIL_PACK_INFO -AS -SELECT - PACK_CODE AS PACK_CODE, - MAX(PACK_DESC) AS PACK_DESC, - MAX(PACK_LCH) AS PACK_LCH, - MAX(PROD_CODE) AS PROD_CODE, - MAX(PROD_DESC) AS PROD_DESC, - MAX(PROD_DESC_C) AS PROD_DESC_C, - MAX(CMPS_CODE) AS CMPS_CODE, - MAX(CMPS_DESC) AS CMPS_DESC, - MAX(CMPS_DESC_C) AS CMPS_DESC_C, - NULL AS VBP_BATCH, - NULL AS VBP_IMPLEMENTING_TIME, - MAX(STGH_DESC) AS STGH_DESC, - MAX(BIO_DESC) AS BIO_DESC, - MAX(ETH_OTC_DESC) AS ETH_OTC_DESC, - MAX(NRDL_DESC) AS NRDL_DESC, - MAX(NRDL_ENTRY_DATE) AS NRDL_ENTRY_DATE, - MAX(EDL_DESC) AS EDL_DESC, - MAX(TCM_DESC) AS TCM_DESC, - MAX(PAED_DESC) AS PAED_DESC, - MAX(GQCE_DESC) AS GQCE_DESC, - MAX(MANU_CODE) AS MANU_CODE, - MAX(MANU_DESC) AS MANU_DESC, - MAX(MANU_DESC_C) as MANU_DESC_C, - MAX(MNFL_CODE) AS MNFL_CODE, - MAX(ATC1_CODE) AS ATC1_CODE, - MAX(ATC1_DESC) AS ATC1_DESC, - MAX(ATC1_DESC_C) AS ATC1_DESC_C, - MAX(ATC2_CODE) AS ATC2_CODE, - MAX(ATC2_DESC) AS ATC2_DESC, - MAX(ATC2_DESC_C) AS ATC2_DESC_C, - MAX(ATC3_CODE) AS ATC3_CODE, - MAX(ATC3_DESC) AS ATC3_DESC, - MAX(ATC3_DESC_C) AS ATC3_DESC_C, - MAX(ATC4_CODE) AS ATC4_CODE, - MAX(ATC4_DESC) AS ATC4_DESC, - MAX(ATC4_DESC_C) AS ATC4_DESC_C, - MAX(APP1_CODE) AS APP1_CODE, - MAX(APP1_DESC) AS APP1_DESC, - MAX(APP1_DESC_C) AS APP1_DESC_C, - MAX(APP2_CODE) AS APP2_CODE, - MAX(APP2_DESC) AS APP2_DESC, - MAX(APP2_DESC_C) AS APP2_DESC_C, - MAX(APP3_CODE) AS APP3_CODE, - MAX(APP3_DESC) AS APP3_DESC, - MAX(APP3_DESC_C) AS APP3_DESC_C, - MAX(GENE_ORIG_DESC) AS GENE_ORIG_DESC, - CASE - WHEN MAX(VBP_DESC) = 'VBP-IN' then 'VBP-IN' - WHEN MAX(VBP_DESC) LIKE '%VBP%' THEN 'VBP-OUT' - WHEN MAX(VBP_DESC) IS NOT NULL THEN 'Non VBP' - ELSE NULL END AS VBP_DESC, - MAX(CORP_CODE) AS CORP_CODE, - CASE - WHEN MAX(GENE_ORIG_DESC) = 'ORIG' THEN 1 - WHEN MAX(GENE_ORIG_DESC) = 'Branded Gen' THEN 2 - WHEN MAX(GENE_ORIG_DESC) = 'Unbranded Gen' THEN 3 - WHEN MAX(GENE_ORIG_DESC) = 'TCM' THEN 4 - ELSE 5 END GEN_RN, - MAX(CORP_DESC) AS CORP_DESC, - MAX(CORP_DESC_C) AS CORP_DESC_C, - NULL AS PACK_RN, - NULL AS PROD_RN, - NULL AS CMPS_RN, - NULL AS DATA_SOURCE, - NULL AS ATC, - NULL AS NEW_CODE, - NULL AS COMMON_NAME, - NULL AS PRODUCT_NAME, - NULL AS MANU_DES_XIEHE, - NULL AS PACK_DES_XIEHE, - NULL AS DRUG_DELIVERY_ROUTE, - NULL AS NFC, - NULL AS CORP_TYPE, - NULL AS LAUNCHTIME, - NULL AS VBP_BRAND -FROM dm.DM_TD_EXT_RETAIL_PACK_PROPERTY -GROUP BY PACK_CODE -UNION -SELECT - PACK_CODE AS PACK_CODE, - MAX(PACK_DESC) AS PACK_DESC, - MAX(PACK_LCH) AS PACK_LCH, - MAX(PROD_CODE) AS PROD_CODE, - MAX(PROD_DESC) AS PROD_DESC, - MAX(PROD_DESC_C) AS PROD_DESC_C, - MAX(CMPS_CODE) AS CMPS_CODE, - MAX(CMPS_DESC) AS CMPS_DESC, - MAX(CMPS_DESC_C) AS CMPS_DESC_C, - NULL AS VBP_BATCH, - NULL AS VBP_IMPLEMENTING_TIME, - MAX(STGH_DESC) AS STGH_DESC, - MAX(BIO_DESC) AS BIO_DESC, - MAX(ETH_OTC_DESC) AS ETH_OTC_DESC, - MAX(NRDL_DESC) AS NRDL_DESC, - MAX(NRDL_ENTRY_DATE) AS NRDL_ENTRY_DATE, - MAX(EDL_DESC) AS EDL_DESC, - MAX(TCM_DESC) AS TCM_DESC, - MAX(PAED_DESC) AS PAED_DESC, - MAX(GQCE_DESC) AS GQCE_DESC, - MAX(MANU_CODE) AS MANU_CODE, - MAX(MANU_DESC) AS MANU_DESC, - MAX(MANU_DESC_C) as MANU_DESC_C, - MAX(MNFL_CODE) AS MNFL_CODE, - MAX(ATC1_CODE) AS ATC1_CODE, - MAX(ATC1_DESC) AS ATC1_DESC, - MAX(ATC1_DESC_C) AS ATC1_DESC_C, - MAX(ATC2_CODE) AS ATC2_CODE, - MAX(ATC2_DESC) AS ATC2_DESC, - MAX(ATC2_DESC_C) AS ATC2_DESC_C, - MAX(ATC3_CODE) AS ATC3_CODE, - MAX(ATC3_DESC) AS ATC3_DESC, - MAX(ATC3_DESC_C) AS ATC3_DESC_C, - MAX(ATC4_CODE) AS ATC4_CODE, - MAX(ATC4_DESC) AS ATC4_DESC, - MAX(ATC4_DESC_C) AS ATC4_DESC_C, - MAX(APP1_CODE) AS APP1_CODE, - MAX(APP1_DESC) AS APP1_DESC, - MAX(APP1_DESC_C) AS APP1_DESC_C, - MAX(APP2_CODE) AS APP2_CODE, - MAX(APP2_DESC) AS APP2_DESC, - MAX(APP2_DESC_C) AS APP2_DESC_C, - MAX(APP3_CODE) AS APP3_CODE, - MAX(APP3_DESC) AS APP3_DESC, - MAX(APP3_DESC_C) AS APP3_DESC_C, - MAX(GENE_ORIG_DESC) AS GENE_ORIG_DESC, - CASE - WHEN MAX(VBP_DESC) = 'VBP-IN' then 'VBP-IN' - WHEN MAX(VBP_DESC) LIKE '%VBP%' THEN 'VBP-OUT' - WHEN MAX(VBP_DESC) IS NOT NULL THEN 'Non VBP' - ELSE NULL END as VBP_DESC, - MAX(CORP_CODE) AS CORP_CODE, - CASE - WHEN MAX(GENE_ORIG_DESC) = 'ORIG' THEN 1 - WHEN MAX(GENE_ORIG_DESC) = 'Branded Gen' THEN 2 - WHEN MAX(GENE_ORIG_DESC) = 'Unbranded Gen' THEN 3 - WHEN MAX(GENE_ORIG_DESC) = 'TCM' THEN 4 - ELSE 5 END AS GEN_RN, - MAX(CORP_DESC) AS CORP_DESC, - MAX(CORP_DESC_C) AS CORP_DESC_C, - NULL AS PACK_RN, - NULL AS PROD_RN, - NULL AS CMPS_RN, - NULL AS DATA_SOURCE, - NULL AS ATC, - NULL AS NEW_CODE, - NULL AS COMMON_NAME, - NULL AS PRODUCT_NAME, - NULL AS MANU_DES_XIEHE, - NULL AS PACK_DES_XIEHE, - NULL AS DRUG_DELIVERY_ROUTE, - NULL AS NFC, - NULL AS CORP_TYPE, - NULL AS LAUNCHTIME, - NULL AS VBP_BRAND -FROM dm.DM_TD_EXT_RETAIL_DTP_PACK_PROPERTY -GROUP BY PACK_CODE - --- COMMAND ---------- - --- 数据源6 EC -CREATE OR REPLACE TEMPORARY VIEW VIEW_EC_PACK_INFO -AS -SELECT - PACK_CODE AS PACK_CODE, - MAX(PACK_DESC) AS PACK_DESC, - MAX(PACK_LCH) AS PACK_LCH, - MAX(PROD_CODE) AS PROD_CODE, - MAX(PROD_DESC) AS PROD_DESC, - MAX(PROD_DESC_C) AS PROD_DESC_C, - MAX(CMPS_CODE) AS CMPS_CODE, - MAX(CMPS_DESC) AS CMPS_DESC, - MAX(CMPS_DESC_C) AS CMPS_DESC_C, - NULL AS VBP_BATCH, - NULL AS VBP_IMPLEMENTING_TIME, - MAX(STGH_DESC) AS STGH_DESC, - MAX(BIO_DESC) AS BIO_DESC, - MAX(ETH_OTC_DESC) AS ETH_OTC_DESC, - MAX(NRDL_DESC) AS NRDL_DESC, - MAX(NRDL_ENTRY_DATE) AS NRDL_ENTRY_DATE, - MAX(EDL_DESC) AS EDL_DESC, - MAX(TCM_DESC) AS TCM_DESC, - MAX(PAED_DESC) AS PAED_DESC, - MAX(GQCE_DESC) AS GQCE_DESC, - MAX(MANU_CODE) AS MANU_CODE, - MAX(MANU_DESC) AS MANU_DESC, - MAX(MANU_DESC_C) as MANU_DESC_C, - MAX(MNFL_CODE) AS MNFL_CODE, - MAX(ATC1_CODE) AS ATC1_CODE, - MAX(ATC1_DESC) AS ATC1_DESC, - MAX(ATC1_DESC_C) AS ATC1_DESC_C, - MAX(ATC2_CODE) AS ATC2_CODE, - MAX(ATC2_DESC) AS ATC2_DESC, - MAX(ATC2_DESC_C) AS ATC2_DESC_C, - MAX(ATC3_CODE) AS ATC3_CODE, - MAX(ATC3_DESC) AS ATC3_DESC, - MAX(ATC3_DESC_C) AS ATC3_DESC_C, - MAX(ATC4_CODE) AS ATC4_CODE, - MAX(ATC4_DESC) AS ATC4_DESC, - MAX(ATC4_DESC_C) AS ATC4_DESC_C, - MAX(APP1_CODE) AS APP1_CODE, - MAX(APP1_DESC) AS APP1_DESC, - MAX(APP1_DESC_C) AS APP1_DESC_C, - MAX(APP2_CODE) AS APP2_CODE, - MAX(APP2_DESC) AS APP2_DESC, - MAX(APP2_DESC_C) AS APP2_DESC_C, - MAX(APP3_CODE) AS APP3_CODE, - MAX(APP3_DESC) AS APP3_DESC, - MAX(APP3_DESC_C) AS APP3_DESC_C, - MAX(GENE_ORIG_DESC) AS GENE_ORIG_DESC, - CASE - WHEN MAX(VBP_DESC) = 'VBP-IN' then 'VBP-IN' - WHEN MAX(VBP_DESC) LIKE '%VBP%' THEN 'VBP-OUT' - WHEN MAX(VBP_DESC) IS NOT NULL THEN 'Non VBP' - ELSE NULL END AS VBP_DESC, - MAX(CORP_CODE) AS CORP_CODE, - CASE - WHEN MAX(GENE_ORIG_DESC) = 'ORIG' THEN 1 - WHEN MAX(GENE_ORIG_DESC) = 'Branded Gen' THEN 2 - WHEN MAX(GENE_ORIG_DESC) = 'Unbranded Gen' THEN 3 - WHEN MAX(GENE_ORIG_DESC) = 'TCM' THEN 4 - ELSE 5 END AS GEN_RN, - MAX(CORP_DESC) AS CORP_DESC, - MAX(CORP_DESC_C) AS CORP_DESC_C, - NULL AS PACK_RN, - NULL AS PROD_RN, - NULL AS CMPS_RN, - NULL AS DATA_SOURCE, - NULL AS ATC, - NULL AS NEW_CODE, - NULL AS COMMON_NAME, - NULL AS PRODUCT_NAME, - NULL AS MANU_DES_XIEHE, - NULL AS PACK_DES_XIEHE, - NULL AS DRUG_DELIVERY_ROUTE, - NULL AS NFC, - NULL AS CORP_TYPE, - NULL AS LAUNCHTIME, - NULL AS VBP_BRAND -FROM dm.DM_TD_EXT_EC_PACK_PROPERTY -GROUP BY PACK_CODE - --- COMMAND ---------- - --- 数据源7 AIA -CREATE OR REPLACE TEMPORARY VIEW VIEW_AIA_PACK_INFO -AS -SELECT - CASE - WHEN PACK_CODE like '%OTHERS%' - OR length(PACK_CODE) >= 12 - OR (not PACK_CODE REGEXP '^[0-9]') THEN PACK_CODE - ELSE right(concat('000000000000', PACK_CODE), 12) END AS PACK_CODE, - MAX(PACK_DESC) AS PACK_DESC, - MAX(PACK_LCH) AS PACK_LCH, - MAX(PROD_CODE) AS PROD_CODE, - MAX(PROD_DESC) AS PROD_DESC, - MAX(PROD_DESC_C) AS PROD_DESC_C, - MAX(CMPS_CODE) AS CMPS_CODE, - MAX(CMPS_DESC) AS CMPS_DESC, - MAX(CMPS_DESC_C) AS CMPS_DESC_C, - NULL AS VBP_BATCH, - NULL AS VBP_IMPLEMENTING_TIME, - MAX(STGH_DESC) AS STGH_DESC, - MAX(BIO_DESC) AS BIO_DESC, - MAX(ETH_OTC_DESC) AS ETH_OTC_DESC, - MAX(NRDL_DESC) AS NRDL_DESC, - MAX(NRDL_ENTRY_DATE) AS NRDL_ENTRY_DATE, - MAX(EDL_DESC) AS EDL_DESC, - MAX(TCM_DESC) AS TCM_DESC, - MAX(PAED_DESC) AS PAED_DESC, - MAX(GQCE_DESC) AS GQCE_DESC, - MAX(MANU_CODE) AS MANU_CODE, - MAX(MANU_DESC) AS MANU_DESC, - MAX(MANU_DESC_C) as MANU_DESC_C, - MAX(MNFL_CODE) AS MNFL_CODE, - MAX(ATC1_CODE) AS ATC1_CODE, - MAX(ATC1_DESC) AS ATC1_DESC, - MAX(ATC1_DESC_C) AS ATC1_DESC_C, - MAX(ATC2_CODE) AS ATC2_CODE, - MAX(ATC2_DESC) AS ATC2_DESC, - MAX(ATC2_DESC_C) AS ATC2_DESC_C, - MAX(ATC3_CODE) AS ATC3_CODE, - MAX(ATC3_DESC) AS ATC3_DESC, - MAX(ATC3_DESC_C) AS ATC3_DESC_C, - MAX(ATC4_CODE) AS ATC4_CODE, - MAX(ATC4_DESC) AS ATC4_DESC, - MAX(ATC4_DESC_C) AS ATC4_DESC_C, - MAX(APP1_CODE) AS APP1_CODE, - MAX(APP1_DESC) AS APP1_DESC, - MAX(APP1_DESC_C) AS APP1_DESC_C, - MAX(APP2_CODE) AS APP2_CODE, - MAX(APP2_DESC) AS APP2_DESC, - MAX(APP2_DESC_C) AS APP2_DESC_C, - MAX(APP3_CODE) AS APP3_CODE, - MAX(APP3_DESC) AS APP3_DESC, - MAX(APP3_DESC_C) AS APP3_DESC_C, - MAX(GENE_ORIG_DESC) AS GENE_ORIG_DESC, - NULL AS VBP_DESC, - MAX(CORP_CODE) AS CORP_CODE, - CASE - WHEN MAX(GENE_ORIG_DESC) = 'ORIG' THEN 1 - WHEN MAX(GENE_ORIG_DESC) = 'Branded Gen' THEN 2 - WHEN MAX(GENE_ORIG_DESC) = 'Unbranded Gen' THEN 3 - WHEN MAX(GENE_ORIG_DESC) = 'TCM' THEN 4 - ELSE 5 END AS GEN_RN, - MAX(CORP_DESC) AS CORP_DESC, - MAX(CORP_DESC_C) AS CORP_DESC_C, - NULL AS PACK_RN, - NULL AS PROD_RN, - NULL AS CMPS_RN, - NULL AS DATA_SOURCE, - NULL AS ATC, - NULL AS NEW_CODE, - NULL AS COMMON_NAME, - NULL AS PRODUCT_NAME, - NULL AS MANU_DES_XIEHE, - NULL AS PACK_DES_XIEHE, - NULL AS DRUG_DELIVERY_ROUTE, - NULL AS NFC, - NULL AS CORP_TYPE, - NULL AS LAUNCHTIME, - NULL AS VBP_BRAND -FROM dm.DM_TD_EXT_AIA_PACK_PROPERTY -GROUP BY PACK_CODE - --- COMMAND ---------- - --- 数据源8 XIEHE -CREATE OR REPLACE TEMPORARY VIEW VIEW_XIEHE_PACK_INFO -AS -SELECT - PACK_CODE AS PACK_CODE, - MAX(PACK_DESC) AS PACK_DESC, - MAX(PACK_LCH) AS PACK_LCH, - MAX(PROD_CODE) AS PROD_CODE, - MAX(PROD_DESC) AS PROD_DESC, - MAX(PROD_DESC_C) AS PROD_DESC_C, - MAX(CMPS_CODE) AS CMPS_CODE, - MAX(CMPS_DESC) AS CMPS_DESC, - MAX(CMPS_DESC_C) AS CMPS_DESC_C, - NULL AS VBP_BATCH, - NULL AS VBP_IMPLEMENTING_TIME, - MAX(STGH_DESC) AS STGH_DESC, - MAX(BIO_DESC) AS BIO_DESC, - MAX(ETH_OTC_DESC) AS ETH_OTC_DESC, - MAX(NRDL_DESC) AS NRDL_DESC, - MAX(NRDL_ENTRY_DATE) AS NRDL_ENTRY_DATE, - MAX(EDL_DESC) AS EDL_DESC, - MAX(TCM_DESC) AS TCM_DESC, - MAX(PAED_DESC) AS PAED_DESC, - MAX(GQCE_DESC) AS GQCE_DESC, - MAX(MANU_CODE) AS MANU_CODE, - MAX(MANU_DESC) AS MANU_DESC, - MAX(MANU_DESC_C) as MANU_DESC_C, - MAX(MNFL_CODE) AS MNFL_CODE, - MAX(ATC1_CODE) AS ATC1_CODE, - MAX(ATC1_DESC) AS ATC1_DESC, - MAX(ATC1_DESC_C) AS ATC1_DESC_C, - MAX(ATC2_CODE) AS ATC2_CODE, - MAX(ATC2_DESC) AS ATC2_DESC, - MAX(ATC2_DESC_C) AS ATC2_DESC_C, - MAX(ATC3_CODE) AS ATC3_CODE, - MAX(ATC3_DESC) AS ATC3_DESC, - MAX(ATC3_DESC_C) AS ATC3_DESC_C, - MAX(ATC4_CODE) AS ATC4_CODE, - MAX(ATC4_DESC) AS ATC4_DESC, - MAX(ATC4_DESC_C) AS ATC4_DESC_C, - MAX(APP1_CODE) AS APP1_CODE, - MAX(APP1_DESC) AS APP1_DESC, - MAX(APP1_DESC_C) AS APP1_DESC_C, - MAX(APP2_CODE) AS APP2_CODE, - MAX(APP2_DESC) AS APP2_DESC, - MAX(APP2_DESC_C) AS APP2_DESC_C, - MAX(APP3_CODE) AS APP3_CODE, - MAX(APP3_DESC) AS APP3_DESC, - MAX(APP3_DESC_C) AS APP3_DESC_C, - MAX(GENE_ORIG_DESC) AS GENE_ORIG_DESC, - NULL AS VBP_DESC, - MAX(CORP_CODE) AS CORP_CODE, - CASE - WHEN MAX(GENE_ORIG_DESC) = 'ORIG' THEN 1 - WHEN MAX(GENE_ORIG_DESC) = 'Branded Gen' THEN 2 - WHEN MAX(GENE_ORIG_DESC) = 'Unbranded Gen' THEN 3 - WHEN MAX(GENE_ORIG_DESC) = 'TCM' THEN 4 - ELSE 5 END as GEN_RN, - MAX(CORP_DESC) AS CORP_DESC, - MAX(CORP_DESC_C) AS CORP_DESC_C, - NULL AS PACK_RN, - NULL AS PROD_RN, - NULL AS CMPS_RN, - NULL AS DATA_SOURCE, - NULL AS ATC, - NULL AS NEW_CODE, - NULL AS COMMON_NAME, - NULL AS PRODUCT_NAME, - NULL AS MANU_DES_XIEHE, - NULL AS PACK_DES_XIEHE, - NULL AS DRUG_DELIVERY_ROUTE, - NULL AS NFC, - NULL AS CORP_TYPE, - NULL AS LAUNCHTIME, - NULL AS VBP_BRAND -FROM dm.DM_TD_EXT_XIEHE_PACK_PROPERTY -GROUP BY PACK_CODE - --- COMMAND ---------- - --- 获取所有的PACK_CODE,以CHPA为主,其他数据源不存在与CHPA一样的,再取。 -CREATE OR REPLACE TEMPORARY VIEW VIEW_PACK_INFO_TEMP1 -AS -SELECT - PACK_CODE, - PACK_DESC, - PACK_LCH, - PROD_CODE, - PROD_DESC, - PROD_DESC_C, - CMPS_CODE, - CMPS_DESC, - CMPS_DESC_C, - VBP_BATCH, - VBP_IMPLEMENTING_TIME, - STGH_DESC, - BIO_DESC, - ETH_OTC_DESC, - NRDL_DESC, - NRDL_ENTRY_DATE, - EDL_DESC, - TCM_DESC, - PAED_DESC, - GQCE_DESC, - MANU_CODE, - MANU_DESC, - MANU_DESC_C, - MNFL_CODE, - ATC1_CODE, - ATC1_DESC, - ATC1_DESC_C, - ATC2_CODE, - ATC2_DESC, - ATC2_DESC_C, - ATC3_CODE, - ATC3_DESC, - ATC3_DESC_C, - ATC4_CODE, - ATC4_DESC, - ATC4_DESC_C, - APP1_CODE, - APP1_DESC, - APP1_DESC_C, - APP2_CODE, - APP2_DESC, - APP2_DESC_C, - APP3_CODE, - APP3_DESC, - APP3_DESC_C, - GENE_ORIG_DESC, - VBP_DESC, - CORP_CODE, - GEN_RN, - CORP_DESC, - CORP_DESC_C, - PACK_RN, - PROD_RN, - CMPS_RN, - DATA_SOURCE, - ATC, - NEW_CODE, - COMMON_NAME, - PRODUCT_NAME, - MANU_DES_XIEHE, - PACK_DES_XIEHE, - DRUG_DELIVERY_ROUTE, - NFC, - CORP_TYPE, - LAUNCHTIME, - VBP_BRAND -FROM VIEW_CHPA_PACK_INFO AS T1 -UNION ALL -SELECT - PACK_CODE, - PACK_DESC, - PACK_LCH, - PROD_CODE, - PROD_DESC, - PROD_DESC_C, - CMPS_CODE, - CMPS_DESC, - CMPS_DESC_C, - VBP_BATCH, - VBP_IMPLEMENTING_TIME, - STGH_DESC, - BIO_DESC, - ETH_OTC_DESC, - NRDL_DESC, - NRDL_ENTRY_DATE, - EDL_DESC, - TCM_DESC, - PAED_DESC, - GQCE_DESC, - MANU_CODE, - MANU_DESC, - MANU_DESC_C, - MNFL_CODE, - ATC1_CODE, - ATC1_DESC, - ATC1_DESC_C, - ATC2_CODE, - ATC2_DESC, - ATC2_DESC_C, - ATC3_CODE, - ATC3_DESC, - ATC3_DESC_C, - ATC4_CODE, - ATC4_DESC, - ATC4_DESC_C, - APP1_CODE, - APP1_DESC, - APP1_DESC_C, - APP2_CODE, - APP2_DESC, - APP2_DESC_C, - APP3_CODE, - APP3_DESC, - APP3_DESC_C, - GENE_ORIG_DESC, - VBP_DESC, - CORP_CODE, - GEN_RN, - CORP_DESC, - CORP_DESC_C, - PACK_RN, - PROD_RN, - CMPS_RN, - DATA_SOURCE, - ATC, - NEW_CODE, - COMMON_NAME, - PRODUCT_NAME, - MANU_DES_XIEHE, - PACK_DES_XIEHE, - DRUG_DELIVERY_ROUTE, - NFC, - CORP_TYPE, - LAUNCHTIME, - VBP_BRAND -FROM VIEW_COUNTY_PACK_INFO AS T2 -WHERE PACK_CODE not in (select PACK_CODE from VIEW_CHPA_PACK_INFO) -UNION ALL -SELECT - PACK_CODE, - PACK_DESC, - PACK_LCH, - PROD_CODE, - PROD_DESC, - PROD_DESC_C, - CMPS_CODE, - CMPS_DESC, - CMPS_DESC_C, - VBP_BATCH, - VBP_IMPLEMENTING_TIME, - STGH_DESC, - BIO_DESC, - ETH_OTC_DESC, - NRDL_DESC, - NRDL_ENTRY_DATE, - EDL_DESC, - TCM_DESC, - PAED_DESC, - GQCE_DESC, - MANU_CODE, - MANU_DESC, - MANU_DESC_C, - MNFL_CODE, - ATC1_CODE, - ATC1_DESC, - ATC1_DESC_C, - ATC2_CODE, - ATC2_DESC, - ATC2_DESC_C, - ATC3_CODE, - ATC3_DESC, - ATC3_DESC_C, - ATC4_CODE, - ATC4_DESC, - ATC4_DESC_C, - APP1_CODE, - APP1_DESC, - APP1_DESC_C, - APP2_CODE, - APP2_DESC, - APP2_DESC_C, - APP3_CODE, - APP3_DESC, - APP3_DESC_C, - GENE_ORIG_DESC, - VBP_DESC, - CORP_CODE, - GEN_RN, - CORP_DESC, - CORP_DESC_C, - PACK_RN, - PROD_RN, - CMPS_RN, - DATA_SOURCE, - ATC, - NEW_CODE, - COMMON_NAME, - PRODUCT_NAME, - MANU_DES_XIEHE, - PACK_DES_XIEHE, - DRUG_DELIVERY_ROUTE, - NFC, - CORP_TYPE, - LAUNCHTIME, - VBP_BRAND -FROM VIEW_THC_PACK_INFO AS T3 -WHERE PACK_CODE not in (select PACK_CODE from VIEW_CHPA_PACK_INFO) -UNION ALL -SELECT - PACK_CODE, - PACK_DESC, - PACK_LCH, - PROD_CODE, - PROD_DESC, - PROD_DESC_C, - CMPS_CODE, - CMPS_DESC, - CMPS_DESC_C, - VBP_BATCH, - VBP_IMPLEMENTING_TIME, - STGH_DESC, - BIO_DESC, - ETH_OTC_DESC, - NRDL_DESC, - NRDL_ENTRY_DATE, - EDL_DESC, - TCM_DESC, - PAED_DESC, - GQCE_DESC, - MANU_CODE, - MANU_DESC, - MANU_DESC_C, - MNFL_CODE, - ATC1_CODE, - ATC1_DESC, - ATC1_DESC_C, - ATC2_CODE, - ATC2_DESC, - ATC2_DESC_C, - ATC3_CODE, - ATC3_DESC, - ATC3_DESC_C, - ATC4_CODE, - ATC4_DESC, - ATC4_DESC_C, - APP1_CODE, - APP1_DESC, - APP1_DESC_C, - APP2_CODE, - APP2_DESC, - APP2_DESC_C, - APP3_CODE, - APP3_DESC, - APP3_DESC_C, - GENE_ORIG_DESC, - VBP_DESC, - CORP_CODE, - GEN_RN, - CORP_DESC, - CORP_DESC_C, - PACK_RN, - PROD_RN, - CMPS_RN, - DATA_SOURCE, - ATC, - NEW_CODE, - COMMON_NAME, - PRODUCT_NAME, - MANU_DES_XIEHE, - PACK_DES_XIEHE, - DRUG_DELIVERY_ROUTE, - NFC, - CORP_TYPE, - LAUNCHTIME, - VBP_BRAND -FROM VIEW_CHC_PACK_INFO AS T4 -WHERE PACK_CODE not in (select PACK_CODE from VIEW_CHPA_PACK_INFO) -UNION ALL -SELECT - PACK_CODE, - PACK_DESC, - PACK_LCH, - PROD_CODE, - PROD_DESC, - PROD_DESC_C, - CMPS_CODE, - CMPS_DESC, - CMPS_DESC_C, - VBP_BATCH, - VBP_IMPLEMENTING_TIME, - STGH_DESC, - BIO_DESC, - ETH_OTC_DESC, - NRDL_DESC, - NRDL_ENTRY_DATE, - EDL_DESC, - TCM_DESC, - PAED_DESC, - GQCE_DESC, - MANU_CODE, - MANU_DESC, - MANU_DESC_C, - MNFL_CODE, - ATC1_CODE, - ATC1_DESC, - ATC1_DESC_C, - ATC2_CODE, - ATC2_DESC, - ATC2_DESC_C, - ATC3_CODE, - ATC3_DESC, - ATC3_DESC_C, - ATC4_CODE, - ATC4_DESC, - ATC4_DESC_C, - APP1_CODE, - APP1_DESC, - APP1_DESC_C, - APP2_CODE, - APP2_DESC, - APP2_DESC_C, - APP3_CODE, - APP3_DESC, - APP3_DESC_C, - GENE_ORIG_DESC, - VBP_DESC, - CORP_CODE, - GEN_RN, - CORP_DESC, - CORP_DESC_C, - PACK_RN, - PROD_RN, - CMPS_RN, - DATA_SOURCE, - ATC, - NEW_CODE, - COMMON_NAME, - PRODUCT_NAME, - MANU_DES_XIEHE, - PACK_DES_XIEHE, - DRUG_DELIVERY_ROUTE, - NFC, - CORP_TYPE, - LAUNCHTIME, - VBP_BRAND -FROM VIEW_RETAIL_PACK_INFO AS T5 -WHERE PACK_CODE not in (select PACK_CODE from VIEW_CHPA_PACK_INFO) -UNION ALL -SELECT - PACK_CODE, - PACK_DESC, - PACK_LCH, - PROD_CODE, - PROD_DESC, - PROD_DESC_C, - CMPS_CODE, - CMPS_DESC, - CMPS_DESC_C, - VBP_BATCH, - VBP_IMPLEMENTING_TIME, - STGH_DESC, - BIO_DESC, - ETH_OTC_DESC, - NRDL_DESC, - NRDL_ENTRY_DATE, - EDL_DESC, - TCM_DESC, - PAED_DESC, - GQCE_DESC, - MANU_CODE, - MANU_DESC, - MANU_DESC_C, - MNFL_CODE, - ATC1_CODE, - ATC1_DESC, - ATC1_DESC_C, - ATC2_CODE, - ATC2_DESC, - ATC2_DESC_C, - ATC3_CODE, - ATC3_DESC, - ATC3_DESC_C, - ATC4_CODE, - ATC4_DESC, - ATC4_DESC_C, - APP1_CODE, - APP1_DESC, - APP1_DESC_C, - APP2_CODE, - APP2_DESC, - APP2_DESC_C, - APP3_CODE, - APP3_DESC, - APP3_DESC_C, - GENE_ORIG_DESC, - VBP_DESC, - CORP_CODE, - GEN_RN, - CORP_DESC, - CORP_DESC_C, - PACK_RN, - PROD_RN, - CMPS_RN, - DATA_SOURCE, - ATC, - NEW_CODE, - COMMON_NAME, - PRODUCT_NAME, - MANU_DES_XIEHE, - PACK_DES_XIEHE, - DRUG_DELIVERY_ROUTE, - NFC, - CORP_TYPE, - LAUNCHTIME, - VBP_BRAND -FROM VIEW_EC_PACK_INFO AS T6 -WHERE PACK_CODE not in (select PACK_CODE from VIEW_CHPA_PACK_INFO) -UNION ALL -SELECT - PACK_CODE, - PACK_DESC, - PACK_LCH, - PROD_CODE, - PROD_DESC, - PROD_DESC_C, - CMPS_CODE, - CMPS_DESC, - CMPS_DESC_C, - VBP_BATCH, - VBP_IMPLEMENTING_TIME, - STGH_DESC, - BIO_DESC, - ETH_OTC_DESC, - NRDL_DESC, - NRDL_ENTRY_DATE, - EDL_DESC, - TCM_DESC, - PAED_DESC, - GQCE_DESC, - MANU_CODE, - MANU_DESC, - MANU_DESC_C, - MNFL_CODE, - ATC1_CODE, - ATC1_DESC, - ATC1_DESC_C, - ATC2_CODE, - ATC2_DESC, - ATC2_DESC_C, - ATC3_CODE, - ATC3_DESC, - ATC3_DESC_C, - ATC4_CODE, - ATC4_DESC, - ATC4_DESC_C, - APP1_CODE, - APP1_DESC, - APP1_DESC_C, - APP2_CODE, - APP2_DESC, - APP2_DESC_C, - APP3_CODE, - APP3_DESC, - APP3_DESC_C, - GENE_ORIG_DESC, - VBP_DESC, - CORP_CODE, - GEN_RN, - CORP_DESC, - CORP_DESC_C, - PACK_RN, - PROD_RN, - CMPS_RN, - DATA_SOURCE, - ATC, - NEW_CODE, - COMMON_NAME, - PRODUCT_NAME, - MANU_DES_XIEHE, - PACK_DES_XIEHE, - DRUG_DELIVERY_ROUTE, - NFC, - CORP_TYPE, - LAUNCHTIME, - VBP_BRAND -FROM VIEW_AIA_PACK_INFO AS T7 -WHERE PACK_CODE not in (select PACK_CODE from VIEW_CHPA_PACK_INFO) -UNION ALL -SELECT - PACK_CODE, - PACK_DESC, - PACK_LCH, - PROD_CODE, - PROD_DESC, - PROD_DESC_C, - CMPS_CODE, - CMPS_DESC, - CMPS_DESC_C, - VBP_BATCH, - VBP_IMPLEMENTING_TIME, - STGH_DESC, - BIO_DESC, - ETH_OTC_DESC, - NRDL_DESC, - NRDL_ENTRY_DATE, - EDL_DESC, - TCM_DESC, - PAED_DESC, - GQCE_DESC, - MANU_CODE, - MANU_DESC, - MANU_DESC_C, - MNFL_CODE, - ATC1_CODE, - ATC1_DESC, - ATC1_DESC_C, - ATC2_CODE, - ATC2_DESC, - ATC2_DESC_C, - ATC3_CODE, - ATC3_DESC, - ATC3_DESC_C, - ATC4_CODE, - ATC4_DESC, - ATC4_DESC_C, - APP1_CODE, - APP1_DESC, - APP1_DESC_C, - APP2_CODE, - APP2_DESC, - APP2_DESC_C, - APP3_CODE, - APP3_DESC, - APP3_DESC_C, - GENE_ORIG_DESC, - VBP_DESC, - CORP_CODE, - GEN_RN, - CORP_DESC, - CORP_DESC_C, - PACK_RN, - PROD_RN, - CMPS_RN, - DATA_SOURCE, - ATC, - NEW_CODE, - COMMON_NAME, - PRODUCT_NAME, - MANU_DES_XIEHE, - PACK_DES_XIEHE, - DRUG_DELIVERY_ROUTE, - NFC, - CORP_TYPE, - LAUNCHTIME, - VBP_BRAND -FROM VIEW_XIEHE_PACK_INFO AS T8 -WHERE PACK_CODE not in (select PACK_CODE from VIEW_CHPA_PACK_INFO) - --- COMMAND ---------- - --- 4. 如果PACK_CODE在2~8多个表都有,任选一个(row_number()取第一个) -CREATE OR REPLACE TEMPORARY VIEW VIEW_PACK_INFO_TEMP2 -AS -SELECT - PACK_CODE, - PACK_DESC, - PACK_LCH, - PROD_CODE, - PROD_DESC, - PROD_DESC_C, - CMPS_CODE, - CMPS_DESC, - CMPS_DESC_C, - VBP_BATCH, - VBP_IMPLEMENTING_TIME, - STGH_DESC, - BIO_DESC, - ETH_OTC_DESC, - NRDL_DESC, - NRDL_ENTRY_DATE, - EDL_DESC, - TCM_DESC, - PAED_DESC, - GQCE_DESC, - MANU_CODE, - MANU_DESC, - MANU_DESC_C, - MNFL_CODE, - ATC1_CODE, - ATC1_DESC, - ATC1_DESC_C, - ATC2_CODE, - ATC2_DESC, - ATC2_DESC_C, - ATC3_CODE, - ATC3_DESC, - ATC3_DESC_C, - ATC4_CODE, - ATC4_DESC, - ATC4_DESC_C, - APP1_CODE, - APP1_DESC, - APP1_DESC_C, - APP2_CODE, - APP2_DESC, - APP2_DESC_C, - APP3_CODE, - APP3_DESC, - APP3_DESC_C, - GENE_ORIG_DESC, - VBP_DESC, - CORP_CODE, - GEN_RN, - CORP_DESC, - CORP_DESC_C, - PACK_RN, - PROD_RN, - CMPS_RN, - DATA_SOURCE, - ATC, - NEW_CODE, - COMMON_NAME, - PRODUCT_NAME, - MANU_DES_XIEHE, - PACK_DES_XIEHE, - DRUG_DELIVERY_ROUTE, - NFC, - CORP_TYPE, - LAUNCHTIME, - VBP_BRAND -FROM ( - SELECT - PACK_CODE, - PACK_DESC, - PACK_LCH, - PROD_CODE, - PROD_DESC, - PROD_DESC_C, - CMPS_CODE, - CMPS_DESC, - CMPS_DESC_C, - VBP_BATCH, - VBP_IMPLEMENTING_TIME, - STGH_DESC, - BIO_DESC, - ETH_OTC_DESC, - NRDL_DESC, - NRDL_ENTRY_DATE, - EDL_DESC, - TCM_DESC, - PAED_DESC, - GQCE_DESC, - MANU_CODE, - MANU_DESC, - MANU_DESC_C, - MNFL_CODE, - ATC1_CODE, - ATC1_DESC, - ATC1_DESC_C, - ATC2_CODE, - ATC2_DESC, - ATC2_DESC_C, - ATC3_CODE, - ATC3_DESC, - ATC3_DESC_C, - ATC4_CODE, - ATC4_DESC, - ATC4_DESC_C, - APP1_CODE, - APP1_DESC, - APP1_DESC_C, - APP2_CODE, - APP2_DESC, - APP2_DESC_C, - APP3_CODE, - APP3_DESC, - APP3_DESC_C, - GENE_ORIG_DESC, - VBP_DESC, - CORP_CODE, - GEN_RN, - CORP_DESC, - CORP_DESC_C, - PACK_RN, - PROD_RN, - CMPS_RN, - DATA_SOURCE, - ATC, - NEW_CODE, - COMMON_NAME, - PRODUCT_NAME, - MANU_DES_XIEHE, - PACK_DES_XIEHE, - DRUG_DELIVERY_ROUTE, - NFC, - CORP_TYPE, - LAUNCHTIME, - VBP_BRAND, - row_number() over (partition by PACK_CODE order by PACK_DESC) as rn - FROM VIEW_PACK_INFO_TEMP1 -) t -where rn = 1 - --- COMMAND ---------- - -CREATE OR REPLACE TEMPORARY VIEW VIEW_PACK_INFO_TEMP3 -AS -SELECT - T1.PACK_CODE, - T1.PACK_DESC, - T1.PACK_LCH, - T1.PROD_CODE, - T1.PROD_DESC, - T1.PROD_DESC_C, - T1.CMPS_CODE, - T1.CMPS_DESC, - CASE - WHEN UPPER(T1.CMPS_DESC) = 'TRADITIONAL CHINESE MEDICINE' THEN '传统中药' - ELSE T1.CMPS_DESC_C END AS CMPS_DESC_C, - NVL(T2.VBP_BATCH, '') VBP_BATCH, - NVL(T2.VBP_IMPLEMENTING_TIME, '') VBP_IMPLEMENTING_TIME, - T1.STGH_DESC, - T1.BIO_DESC, - T1.ETH_OTC_DESC, - T1.NRDL_DESC, - T1.NRDL_ENTRY_DATE, - T1.EDL_DESC, - T1.TCM_DESC, - T1.PAED_DESC, - T1.GQCE_DESC, - T1.MANU_CODE, - T1.MANU_DESC, - T1.MANU_DESC_C, - T1.MNFL_CODE, - T1.ATC1_CODE, - T1.ATC1_DESC, - T1.ATC1_DESC_C, - T1.ATC2_CODE, - T1.ATC2_DESC, - T1.ATC2_DESC_C, - T1.ATC3_CODE, - T1.ATC3_DESC, - T1.ATC3_DESC_C, - T1.ATC4_CODE, - T1.ATC4_DESC, - T1.ATC4_DESC_C, - T1.APP1_CODE, - T1.APP1_DESC, - T1.APP1_DESC_C, - T1.APP2_CODE, - T1.APP2_DESC, - T1.APP2_DESC_C, - T1.APP3_CODE, - T1.APP3_DESC, - T1.APP3_DESC_C, - T1.GENE_ORIG_DESC, - NVL(T1.VBP_DESC, 'Non VBP') AS VBP_DESC, - T1.CORP_CODE, - T1.GEN_RN, - T1.CORP_DESC, - T1.CORP_DESC_C, - T1.PACK_RN, - T1.PROD_RN, - T1.CMPS_RN, - T1.DATA_SOURCE, - T1.ATC, - T1.NEW_CODE, - T1.COMMON_NAME, - T1.PRODUCT_NAME, - T1.MANU_DES_XIEHE, - T1.PACK_DES_XIEHE, - T1.DRUG_DELIVERY_ROUTE, - T1.NFC, - T1.CORP_TYPE, - T1.LAUNCHTIME, - T1.VBP_BRAND -FROM VIEW_PACK_INFO_TEMP2 AS T1 -LEFT JOIN dwd.dwd_gnd_ims_vbp_information AS T2 ON T1.PACK_CODE = T2.PACK_CODE - --- COMMAND ---------- - -CREATE OR REPLACE TEMPORARY VIEW FINAL -AS -SELECT - PACK_CODE AS PACK_CODE, - NULL AS PACK_DESC, - NULL AS PACK_LCH, - NULL AS PROD_CODE, - NULL AS PROD_DESC, - NULL AS PROD_DESC_C, - NULL AS CMPS_CODE, - NULL AS CMPS_DESC, - NULL AS CMPS_DESC_C, - NULL AS VBP_BATCH, - NULL AS VBP_IMPLEMENTING_TIME, - NULL AS STGH_DESC, - NULL AS BIO_DESC, - NULL AS ETH_OTC_DESC, - NULL AS NRDL_DESC, - NULL AS NRDL_ENTRY_DATE, - NULL AS EDL_DESC, - NULL AS TCM_DESC, - NULL AS PAED_DESC, - NULL AS GQCE_DESC, - NULL AS MANU_CODE, - NULL AS MANU_DESC, - NULL AS MANU_DESC_C, - NULL AS MNFL_CODE, - NULL AS ATC1_CODE, - NULL AS ATC1_DESC, - NULL AS ATC1_DESC_C, - NULL AS ATC2_CODE, - NULL AS ATC2_DESC, - NULL AS ATC2_DESC_C, - NULL AS ATC3_CODE, - NULL AS ATC3_DESC, - NULL AS ATC3_DESC_C, - NULL AS ATC4_CODE, - NULL AS ATC4_DESC, - NULL AS ATC4_DESC_C, - NULL AS APP1_CODE, - NULL AS APP1_DESC, - NULL AS APP1_DESC_C, - NULL AS APP2_CODE, - NULL AS APP2_DESC, - NULL AS APP2_DESC_C, - NULL AS APP3_CODE, - NULL AS APP3_DESC, - NULL AS APP3_DESC_C, - NULL AS GENE_ORIG_DESC, - NULL AS VBP_DESC, - NULL AS CORP_CODE, - NULL AS GEN_RN, - NULL AS CORP_DESC, - NULL AS CORP_DESC_C, - NULL AS PACK_RN, - NULL AS PROD_RN, - NULL AS CMPS_RN, - NULL AS DATA_SOURCE, - NULL AS ATC, - NULL AS NEW_CODE, - NULL AS COMMON_NAME, - NULL AS PRODUCT_NAME, - NULL AS MANU_DES_XIEHE, - NULL AS PACK_DES_XIEHE, - NULL AS DRUG_DELIVERY_ROUTE, - NULL AS NFC, - NULL AS CORP_TYPE, - NULL AS LAUNCHTIME, - NULL AS VBP_BRAND, - 1 AS REPLENISH_FALG -FROM -( - SELECT - PACK_CODE - FROM DM.DM_TF_EXT_UNIONALL_SALES - GROUP BY - PACK_CODE -) AS T1 -WHERE PACK_CODE NOT IN (SELECT PACK_CODE FROM VIEW_PACK_INFO_TEMP3) -UNION ALL -SELECT - PACK_CODE, - PACK_DESC, - PACK_LCH, - PROD_CODE, - PROD_DESC, - PROD_DESC_C, - CMPS_CODE, - CMPS_DESC, - CMPS_DESC_C, - VBP_BATCH, - VBP_IMPLEMENTING_TIME, - STGH_DESC, - BIO_DESC, - ETH_OTC_DESC, - NRDL_DESC, - NRDL_ENTRY_DATE, - EDL_DESC, - TCM_DESC, - PAED_DESC, - GQCE_DESC, - MANU_CODE, - MANU_DESC, - MANU_DESC_C, - MNFL_CODE, - ATC1_CODE, - ATC1_DESC, - ATC1_DESC_C, - ATC2_CODE, - ATC2_DESC, - ATC2_DESC_C, - ATC3_CODE, - ATC3_DESC, - ATC3_DESC_C, - ATC4_CODE, - ATC4_DESC, - ATC4_DESC_C, - APP1_CODE, - APP1_DESC, - APP1_DESC_C, - APP2_CODE, - APP2_DESC, - APP2_DESC_C, - APP3_CODE, - APP3_DESC, - APP3_DESC_C, - GENE_ORIG_DESC, - VBP_DESC, - CORP_CODE, - GEN_RN, - CORP_DESC, - CORP_DESC_C, - PACK_RN, - PROD_RN, - CMPS_RN, - DATA_SOURCE, - ATC, - NEW_CODE, - COMMON_NAME, - PRODUCT_NAME, - MANU_DES_XIEHE, - PACK_DES_XIEHE, - DRUG_DELIVERY_ROUTE, - NFC, - CORP_TYPE, - LAUNCHTIME, - VBP_BRAND, - 0 AS REPLENISH_FALG -FROM VIEW_PACK_INFO_TEMP3 - --- COMMAND ---------- - -INSERT OVERWRITE TABLE DM.DM_TD_EXT_UNIONALL_PACKINFO -SELECT - PACK_CODE, - PACK_DESC, - PACK_LCH, - PROD_CODE, - CASE - WHEN PROD_DESC IS NULL THEN 'OTHERS' - ELSE PROD_DESC END AS PROD_DESC, - CASE - WHEN PROD_DESC_C IS NULL THEN 'OTHERS' - ELSE PROD_DESC_C END AS PROD_DESC_C, - CMPS_CODE, - CMPS_DESC, - CMPS_DESC_C, - VBP_BATCH, - VBP_IMPLEMENTING_TIME, - STGH_DESC, - BIO_DESC, - ETH_OTC_DESC, - NRDL_DESC, - NRDL_ENTRY_DATE, - EDL_DESC, - TCM_DESC, - PAED_DESC, - GQCE_DESC, - MANU_CODE, - MANU_DESC, - MANU_DESC_C, - MNFL_CODE, - ATC1_CODE, - ATC1_DESC, - ATC1_DESC_C, - ATC2_CODE, - ATC2_DESC, - ATC2_DESC_C, - ATC3_CODE, - ATC3_DESC, - ATC3_DESC_C, - ATC4_CODE, - ATC4_DESC, - ATC4_DESC_C, - APP1_CODE, - APP1_DESC, - APP1_DESC_C, - APP2_CODE, - APP2_DESC, - APP2_DESC_C, - APP3_CODE, - APP3_DESC, - APP3_DESC_C, - GENE_ORIG_DESC, - VBP_DESC, - CORP_CODE, - GEN_RN, - CASE - WHEN CORP_DESC IS NULL THEN 'OTHERS' - ELSE CORP_DESC END AS CORP_DESC, - CASE - WHEN CORP_DESC_C IS NULL THEN 'OTHERS' - ELSE CORP_DESC_C END AS CORP_DESC_C, - PACK_RN, - PROD_RN, - CMPS_RN, - DATA_SOURCE, - ATC, - NEW_CODE, - COMMON_NAME, - PRODUCT_NAME, - MANU_DES_XIEHE, - PACK_DES_XIEHE, - DRUG_DELIVERY_ROUTE, - NFC, - CORP_TYPE, - LAUNCHTIME, - VBP_BRAND, - REPLENISH_FALG, - FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(),'UTC+8') AS ETL_INSERT_DT, - FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(),'UTC+8') AS ETL_UPDATE_DT -FROM FINAL \ No newline at end of file diff --git a/EXTERNAL/UNIONALL/DM_TD_EXT_UNIONALL_PACKINFO.sql:Zone.Identifier b/EXTERNAL/UNIONALL/DM_TD_EXT_UNIONALL_PACKINFO.sql:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2x= t2.eff_start - AND t1.YYYYMM <= t2.eff_end - LEFT JOIN mapping_cleaned t3 ON t1.PACK_CODE = t3.PACK_CODE - AND t1.DATA_SOURCE = t3.DATASOURCE - AND (t1.YYYYMM - 100) >= t3.eff_start - AND (t1.YYYYMM - 100) <= t3.eff_end - AND t2.MARKET = t3.MARKET -- 保持原逻辑 - ) -SELECT - NVL(MARKET, 'ALL Market') AS MARKET, - NVL(KEY_COMPETITOR, 'OTHERS') AS KEY_COMPETITOR, - CASE - WHEN trim(lower(CLASS)) = 'others' THEN 'OTHERS' - WHEN CLASS IS NULL THEN 'OTHERS' - ELSE CLASS - END AS CLASS, - YYYYMM, - PACK_CODE, - CORP_CODE, - AUDIT_CODE, - PLATFORM_TYPE, - STORE_NAME, - STORE_TYPE, - REGION_TYPE, - DATA_SOURCE, - PACK_FLAG, - PROD_FLAG, - DTP_FLAG, - CMPS_FLAG, - NEW_CODE, - INST_CODE, - NULL AS AIA_HP_FLAG, - DEPT_NAME, - H_LEVEL, - REIMBURSE, - REIMBURSE_TYPE, - PRESCRIPTION_SOURCE AS PRESCRIPTION_TYPE, - PRESCRIPTION, - PRESCRIPTION_LY, - -- 预计算公用因子,避免重复计算 - NVL(NVL(cy_market_ratio, 1) * cy_value_ratio, 1) AS VA, - NVL(NVL(cy_market_ratio, 1) * cy_unit_ratio, 1) AS UT, - NVL(NVL(cy_market_ratio, 1) * cy_cu_ratio, 1) AS CU, - NVL(NVL(cy_market_ratio, 1) * cy_pdot_ratio, 1) AS PT, - CAST( - SALES_UNIT_CAL * NVL(cy_unit_ratio, 1) * NVL(cy_market_ratio, 1) AS DECIMAL(35, 6) - ) AS SALES_UNIT_CAL, - CAST( - SALES_UNIT_CAL_LY * NVL(ly_unit_ratio, 1) * NVL(ly_market_ratio, 1) AS DECIMAL(35, 6) - ) AS SALES_UNIT_CAL_LY, - CAST( - SALES_VALUE_CAL * NVL(cy_value_ratio, 1) * NVL(cy_market_ratio, 1) AS DECIMAL(35, 6) - ) AS SALES_VALUE_CAL, - CAST( - SALES_VALUE_CAL_LY * NVL(ly_value_ratio, 1) * NVL(ly_market_ratio, 1) AS DECIMAL(35, 6) - ) AS SALES_VALUE_CAL_LY, - CAST( - CONUTING_UNIT * NVL(cy_cu_ratio, 1) * NVL(cy_market_ratio, 1) AS DECIMAL(35, 6) - ) AS CONUTING_UNIT, - CAST( - CONUTING_UNIT_LY * NVL(ly_cu_ratio, 1) * NVL(ly_market_ratio, 1) AS DECIMAL(35, 6) - ) AS CONUTING_UNIT_LY, - CAST( - CONUTING_UNIT * NVL(cy_pdot_ratio, 1) * NVL(cy_market_ratio, 1) AS DECIMAL(35, 6) - ) AS PDOT, - CAST( - CONUTING_UNIT_LY * NVL(ly_pdot_ratio, 1) * NVL(ly_market_ratio, 1) AS DECIMAL(35, 6) - ) AS PDOT_LY, - FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(), 'UTC+8') AS ETL_INSERT_DT, - FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(), 'UTC+8') AS ETL_UPDATE_DT -FROM - joined; - --- COMMAND ---------- - --- DBTITLE 1,maket_sales_cht -INSERT OVERWRITE TABLE - DM.DM_TF_EXT_THC_MARKET_SALES_CHT -WITH - t1_filtered AS ( - SELECT - * - FROM - DM.DM_TF_EXT_THC_SALES - WHERE DATA_SOURCE = 'THC(Quarterly)' - and AUDIT_CODE <> 'CHT' - -- 谓词下推,最先过滤 - ), - mapping_cleaned AS ( - SELECT - * - FROM - ( - SELECT - PACK_CODE, - 'THC(Quarterly)' as DATASOURCE, - MARKET, - KEY_COMPETITOR, - CLASS, - MARKET_RATIO, - Value_brand_Ratio, - Unit_brand_Ratio, - CountingUnit_brand_Ratio, - PDOT_brand_Ratio, - GREATEST ( - starttime, - Value_brand_Ratio_start, - Unit_brand_start, - CountingUnit_brand_start, - PDOT_brand_start - ) AS eff_start, - LEAST ( - endtime, - Value_brand_Ratio_end, - Unit_brand_end, - CountingUnit_brand_end, - PDOT_brand_end - ) AS eff_end - FROM - DM.dm_td_ext_THC_market_pack_mapping - ) tmp - WHERE - eff_start <= eff_end -- 在外层子查询中过滤 - ), - joined AS ( - SELECT - /*+ BROADCAST(t2, t3) */ - t1.*, - -- 当年 ratio - t2.MARKET, - t2.KEY_COMPETITOR, - t2.CLASS, - t2.MARKET_RATIO AS cy_market_ratio, - t2.Value_brand_Ratio AS cy_value_ratio, - t2.Unit_brand_Ratio AS cy_unit_ratio, - t2.CountingUnit_brand_Ratio AS cy_cu_ratio, - t2.PDOT_brand_Ratio AS cy_pdot_ratio, - -- 去年 ratio - t3.MARKET_RATIO AS ly_market_ratio, - t3.Value_brand_Ratio AS ly_value_ratio, - t3.Unit_brand_Ratio AS ly_unit_ratio, - t3.CountingUnit_brand_Ratio AS ly_cu_ratio, - t3.PDOT_brand_Ratio AS ly_pdot_ratio - FROM - t1_filtered t1 - LEFT JOIN mapping_cleaned t2 ON t1.PACK_CODE = t2.PACK_CODE - AND t1.DATA_SOURCE = t2.DATASOURCE - AND t1.YYYYMM >= t2.eff_start - AND t1.YYYYMM <= t2.eff_end - LEFT JOIN mapping_cleaned t3 ON t1.PACK_CODE = t3.PACK_CODE - AND t1.DATA_SOURCE = t3.DATASOURCE - AND (t1.YYYYMM - 100) >= t3.eff_start - AND (t1.YYYYMM - 100) <= t3.eff_end - AND t2.MARKET = t3.MARKET -- 保持原逻辑 - ) -SELECT - NVL(MARKET, 'ALL Market') AS MARKET, - NVL(KEY_COMPETITOR, 'OTHERS') AS KEY_COMPETITOR, - CASE - WHEN trim(lower(CLASS)) = 'others' THEN 'OTHERS' - WHEN CLASS IS NULL THEN 'OTHERS' - ELSE CLASS - END AS CLASS, - YYYYMM, - PACK_CODE, - CORP_CODE, - AUDIT_CODE, - PLATFORM_TYPE, - STORE_NAME, - STORE_TYPE, - REGION_TYPE, - DATA_SOURCE, - PACK_FLAG, - PROD_FLAG, - DTP_FLAG, - CMPS_FLAG, - NEW_CODE, - INST_CODE, - NULL AS AIA_HP_FLAG, - DEPT_NAME, - H_LEVEL, - REIMBURSE, - REIMBURSE_TYPE, - PRESCRIPTION_SOURCE AS PRESCRIPTION_TYPE, - PRESCRIPTION, - PRESCRIPTION_LY, - -- 预计算公用因子,避免重复计算 - NVL(NVL(cy_market_ratio, 1) * cy_value_ratio, 1) AS VA, - NVL(NVL(cy_market_ratio, 1) * cy_unit_ratio, 1) AS UT, - NVL(NVL(cy_market_ratio, 1) * cy_cu_ratio, 1) AS CU, - NVL(NVL(cy_market_ratio, 1) * cy_pdot_ratio, 1) AS PT, - CAST( - SALES_UNIT_CAL * NVL(cy_unit_ratio, 1) * NVL(cy_market_ratio, 1) AS DECIMAL(35, 6) - ) AS SALES_UNIT_CAL, - CAST( - SALES_UNIT_CAL_LY * NVL(ly_unit_ratio, 1) * NVL(ly_market_ratio, 1) AS DECIMAL(35, 6) - ) AS SALES_UNIT_CAL_LY, - CAST( - SALES_VALUE_CAL * NVL(cy_value_ratio, 1) * NVL(cy_market_ratio, 1) AS DECIMAL(35, 6) - ) AS SALES_VALUE_CAL, - CAST( - SALES_VALUE_CAL_LY * NVL(ly_value_ratio, 1) * NVL(ly_market_ratio, 1) AS DECIMAL(35, 6) - ) AS SALES_VALUE_CAL_LY, - CAST( - CONUTING_UNIT * NVL(cy_cu_ratio, 1) * NVL(cy_market_ratio, 1) AS DECIMAL(35, 6) - ) AS CONUTING_UNIT, - CAST( - CONUTING_UNIT_LY * NVL(ly_cu_ratio, 1) * NVL(ly_market_ratio, 1) AS DECIMAL(35, 6) - ) AS CONUTING_UNIT_LY, - CAST( - CONUTING_UNIT * NVL(cy_pdot_ratio, 1) * NVL(cy_market_ratio, 1) AS DECIMAL(35, 6) - ) AS PDOT, - CAST( - CONUTING_UNIT_LY * NVL(ly_pdot_ratio, 1) * NVL(ly_market_ratio, 1) AS DECIMAL(35, 6) - ) AS PDOT_LY, - FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(), 'UTC+8') AS ETL_INSERT_DT, - FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(), 'UTC+8') AS ETL_UPDATE_DT -FROM - joined; \ No newline at end of file diff --git a/EXTERNAL/UNIONALL/DM_TF_EXT_UNIONALL_MARKET_SALES.sql:Zone.Identifier b/EXTERNAL/UNIONALL/DM_TF_EXT_UNIONALL_MARKET_SALES.sql:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2x=t2.starttime and t1.YYYYMM <=t2.endtime -and t1.YYYYMM >= t2.Value_brand_Ratio_start and t1.YYYYMM <=t2.Value_brand_Ratio_end -and t1.YYYYMM >= t2.Unit_brand_start and t1.YYYYMM <=t2.Unit_brand_end -and t1.YYYYMM >= t2.CountingUnit_brand_start and t1.YYYYMM <=t2.CountingUnit_brand_end -and t1.YYYYMM >= t2.PDOT_brand_start and t1.YYYYMM <=t2.PDOT_brand_end -LEFT JOIN DM.dm_td_ext_unionall_market_pack_mapping t3 -on t1.PACK_CODE = t3.PACK_CODE and t1.DATA_SOURCE = t3.DATASOURCE -and (t1.YYYYMM-100) >=t3.starttime and (t1.YYYYMM-100) <=t3.endtime -and (t1.YYYYMM-100) >= t3.Value_brand_Ratio_start and (t1.YYYYMM-100) <=t3.Value_brand_Ratio_end -and (t1.YYYYMM-100) >= t3.Unit_brand_start and (t1.YYYYMM-100) <=t3.Unit_brand_end -and (t1.YYYYMM-100) >= t3.CountingUnit_brand_start and (t1.YYYYMM-100) <=t3.CountingUnit_brand_end -and (t1.YYYYMM-100) >= t3.PDOT_brand_start and (t1.YYYYMM-100) <=t3.PDOT_brand_end -and t2.market = t3.MARKET -where t1.DATA_SOURCE = 'IQVIA-CHPA(Monthly)' - --- COMMAND ---------- - --- DBTITLE 1,AIA -CREATE OR REPLACE TEMPORARY VIEW AIA -AS -SELECT -nvl(t2.market,'ALL Market') MARKET -,nvl(t2.KEY_COMPETITOR,'OTHERS') as KEY_COMPETITOR -,nvl(t2.CLASS,'Others') as CLASS -,t1.YYYYMM -,t1.PACK_CODE -,t1.CORP_CODE -,t1.AUDIT_CODE -,t1.PLATFORM_TYPE -,t1.STORE_NAME -,t1.STORE_TYPE -,t1.REGION_TYPE -,t1.DATA_SOURCE -,t1.PACK_FLAG -,t1.PROD_FLAG -,t1.DTP_FLAG -,t1.CMPS_FLAG -,t1.NEW_CODE -,t1.INST_CODE -,NULL AS AIA_HP_FLAG -,t1.DEPT_NAME -,t1.H_LEVEL -,t1.REIMBURSE -,t1.REIMBURSE_TYPE -,PRESCRIPTION_SOURCE AS PRESCRIPTION_TYPE -,t1.PRESCRIPTION -,t1.PRESCRIPTION_LY -,nvl(nvl(t2.MARKET_RATIO,1)*t2.Value_brand_Ratio,1) as VA -,nvl(nvl(t2.MARKET_RATIO,1)*t2.Unit_brand_Ratio,1) AS UT -,nvl(nvl(t2.MARKET_RATIO,1)*t2.CountingUnit_brand_Ratio,1) AS CU -,nvl(nvl(t2.MARKET_RATIO,1)*t2.PDOT_brand_Ratio,1) AS PT -,cast(t1.SALES_UNIT_CAL * nvl(t2.Unit_brand_Ratio,1) *nvl(t2.MARKET_RATIO,1) as decimal(35,6)) AS SALES_UNIT_CAL -,cast(t1.SALES_UNIT_CAL_LY * nvl(t3.Unit_brand_Ratio,1) *nvl(t3.MARKET_RATIO,1) as decimal(35,6)) AS SALES_UNIT_CAL_LY -,cast(t1.SALES_VALUE_CAL * nvl(t2.Value_brand_Ratio,1) *nvl(t2.MARKET_RATIO,1) as decimal(35,6)) AS SALES_VALUE_CAL -,cast(t1.SALES_VALUE_CAL_LY * nvl(t3.Value_brand_Ratio,1) *nvl(t3.MARKET_RATIO,1) as decimal(35,6)) AS SALES_VALUE_CAL_LY -,cast(t1.CONUTING_UNIT * nvl(t2.CountingUnit_brand_Ratio,1) *nvl(t2.MARKET_RATIO,1) as decimal(35,6)) AS CONUTING_UNIT -,cast(t1.CONUTING_UNIT_LY * nvl(t3.CountingUnit_brand_Ratio,1) *nvl(t3.MARKET_RATIO,1) as decimal(35,6)) AS CONUTING_UNIT_LY -,cast(t1.CONUTING_UNIT * nvl(t2.PDOT_brand_Ratio,1) *nvl(t2.MARKET_RATIO,1) as decimal(35,6)) AS PDOT -,cast(t1.CONUTING_UNIT_LY * nvl(t3.PDOT_brand_Ratio,1) *nvl(t3.MARKET_RATIO,1) as decimal(35,6)) AS PDOT_LY -FROM DM.DM_TF_EXT_UNIONALL_SALES t1 -LEFT JOIN DM.dm_td_ext_unionall_market_pack_mapping t2 -on t1.PACK_CODE = t2.PACK_CODE and t1.DATA_SOURCE = t2.DATASOURCE -and t1.YYYYMM >=t2.starttime and t1.YYYYMM <=t2.endtime -and t1.YYYYMM >= t2.Value_brand_Ratio_start and t1.YYYYMM <=t2.Value_brand_Ratio_end -and t1.YYYYMM >= t2.Unit_brand_start and t1.YYYYMM <=t2.Unit_brand_end -and t1.YYYYMM >= t2.CountingUnit_brand_start and t1.YYYYMM <=t2.CountingUnit_brand_end -and t1.YYYYMM >= t2.PDOT_brand_start and t1.YYYYMM <=t2.PDOT_brand_end -LEFT JOIN DM.dm_td_ext_unionall_market_pack_mapping t3 -on t1.PACK_CODE = t3.PACK_CODE and t1.DATA_SOURCE = t3.DATASOURCE -and (t1.YYYYMM-100) >=t3.starttime and (t1.YYYYMM-100) <=t3.endtime -and (t1.YYYYMM-100) >= t3.Value_brand_Ratio_start and (t1.YYYYMM-100) <=t3.Value_brand_Ratio_end -and (t1.YYYYMM-100) >= t3.Unit_brand_start and (t1.YYYYMM-100) <=t3.Unit_brand_end -and (t1.YYYYMM-100) >= t3.CountingUnit_brand_start and (t1.YYYYMM-100) <=t3.CountingUnit_brand_end -and (t1.YYYYMM-100) >= t3.PDOT_brand_start and (t1.YYYYMM-100) <=t3.PDOT_brand_end -and t2.market = t3.MARKET -where t1.DATA_SOURCE = 'AIA(Monthly)' --- and YYYYMM >=202501 - --- COMMAND ---------- - --- DBTITLE 1,CHC -CREATE OR REPLACE TEMPORARY VIEW CHC -AS -SELECT -nvl(t2.market,'ALL Market') MARKET -,nvl(t2.KEY_COMPETITOR,'OTHERS') as KEY_COMPETITOR -,nvl(t2.CLASS,'Others') as CLASS -,t1.YYYYMM -,t1.PACK_CODE -,t1.CORP_CODE -,t1.AUDIT_CODE -,t1.PLATFORM_TYPE -,t1.STORE_NAME -,t1.STORE_TYPE -,t1.REGION_TYPE -,t1.DATA_SOURCE -,t1.PACK_FLAG -,t1.PROD_FLAG -,t1.DTP_FLAG -,t1.CMPS_FLAG -,t1.NEW_CODE -,t1.INST_CODE -,NULL AS AIA_HP_FLAG -,t1.DEPT_NAME -,t1.H_LEVEL -,t1.REIMBURSE -,t1.REIMBURSE_TYPE -,PRESCRIPTION_SOURCE AS PRESCRIPTION_TYPE -,t1.PRESCRIPTION -,t1.PRESCRIPTION_LY -,nvl(nvl(t2.MARKET_RATIO,1)*t2.Value_brand_Ratio,1) as VA -,nvl(nvl(t2.MARKET_RATIO,1)*t2.Unit_brand_Ratio,1) AS UT -,nvl(nvl(t2.MARKET_RATIO,1)*t2.CountingUnit_brand_Ratio,1) AS CU -,nvl(nvl(t2.MARKET_RATIO,1)*t2.PDOT_brand_Ratio,1) AS PT -,cast(t1.SALES_UNIT_CAL * nvl(t2.Unit_brand_Ratio,1) *nvl(t2.MARKET_RATIO,1) as decimal(35,6)) AS SALES_UNIT_CAL -,cast(t1.SALES_UNIT_CAL_LY * nvl(t3.Unit_brand_Ratio,1) *nvl(t3.MARKET_RATIO,1) as decimal(35,6)) AS SALES_UNIT_CAL_LY -,cast(t1.SALES_VALUE_CAL * nvl(t2.Value_brand_Ratio,1) *nvl(t2.MARKET_RATIO,1) as decimal(35,6)) AS SALES_VALUE_CAL -,cast(t1.SALES_VALUE_CAL_LY * nvl(t3.Value_brand_Ratio,1) *nvl(t3.MARKET_RATIO,1) as decimal(35,6)) AS SALES_VALUE_CAL_LY -,cast(t1.CONUTING_UNIT * nvl(t2.CountingUnit_brand_Ratio,1) *nvl(t2.MARKET_RATIO,1) as decimal(35,6)) AS CONUTING_UNIT -,cast(t1.CONUTING_UNIT_LY * nvl(t3.CountingUnit_brand_Ratio,1) *nvl(t3.MARKET_RATIO,1) as decimal(35,6)) AS CONUTING_UNIT_LY -,cast(t1.CONUTING_UNIT * nvl(t2.PDOT_brand_Ratio,1) *nvl(t2.MARKET_RATIO,1) as decimal(35,6)) AS PDOT -,cast(t1.CONUTING_UNIT_LY * nvl(t3.PDOT_brand_Ratio,1) *nvl(t3.MARKET_RATIO,1) as decimal(35,6)) AS PDOT_LY -FROM DM.DM_TF_EXT_UNIONALL_SALES t1 -LEFT JOIN DM.dm_td_ext_unionall_market_pack_mapping t2 -on t1.PACK_CODE = t2.PACK_CODE and t1.DATA_SOURCE = t2.DATASOURCE -and t1.YYYYMM >=t2.starttime and t1.YYYYMM <=t2.endtime -and t1.YYYYMM >= t2.Value_brand_Ratio_start and t1.YYYYMM <=t2.Value_brand_Ratio_end -and t1.YYYYMM >= t2.Unit_brand_start and t1.YYYYMM <=t2.Unit_brand_end -and t1.YYYYMM >= t2.CountingUnit_brand_start and t1.YYYYMM <=t2.CountingUnit_brand_end -and t1.YYYYMM >= t2.PDOT_brand_start and t1.YYYYMM <=t2.PDOT_brand_end -LEFT JOIN DM.dm_td_ext_unionall_market_pack_mapping t3 -on t1.PACK_CODE = t3.PACK_CODE and t1.DATA_SOURCE = t3.DATASOURCE -and (t1.YYYYMM-100) >=t3.starttime and (t1.YYYYMM-100) <=t3.endtime -and (t1.YYYYMM-100) >= t3.Value_brand_Ratio_start and (t1.YYYYMM-100) <=t3.Value_brand_Ratio_end -and (t1.YYYYMM-100) >= t3.Unit_brand_start and (t1.YYYYMM-100) <=t3.Unit_brand_end -and (t1.YYYYMM-100) >= t3.CountingUnit_brand_start and (t1.YYYYMM-100) <=t3.CountingUnit_brand_end -and (t1.YYYYMM-100) >= t3.PDOT_brand_start and (t1.YYYYMM-100) <=t3.PDOT_brand_end -and t2.market = t3.MARKET -where t1.DATA_SOURCE = 'CHC(Quarterly)' --- and YYYYMM >=202501 - --- COMMAND ---------- - --- DBTITLE 1,COUNTY -CREATE OR REPLACE TEMPORARY VIEW COUNTY -AS -SELECT -nvl(t2.market,'ALL Market') MARKET -,nvl(t2.KEY_COMPETITOR,'OTHERS') as KEY_COMPETITOR -,nvl(t2.CLASS,'Others') as CLASS -,t1.YYYYMM -,t1.PACK_CODE -,t1.CORP_CODE -,t1.AUDIT_CODE -,t1.PLATFORM_TYPE -,t1.STORE_NAME -,t1.STORE_TYPE -,t1.REGION_TYPE -,t1.DATA_SOURCE -,t1.PACK_FLAG -,t1.PROD_FLAG -,t1.DTP_FLAG -,t1.CMPS_FLAG -,t1.NEW_CODE -,t1.INST_CODE -,NULL AS AIA_HP_FLAG -,t1.DEPT_NAME -,t1.H_LEVEL -,t1.REIMBURSE -,t1.REIMBURSE_TYPE -,PRESCRIPTION_SOURCE AS PRESCRIPTION_TYPE -,t1.PRESCRIPTION -,t1.PRESCRIPTION_LY -,nvl(nvl(t2.MARKET_RATIO,1)*t2.Value_brand_Ratio,1) as VA -,nvl(nvl(t2.MARKET_RATIO,1)*t2.Unit_brand_Ratio,1) AS UT -,nvl(nvl(t2.MARKET_RATIO,1)*t2.CountingUnit_brand_Ratio,1) AS CU -,nvl(nvl(t2.MARKET_RATIO,1)*t2.PDOT_brand_Ratio,1) AS PT -,cast(t1.SALES_UNIT_CAL * nvl(t2.Unit_brand_Ratio,1) *nvl(t2.MARKET_RATIO,1) as decimal(35,6)) AS SALES_UNIT_CAL -,cast(t1.SALES_UNIT_CAL_LY * nvl(t3.Unit_brand_Ratio,1) *nvl(t3.MARKET_RATIO,1) as decimal(35,6)) AS SALES_UNIT_CAL_LY -,cast(t1.SALES_VALUE_CAL * nvl(t2.Value_brand_Ratio,1) *nvl(t2.MARKET_RATIO,1) as decimal(35,6)) AS SALES_VALUE_CAL -,cast(t1.SALES_VALUE_CAL_LY * nvl(t3.Value_brand_Ratio,1) *nvl(t3.MARKET_RATIO,1) as decimal(35,6)) AS SALES_VALUE_CAL_LY -,cast(t1.CONUTING_UNIT * nvl(t2.CountingUnit_brand_Ratio,1) *nvl(t2.MARKET_RATIO,1) as decimal(35,6)) AS CONUTING_UNIT -,cast(t1.CONUTING_UNIT_LY * nvl(t3.CountingUnit_brand_Ratio,1) *nvl(t3.MARKET_RATIO,1) as decimal(35,6)) AS CONUTING_UNIT_LY -,cast(t1.CONUTING_UNIT * nvl(t2.PDOT_brand_Ratio,1) *nvl(t2.MARKET_RATIO,1) as decimal(35,6)) AS PDOT -,cast(t1.CONUTING_UNIT_LY * nvl(t3.PDOT_brand_Ratio,1) *nvl(t3.MARKET_RATIO,1) as decimal(35,6)) AS PDOT_LY -FROM DM.DM_TF_EXT_UNIONALL_SALES t1 -LEFT JOIN DM.dm_td_ext_unionall_market_pack_mapping t2 -on t1.PACK_CODE = t2.PACK_CODE and t1.DATA_SOURCE = t2.DATASOURCE -and t1.YYYYMM >=t2.starttime and t1.YYYYMM <=t2.endtime -and t1.YYYYMM >= t2.Value_brand_Ratio_start and t1.YYYYMM <=t2.Value_brand_Ratio_end -and t1.YYYYMM >= t2.Unit_brand_start and t1.YYYYMM <=t2.Unit_brand_end -and t1.YYYYMM >= t2.CountingUnit_brand_start and t1.YYYYMM <=t2.CountingUnit_brand_end -and t1.YYYYMM >= t2.PDOT_brand_start and t1.YYYYMM <=t2.PDOT_brand_end -LEFT JOIN DM.dm_td_ext_unionall_market_pack_mapping t3 -on t1.PACK_CODE = t3.PACK_CODE and t1.DATA_SOURCE = t3.DATASOURCE -and (t1.YYYYMM-100) >=t3.starttime and (t1.YYYYMM-100) <=t3.endtime -and (t1.YYYYMM-100) >= t3.Value_brand_Ratio_start and (t1.YYYYMM-100) <=t3.Value_brand_Ratio_end -and (t1.YYYYMM-100) >= t3.Unit_brand_start and (t1.YYYYMM-100) <=t3.Unit_brand_end -and (t1.YYYYMM-100) >= t3.CountingUnit_brand_start and (t1.YYYYMM-100) <=t3.CountingUnit_brand_end -and (t1.YYYYMM-100) >= t3.PDOT_brand_start and (t1.YYYYMM-100) <=t3.PDOT_brand_end -and t2.market = t3.MARKET -where t1.DATA_SOURCE = 'IQVIA-COUNTY(Quarterly)' --- and YYYYMM >=202501 - --- COMMAND ---------- - --- DBTITLE 1,THC -CREATE OR REPLACE TEMPORARY VIEW THC -AS -SELECT -nvl(t2.market,'ALL Market') MARKET -,nvl(t2.KEY_COMPETITOR,'OTHERS') as KEY_COMPETITOR -,nvl(t2.CLASS,'Others') as CLASS -,t1.YYYYMM -,t1.PACK_CODE -,t1.CORP_CODE -,t1.AUDIT_CODE -,t1.PLATFORM_TYPE -,t1.STORE_NAME -,t1.STORE_TYPE -,t1.REGION_TYPE -,t1.DATA_SOURCE -,t1.PACK_FLAG -,t1.PROD_FLAG -,t1.DTP_FLAG -,t1.CMPS_FLAG -,t1.NEW_CODE -,t1.INST_CODE -,NULL AS AIA_HP_FLAG -,t1.DEPT_NAME -,t1.H_LEVEL -,t1.REIMBURSE -,t1.REIMBURSE_TYPE -,PRESCRIPTION_SOURCE AS PRESCRIPTION_TYPE -,t1.PRESCRIPTION -,t1.PRESCRIPTION_LY -,nvl(nvl(t2.MARKET_RATIO,1)*t2.Value_brand_Ratio,1) as VA -,nvl(nvl(t2.MARKET_RATIO,1)*t2.Unit_brand_Ratio,1) AS UT -,nvl(nvl(t2.MARKET_RATIO,1)*t2.CountingUnit_brand_Ratio,1) AS CU -,nvl(nvl(t2.MARKET_RATIO,1)*t2.PDOT_brand_Ratio,1) AS PT -,cast(t1.SALES_UNIT_CAL * nvl(t2.Unit_brand_Ratio,1) *nvl(t2.MARKET_RATIO,1) as decimal(35,6)) AS SALES_UNIT_CAL -,cast(t1.SALES_UNIT_CAL_LY * nvl(t3.Unit_brand_Ratio,1) *nvl(t3.MARKET_RATIO,1) as decimal(35,6)) AS SALES_UNIT_CAL_LY -,cast(t1.SALES_VALUE_CAL * nvl(t2.Value_brand_Ratio,1) *nvl(t2.MARKET_RATIO,1) as decimal(35,6)) AS SALES_VALUE_CAL -,cast(t1.SALES_VALUE_CAL_LY * nvl(t3.Value_brand_Ratio,1) *nvl(t3.MARKET_RATIO,1) as decimal(35,6)) AS SALES_VALUE_CAL_LY -,cast(t1.CONUTING_UNIT * nvl(t2.CountingUnit_brand_Ratio,1) *nvl(t2.MARKET_RATIO,1) as decimal(35,6)) AS CONUTING_UNIT -,cast(t1.CONUTING_UNIT_LY * nvl(t3.CountingUnit_brand_Ratio,1) *nvl(t3.MARKET_RATIO,1) as decimal(35,6)) AS CONUTING_UNIT_LY -,cast(t1.CONUTING_UNIT * nvl(t2.PDOT_brand_Ratio,1) *nvl(t2.MARKET_RATIO,1) as decimal(35,6)) AS PDOT -,cast(t1.CONUTING_UNIT_LY * nvl(t3.PDOT_brand_Ratio,1) *nvl(t3.MARKET_RATIO,1) as decimal(35,6)) AS PDOT_LY -FROM DM.DM_TF_EXT_UNIONALL_SALES t1 -LEFT JOIN DM.dm_td_ext_unionall_market_pack_mapping t2 -on t1.PACK_CODE = t2.PACK_CODE and t1.DATA_SOURCE = t2.DATASOURCE -and t1.YYYYMM >=t2.starttime and t1.YYYYMM <=t2.endtime -and t1.YYYYMM >= t2.Value_brand_Ratio_start and t1.YYYYMM <=t2.Value_brand_Ratio_end -and t1.YYYYMM >= t2.Unit_brand_start and t1.YYYYMM <=t2.Unit_brand_end -and t1.YYYYMM >= t2.CountingUnit_brand_start and t1.YYYYMM <=t2.CountingUnit_brand_end -and t1.YYYYMM >= t2.PDOT_brand_start and t1.YYYYMM <=t2.PDOT_brand_end -LEFT JOIN DM.dm_td_ext_unionall_market_pack_mapping t3 -on t1.PACK_CODE = t3.PACK_CODE and t1.DATA_SOURCE = t3.DATASOURCE -and (t1.YYYYMM-100) >=t3.starttime and (t1.YYYYMM-100) <=t3.endtime -and (t1.YYYYMM-100) >= t3.Value_brand_Ratio_start and (t1.YYYYMM-100) <=t3.Value_brand_Ratio_end -and (t1.YYYYMM-100) >= t3.Unit_brand_start and (t1.YYYYMM-100) <=t3.Unit_brand_end -and (t1.YYYYMM-100) >= t3.CountingUnit_brand_start and (t1.YYYYMM-100) <=t3.CountingUnit_brand_end -and (t1.YYYYMM-100) >= t3.PDOT_brand_start and (t1.YYYYMM-100) <=t3.PDOT_brand_end -and t2.market = t3.MARKET -where t1.DATA_SOURCE = 'THC(Quarterly)' --- and YYYYMM >=202501 - --- COMMAND ---------- - --- DBTITLE 1,RETAIL -CREATE OR REPLACE TEMPORARY VIEW RETAIL -AS -SELECT -nvl(t2.market,'ALL Market') MARKET -,nvl(t2.KEY_COMPETITOR,'OTHERS') as KEY_COMPETITOR -,nvl(t2.CLASS,'Others') as CLASS -,t1.YYYYMM -,t1.PACK_CODE -,t1.CORP_CODE -,t1.AUDIT_CODE -,t1.PLATFORM_TYPE -,t1.STORE_NAME -,t1.STORE_TYPE -,t1.REGION_TYPE -,t1.DATA_SOURCE -,t1.PACK_FLAG -,t1.PROD_FLAG -,t1.DTP_FLAG -,t1.CMPS_FLAG -,t1.NEW_CODE -,t1.INST_CODE -,NULL AS AIA_HP_FLAG -,t1.DEPT_NAME -,t1.H_LEVEL -,t1.REIMBURSE -,t1.REIMBURSE_TYPE -,PRESCRIPTION_SOURCE AS PRESCRIPTION_TYPE -,t1.PRESCRIPTION -,t1.PRESCRIPTION_LY -,nvl(nvl(t2.MARKET_RATIO,1)*t2.Value_brand_Ratio,1) as VA -,nvl(nvl(t2.MARKET_RATIO,1)*t2.Unit_brand_Ratio,1) AS UT -,nvl(nvl(t2.MARKET_RATIO,1)*t2.CountingUnit_brand_Ratio,1) AS CU -,nvl(nvl(t2.MARKET_RATIO,1)*t2.PDOT_brand_Ratio,1) AS PT -,cast(t1.SALES_UNIT_CAL * nvl(t2.Unit_brand_Ratio,1) *nvl(t2.MARKET_RATIO,1) as decimal(35,6)) AS SALES_UNIT_CAL -,cast(t1.SALES_UNIT_CAL_LY * nvl(t3.Unit_brand_Ratio,1) *nvl(t3.MARKET_RATIO,1) as decimal(35,6)) AS SALES_UNIT_CAL_LY -,cast(t1.SALES_VALUE_CAL * nvl(t2.Value_brand_Ratio,1) *nvl(t2.MARKET_RATIO,1) as decimal(35,6)) AS SALES_VALUE_CAL -,cast(t1.SALES_VALUE_CAL_LY * nvl(t3.Value_brand_Ratio,1) *nvl(t3.MARKET_RATIO,1) as decimal(35,6)) AS SALES_VALUE_CAL_LY -,cast(t1.CONUTING_UNIT * nvl(t2.CountingUnit_brand_Ratio,1) *nvl(t2.MARKET_RATIO,1) as decimal(35,6)) AS CONUTING_UNIT -,cast(t1.CONUTING_UNIT_LY * nvl(t3.CountingUnit_brand_Ratio,1) *nvl(t3.MARKET_RATIO,1) as decimal(35,6)) AS CONUTING_UNIT_LY -,cast(t1.CONUTING_UNIT * nvl(t2.PDOT_brand_Ratio,1) *nvl(t2.MARKET_RATIO,1) as decimal(35,6)) AS PDOT -,cast(t1.CONUTING_UNIT_LY * nvl(t3.PDOT_brand_Ratio,1) *nvl(t3.MARKET_RATIO,1) as decimal(35,6)) AS PDOT_LY -FROM DM.DM_TF_EXT_UNIONALL_SALES t1 -LEFT JOIN DM.dm_td_ext_unionall_market_pack_mapping t2 -on t1.PACK_CODE = t2.PACK_CODE and t1.DATA_SOURCE = t2.DATASOURCE -and t1.YYYYMM >=t2.starttime and t1.YYYYMM <=t2.endtime -and t1.YYYYMM >= t2.Value_brand_Ratio_start and t1.YYYYMM <=t2.Value_brand_Ratio_end -and t1.YYYYMM >= t2.Unit_brand_start and t1.YYYYMM <=t2.Unit_brand_end -and t1.YYYYMM >= t2.CountingUnit_brand_start and t1.YYYYMM <=t2.CountingUnit_brand_end -and t1.YYYYMM >= t2.PDOT_brand_start and t1.YYYYMM <=t2.PDOT_brand_end -LEFT JOIN DM.dm_td_ext_unionall_market_pack_mapping t3 -on t1.PACK_CODE = t3.PACK_CODE and t1.DATA_SOURCE = t3.DATASOURCE -and (t1.YYYYMM-100) >=t3.starttime and (t1.YYYYMM-100) <=t3.endtime -and (t1.YYYYMM-100) >= t3.Value_brand_Ratio_start and (t1.YYYYMM-100) <=t3.Value_brand_Ratio_end -and (t1.YYYYMM-100) >= t3.Unit_brand_start and (t1.YYYYMM-100) <=t3.Unit_brand_end -and (t1.YYYYMM-100) >= t3.CountingUnit_brand_start and (t1.YYYYMM-100) <=t3.CountingUnit_brand_end -and (t1.YYYYMM-100) >= t3.PDOT_brand_start and (t1.YYYYMM-100) <=t3.PDOT_brand_end -and t2.market = t3.MARKET -where t1.DATA_SOURCE = 'Retail(Quarterly)' and t1.DTP_FLAG<>1 --- and YYYYMM >=202501 - --- COMMAND ---------- - --- DBTITLE 1,RETAIL_DTP -CREATE OR REPLACE TEMPORARY VIEW RETAIL_DTP -AS -SELECT -nvl(t2.market,'ALL Market') MARKET -,nvl(t2.KEY_COMPETITOR,'OTHERS') as KEY_COMPETITOR -,nvl(t2.CLASS,'Others') as CLASS -,t1.YYYYMM -,t1.PACK_CODE -,t1.CORP_CODE -,t1.AUDIT_CODE -,t1.PLATFORM_TYPE -,t1.STORE_NAME -,t1.STORE_TYPE -,t1.REGION_TYPE -,t1.DATA_SOURCE -,t1.PACK_FLAG -,t1.PROD_FLAG -,t1.DTP_FLAG -,t1.CMPS_FLAG -,t1.NEW_CODE -,t1.INST_CODE -,NULL AS AIA_HP_FLAG -,t1.DEPT_NAME -,t1.H_LEVEL -,t1.REIMBURSE -,t1.REIMBURSE_TYPE -,PRESCRIPTION_SOURCE AS PRESCRIPTION_TYPE -,t1.PRESCRIPTION -,t1.PRESCRIPTION_LY -,nvl(nvl(t2.MARKET_RATIO,1)*t2.Value_brand_Ratio,1) as VA -,nvl(nvl(t2.MARKET_RATIO,1)*t2.Unit_brand_Ratio,1) AS UT -,nvl(nvl(t2.MARKET_RATIO,1)*t2.CountingUnit_brand_Ratio,1) AS CU -,nvl(nvl(t2.MARKET_RATIO,1)*t2.PDOT_brand_Ratio,1) AS PT -,cast(t1.SALES_UNIT_CAL * nvl(t2.Unit_brand_Ratio,1) *nvl(t2.MARKET_RATIO,1) as decimal(35,6)) AS SALES_UNIT_CAL -,cast(t1.SALES_UNIT_CAL_LY * nvl(t3.Unit_brand_Ratio,1) *nvl(t3.MARKET_RATIO,1) as decimal(35,6)) AS SALES_UNIT_CAL_LY -,cast(t1.SALES_VALUE_CAL * nvl(t2.Value_brand_Ratio,1) *nvl(t2.MARKET_RATIO,1) as decimal(35,6)) AS SALES_VALUE_CAL -,cast(t1.SALES_VALUE_CAL_LY * nvl(t3.Value_brand_Ratio,1) *nvl(t3.MARKET_RATIO,1) as decimal(35,6)) AS SALES_VALUE_CAL_LY -,cast(t1.CONUTING_UNIT * nvl(t2.CountingUnit_brand_Ratio,1) *nvl(t2.MARKET_RATIO,1) as decimal(35,6)) AS CONUTING_UNIT -,cast(t1.CONUTING_UNIT_LY * nvl(t3.CountingUnit_brand_Ratio,1) *nvl(t3.MARKET_RATIO,1) as decimal(35,6)) AS CONUTING_UNIT_LY -,cast(t1.CONUTING_UNIT * nvl(t2.PDOT_brand_Ratio,1) *nvl(t2.MARKET_RATIO,1) as decimal(35,6)) AS PDOT -,cast(t1.CONUTING_UNIT_LY * nvl(t3.PDOT_brand_Ratio,1) *nvl(t3.MARKET_RATIO,1) as decimal(35,6)) AS PDOT_LY -FROM DM.DM_TF_EXT_UNIONALL_SALES t1 -LEFT JOIN DM.dm_td_ext_unionall_market_pack_mapping t2 -on t1.PACK_CODE = t2.PACK_CODE and t1.DATA_SOURCE = t2.DATASOURCE -and t1.YYYYMM >=t2.starttime and t1.YYYYMM <=t2.endtime -and t1.YYYYMM >= t2.Value_brand_Ratio_start and t1.YYYYMM <=t2.Value_brand_Ratio_end -and t1.YYYYMM >= t2.Unit_brand_start and t1.YYYYMM <=t2.Unit_brand_end -and t1.YYYYMM >= t2.CountingUnit_brand_start and t1.YYYYMM <=t2.CountingUnit_brand_end -and t1.YYYYMM >= t2.PDOT_brand_start and t1.YYYYMM <=t2.PDOT_brand_end -LEFT JOIN DM.dm_td_ext_unionall_market_pack_mapping t3 -on t1.PACK_CODE = t3.PACK_CODE and t1.DATA_SOURCE = t3.DATASOURCE -and (t1.YYYYMM-100) >=t3.starttime and (t1.YYYYMM-100) <=t3.endtime -and (t1.YYYYMM-100) >= t3.Value_brand_Ratio_start and (t1.YYYYMM-100) <=t3.Value_brand_Ratio_end -and (t1.YYYYMM-100) >= t3.Unit_brand_start and (t1.YYYYMM-100) <=t3.Unit_brand_end -and (t1.YYYYMM-100) >= t3.CountingUnit_brand_start and (t1.YYYYMM-100) <=t3.CountingUnit_brand_end -and (t1.YYYYMM-100) >= t3.PDOT_brand_start and (t1.YYYYMM-100) <=t3.PDOT_brand_end -and t2.market = t3.MARKET -where t1.DATA_SOURCE = 'DTP(Quarterly)' and t1.DTP_FLAG=1 --- and YYYYMM >=202501 - --- COMMAND ---------- - --- DBTITLE 1,EC -CREATE OR REPLACE TEMPORARY VIEW EC -AS -SELECT -nvl(t2.market,'ALL Market') MARKET -,nvl(t2.KEY_COMPETITOR,'OTHERS') as KEY_COMPETITOR -,nvl(t2.CLASS,'Others') as CLASS -,t1.YYYYMM -,t1.PACK_CODE -,t1.CORP_CODE -,t1.AUDIT_CODE -,t1.PLATFORM_TYPE -,t1.STORE_NAME -,t1.STORE_TYPE -,t1.REGION_TYPE -,t1.DATA_SOURCE -,t1.PACK_FLAG -,t1.PROD_FLAG -,t1.DTP_FLAG -,t1.CMPS_FLAG -,t1.NEW_CODE -,t1.INST_CODE -,NULL AS AIA_HP_FLAG -,t1.DEPT_NAME -,t1.H_LEVEL -,t1.REIMBURSE -,t1.REIMBURSE_TYPE -,PRESCRIPTION_SOURCE AS PRESCRIPTION_TYPE -,t1.PRESCRIPTION -,t1.PRESCRIPTION_LY -,nvl(nvl(t2.MARKET_RATIO,1)*t2.Value_brand_Ratio,1) as VA -,nvl(nvl(t2.MARKET_RATIO,1)*t2.Unit_brand_Ratio,1) AS UT -,nvl(nvl(t2.MARKET_RATIO,1)*t2.CountingUnit_brand_Ratio,1) AS CU -,nvl(nvl(t2.MARKET_RATIO,1)*t2.PDOT_brand_Ratio,1) AS PT -,cast(t1.SALES_UNIT_CAL * nvl(t2.Unit_brand_Ratio,1) *nvl(t2.MARKET_RATIO,1) as decimal(35,6)) AS SALES_UNIT_CAL -,cast(t1.SALES_UNIT_CAL_LY * nvl(t3.Unit_brand_Ratio,1) *nvl(t3.MARKET_RATIO,1) as decimal(35,6)) AS SALES_UNIT_CAL_LY -,cast(t1.SALES_VALUE_CAL * nvl(t2.Value_brand_Ratio,1) *nvl(t2.MARKET_RATIO,1) as decimal(35,6)) AS SALES_VALUE_CAL -,cast(t1.SALES_VALUE_CAL_LY * nvl(t3.Value_brand_Ratio,1) *nvl(t3.MARKET_RATIO,1) as decimal(35,6)) AS SALES_VALUE_CAL_LY -,cast(t1.CONUTING_UNIT * nvl(t2.CountingUnit_brand_Ratio,1) *nvl(t2.MARKET_RATIO,1) as decimal(35,6)) AS CONUTING_UNIT -,cast(t1.CONUTING_UNIT_LY * nvl(t3.CountingUnit_brand_Ratio,1) *nvl(t3.MARKET_RATIO,1) as decimal(35,6)) AS CONUTING_UNIT_LY -,cast(t1.CONUTING_UNIT * nvl(t2.PDOT_brand_Ratio,1) *nvl(t2.MARKET_RATIO,1) as decimal(35,6)) AS PDOT -,cast(t1.CONUTING_UNIT_LY * nvl(t3.PDOT_brand_Ratio,1) *nvl(t3.MARKET_RATIO,1) as decimal(35,6)) AS PDOT_LY -FROM DM.DM_TF_EXT_UNIONALL_SALES t1 -LEFT JOIN DM.dm_td_ext_unionall_market_pack_mapping t2 -on t1.PACK_CODE = t2.PACK_CODE and t1.DATA_SOURCE = t2.DATASOURCE -and t1.YYYYMM >=t2.starttime and t1.YYYYMM <=t2.endtime -and t1.YYYYMM >= t2.Value_brand_Ratio_start and t1.YYYYMM <=t2.Value_brand_Ratio_end -and t1.YYYYMM >= t2.Unit_brand_start and t1.YYYYMM <=t2.Unit_brand_end -and t1.YYYYMM >= t2.CountingUnit_brand_start and t1.YYYYMM <=t2.CountingUnit_brand_end -and t1.YYYYMM >= t2.PDOT_brand_start and t1.YYYYMM <=t2.PDOT_brand_end -LEFT JOIN DM.dm_td_ext_unionall_market_pack_mapping t3 -on t1.PACK_CODE = t3.PACK_CODE and t1.DATA_SOURCE = t3.DATASOURCE -and (t1.YYYYMM-100) >=t3.starttime and (t1.YYYYMM-100) <=t3.endtime -and (t1.YYYYMM-100) >= t3.Value_brand_Ratio_start and (t1.YYYYMM-100) <=t3.Value_brand_Ratio_end -and (t1.YYYYMM-100) >= t3.Unit_brand_start and (t1.YYYYMM-100) <=t3.Unit_brand_end -and (t1.YYYYMM-100) >= t3.CountingUnit_brand_start and (t1.YYYYMM-100) <=t3.CountingUnit_brand_end -and (t1.YYYYMM-100) >= t3.PDOT_brand_start and (t1.YYYYMM-100) <=t3.PDOT_brand_end -and t2.market = t3.MARKET -where t1.DATA_SOURCE = 'EC(Monthly)' --- and YYYYMM >=202501 - --- COMMAND ---------- - --- DBTITLE 1,XIEHE -CREATE OR REPLACE TEMPORARY VIEW XIEHE -AS -SELECT -nvl(t2.market,'ALL Market') MARKET -,nvl(t2.KEY_COMPETITOR,'OTHERS') as KEY_COMPETITOR -,nvl(t2.CLASS,'Others') as CLASS -,t1.YYYYMM -,t1.PACK_CODE -,t1.CORP_CODE -,t1.AUDIT_CODE -,t1.PLATFORM_TYPE -,t1.STORE_NAME -,t1.STORE_TYPE -,t1.REGION_TYPE -,t1.DATA_SOURCE -,t1.PACK_FLAG -,t1.PROD_FLAG -,t1.DTP_FLAG -,t1.CMPS_FLAG -,t1.NEW_CODE -,t1.INST_CODE -,NULL AS AIA_HP_FLAG -,t1.DEPT_NAME -,t1.H_LEVEL -,t1.REIMBURSE -,t1.REIMBURSE_TYPE -,PRESCRIPTION_SOURCE AS PRESCRIPTION_TYPE -,t1.PRESCRIPTION -,t1.PRESCRIPTION_LY -,nvl(nvl(t2.MARKET_RATIO,1)*t2.Value_brand_Ratio,1) as VA -,nvl(nvl(t2.MARKET_RATIO,1)*t2.Unit_brand_Ratio,1) AS UT -,nvl(nvl(t2.MARKET_RATIO,1)*t2.CountingUnit_brand_Ratio,1) AS CU -,nvl(nvl(t2.MARKET_RATIO,1)*t2.PDOT_brand_Ratio,1) AS PT -,cast(t1.SALES_UNIT_CAL * nvl(t2.Unit_brand_Ratio,1) *nvl(t2.MARKET_RATIO,1) as decimal(35,6)) AS SALES_UNIT_CAL -,cast(t1.SALES_UNIT_CAL_LY * nvl(t3.Unit_brand_Ratio,1) *nvl(t3.MARKET_RATIO,1) as decimal(35,6)) AS SALES_UNIT_CAL_LY -,cast(t1.SALES_VALUE_CAL * nvl(t2.Value_brand_Ratio,1) *nvl(t2.MARKET_RATIO,1) as decimal(35,6)) AS SALES_VALUE_CAL -,cast(t1.SALES_VALUE_CAL_LY * nvl(t3.Value_brand_Ratio,1) *nvl(t3.MARKET_RATIO,1) as decimal(35,6)) AS SALES_VALUE_CAL_LY -,cast(t1.CONUTING_UNIT * nvl(t2.CountingUnit_brand_Ratio,1) *nvl(t2.MARKET_RATIO,1) as decimal(35,6)) AS CONUTING_UNIT -,cast(t1.CONUTING_UNIT_LY * nvl(t3.CountingUnit_brand_Ratio,1) *nvl(t3.MARKET_RATIO,1) as decimal(35,6)) AS CONUTING_UNIT_LY -,cast(t1.CONUTING_UNIT * nvl(t2.PDOT_brand_Ratio,1) *nvl(t2.MARKET_RATIO,1) as decimal(35,6)) AS PDOT -,cast(t1.CONUTING_UNIT_LY * nvl(t3.PDOT_brand_Ratio,1) *nvl(t3.MARKET_RATIO,1) as decimal(35,6)) AS PDOT_LY -FROM DM.DM_TF_EXT_UNIONALL_SALES t1 -LEFT JOIN DM.dm_td_ext_unionall_market_pack_mapping t2 -on t1.PACK_CODE = t2.PACK_CODE and t1.DATA_SOURCE = t2.DATASOURCE -and t1.YYYYMM >=t2.starttime and t1.YYYYMM <=t2.endtime -and t1.YYYYMM >= t2.Value_brand_Ratio_start and t1.YYYYMM <=t2.Value_brand_Ratio_end -and t1.YYYYMM >= t2.Unit_brand_start and t1.YYYYMM <=t2.Unit_brand_end -and t1.YYYYMM >= t2.CountingUnit_brand_start and t1.YYYYMM <=t2.CountingUnit_brand_end -and t1.YYYYMM >= t2.PDOT_brand_start and t1.YYYYMM <=t2.PDOT_brand_end -LEFT JOIN DM.dm_td_ext_unionall_market_pack_mapping t3 -on t1.PACK_CODE = t3.PACK_CODE and t1.DATA_SOURCE = t3.DATASOURCE -and (t1.YYYYMM-100) >=t3.starttime and (t1.YYYYMM-100) <=t3.endtime -and (t1.YYYYMM-100) >= t3.Value_brand_Ratio_start and (t1.YYYYMM-100) <=t3.Value_brand_Ratio_end -and (t1.YYYYMM-100) >= t3.Unit_brand_start and (t1.YYYYMM-100) <=t3.Unit_brand_end -and (t1.YYYYMM-100) >= t3.CountingUnit_brand_start and (t1.YYYYMM-100) <=t3.CountingUnit_brand_end -and (t1.YYYYMM-100) >= t3.PDOT_brand_start and (t1.YYYYMM-100) <=t3.PDOT_brand_end -and t2.market = t3.MARKET -where t1.DATA_SOURCE = 'XH Data(Quarterly)' --- and YYYYMM >=202501 - --- COMMAND ---------- - -INSERT OVERWRITE TABLE DM.DM_TF_EXT_UNIONALL_MARKET_SALES -SELECT - MARKET, - KEY_COMPETITOR, - CLASS, - YYYYMM, - PACK_CODE, - CORP_CODE, - AUDIT_CODE, - PLATFORM_TYPE, - STORE_NAME, - STORE_TYPE, - REGION_TYPE, - DATA_SOURCE, - PACK_FLAG, - PROD_FLAG, - DTP_FLAG, - CMPS_FLAG, - NEW_CODE, - INST_CODE, - AIA_HP_FLAG, - DEPT_NAME, - H_LEVEL, - REIMBURSE, - REIMBURSE_TYPE, - PRESCRIPTION_TYPE, - PRESCRIPTION, - PRESCRIPTION_LY, - VA, - UT, - CU, - PT, - SALES_UNIT_CAL, - SALES_UNIT_CAL_LY, - SALES_VALUE_CAL, - SALES_VALUE_CAL_LY, - CONUTING_UNIT, - CONUTING_UNIT_LY, - PDOT, - PDOT_LY, - FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(),'UTC+8') AS ETL_INSERT_DT, - FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(),'UTC+8') AS ETL_UPDATE_DT -FROM - CHPA -UNION ALL -SELECT - MARKET, - KEY_COMPETITOR, - CLASS, - YYYYMM, - PACK_CODE, - CORP_CODE, - AUDIT_CODE, - PLATFORM_TYPE, - STORE_NAME, - STORE_TYPE, - REGION_TYPE, - DATA_SOURCE, - PACK_FLAG, - PROD_FLAG, - DTP_FLAG, - CMPS_FLAG, - NEW_CODE, - INST_CODE, - AIA_HP_FLAG, - DEPT_NAME, - H_LEVEL, - REIMBURSE, - REIMBURSE_TYPE, - PRESCRIPTION_TYPE, - PRESCRIPTION, - PRESCRIPTION_LY, - VA, - UT, - CU, - PT, - SALES_UNIT_CAL, - SALES_UNIT_CAL_LY, - SALES_VALUE_CAL, - SALES_VALUE_CAL_LY, - CONUTING_UNIT, - CONUTING_UNIT_LY, - PDOT, - PDOT_LY, - FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(),'UTC+8') AS ETL_INSERT_DT, - FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(),'UTC+8') AS ETL_UPDATE_DT -FROM - AIA -UNION ALL -SELECT - MARKET, - KEY_COMPETITOR, - CLASS, - YYYYMM, - PACK_CODE, - CORP_CODE, - AUDIT_CODE, - PLATFORM_TYPE, - STORE_NAME, - STORE_TYPE, - REGION_TYPE, - DATA_SOURCE, - PACK_FLAG, - PROD_FLAG, - DTP_FLAG, - CMPS_FLAG, - NEW_CODE, - INST_CODE, - AIA_HP_FLAG, - DEPT_NAME, - H_LEVEL, - REIMBURSE, - REIMBURSE_TYPE, - PRESCRIPTION_TYPE, - PRESCRIPTION, - PRESCRIPTION_LY, - VA, - UT, - CU, - PT, - SALES_UNIT_CAL, - SALES_UNIT_CAL_LY, - SALES_VALUE_CAL, - SALES_VALUE_CAL_LY, - CONUTING_UNIT, - CONUTING_UNIT_LY, - PDOT, - PDOT_LY, - FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(),'UTC+8') AS ETL_INSERT_DT, - FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(),'UTC+8') AS ETL_UPDATE_DT -FROM - CHC -UNION ALL -SELECT - MARKET, - KEY_COMPETITOR, - CLASS, - YYYYMM, - PACK_CODE, - CORP_CODE, - AUDIT_CODE, - PLATFORM_TYPE, - STORE_NAME, - STORE_TYPE, - REGION_TYPE, - DATA_SOURCE, - PACK_FLAG, - PROD_FLAG, - DTP_FLAG, - CMPS_FLAG, - NEW_CODE, - INST_CODE, - AIA_HP_FLAG, - DEPT_NAME, - H_LEVEL, - REIMBURSE, - REIMBURSE_TYPE, - PRESCRIPTION_TYPE, - PRESCRIPTION, - PRESCRIPTION_LY, - VA, - UT, - CU, - PT, - SALES_UNIT_CAL, - SALES_UNIT_CAL_LY, - SALES_VALUE_CAL, - SALES_VALUE_CAL_LY, - CONUTING_UNIT, - CONUTING_UNIT_LY, - PDOT, - PDOT_LY, - FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(),'UTC+8') AS ETL_INSERT_DT, - FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(),'UTC+8') AS ETL_UPDATE_DT -FROM - COUNTY -UNION ALL -SELECT - MARKET, - KEY_COMPETITOR, - CLASS, - YYYYMM, - PACK_CODE, - CORP_CODE, - AUDIT_CODE, - PLATFORM_TYPE, - STORE_NAME, - STORE_TYPE, - REGION_TYPE, - DATA_SOURCE, - PACK_FLAG, - PROD_FLAG, - DTP_FLAG, - CMPS_FLAG, - NEW_CODE, - INST_CODE, - AIA_HP_FLAG, - DEPT_NAME, - H_LEVEL, - REIMBURSE, - REIMBURSE_TYPE, - PRESCRIPTION_TYPE, - PRESCRIPTION, - PRESCRIPTION_LY, - VA, - UT, - CU, - PT, - SALES_UNIT_CAL, - SALES_UNIT_CAL_LY, - SALES_VALUE_CAL, - SALES_VALUE_CAL_LY, - CONUTING_UNIT, - CONUTING_UNIT_LY, - PDOT, - PDOT_LY, - FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(),'UTC+8') AS ETL_INSERT_DT, - FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(),'UTC+8') AS ETL_UPDATE_DT -FROM - THC -UNION ALL -SELECT - MARKET, - KEY_COMPETITOR, - CLASS, - YYYYMM, - PACK_CODE, - CORP_CODE, - AUDIT_CODE, - PLATFORM_TYPE, - STORE_NAME, - STORE_TYPE, - REGION_TYPE, - DATA_SOURCE, - PACK_FLAG, - PROD_FLAG, - DTP_FLAG, - CMPS_FLAG, - NEW_CODE, - INST_CODE, - AIA_HP_FLAG, - DEPT_NAME, - H_LEVEL, - REIMBURSE, - REIMBURSE_TYPE, - PRESCRIPTION_TYPE, - PRESCRIPTION, - PRESCRIPTION_LY, - VA, - UT, - CU, - PT, - SALES_UNIT_CAL, - SALES_UNIT_CAL_LY, - SALES_VALUE_CAL, - SALES_VALUE_CAL_LY, - CONUTING_UNIT, - CONUTING_UNIT_LY, - PDOT, - PDOT_LY, - FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(),'UTC+8') AS ETL_INSERT_DT, - FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(),'UTC+8') AS ETL_UPDATE_DT -FROM - RETAIL -UNION ALL -SELECT - MARKET, - KEY_COMPETITOR, - CLASS, - YYYYMM, - PACK_CODE, - CORP_CODE, - AUDIT_CODE, - PLATFORM_TYPE, - STORE_NAME, - STORE_TYPE, - REGION_TYPE, - DATA_SOURCE, - PACK_FLAG, - PROD_FLAG, - DTP_FLAG, - CMPS_FLAG, - NEW_CODE, - INST_CODE, - AIA_HP_FLAG, - DEPT_NAME, - H_LEVEL, - REIMBURSE, - REIMBURSE_TYPE, - PRESCRIPTION_TYPE, - PRESCRIPTION, - PRESCRIPTION_LY, - VA, - UT, - CU, - PT, - SALES_UNIT_CAL, - SALES_UNIT_CAL_LY, - SALES_VALUE_CAL, - SALES_VALUE_CAL_LY, - CONUTING_UNIT, - CONUTING_UNIT_LY, - PDOT, - PDOT_LY, - FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(),'UTC+8') AS ETL_INSERT_DT, - FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(),'UTC+8') AS ETL_UPDATE_DT -FROM - RETAIL_DTP -UNION ALL -SELECT - MARKET, - KEY_COMPETITOR, - CLASS, - YYYYMM, - PACK_CODE, - CORP_CODE, - AUDIT_CODE, - PLATFORM_TYPE, - STORE_NAME, - STORE_TYPE, - REGION_TYPE, - DATA_SOURCE, - PACK_FLAG, - PROD_FLAG, - DTP_FLAG, - CMPS_FLAG, - NEW_CODE, - INST_CODE, - AIA_HP_FLAG, - DEPT_NAME, - H_LEVEL, - REIMBURSE, - REIMBURSE_TYPE, - PRESCRIPTION_TYPE, - PRESCRIPTION, - PRESCRIPTION_LY, - VA, - UT, - CU, - PT, - SALES_UNIT_CAL, - SALES_UNIT_CAL_LY, - SALES_VALUE_CAL, - SALES_VALUE_CAL_LY, - CONUTING_UNIT, - CONUTING_UNIT_LY, - PDOT, - PDOT_LY, - FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(),'UTC+8') AS ETL_INSERT_DT, - FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(),'UTC+8') AS ETL_UPDATE_DT -FROM - EC -UNION ALL -SELECT - MARKET, - KEY_COMPETITOR, - CLASS, - YYYYMM, - PACK_CODE, - CORP_CODE, - AUDIT_CODE, - PLATFORM_TYPE, - STORE_NAME, - STORE_TYPE, - REGION_TYPE, - DATA_SOURCE, - PACK_FLAG, - PROD_FLAG, - DTP_FLAG, - CMPS_FLAG, - NEW_CODE, - INST_CODE, - AIA_HP_FLAG, - DEPT_NAME, - H_LEVEL, - REIMBURSE, - REIMBURSE_TYPE, - PRESCRIPTION_TYPE, - PRESCRIPTION, - PRESCRIPTION_LY, - VA, - UT, - CU, - PT, - SALES_UNIT_CAL, - SALES_UNIT_CAL_LY, - SALES_VALUE_CAL, - SALES_VALUE_CAL_LY, - CONUTING_UNIT, - CONUTING_UNIT_LY, - PDOT, - PDOT_LY, - FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(),'UTC+8') AS ETL_INSERT_DT, - FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(),'UTC+8') AS ETL_UPDATE_DT -FROM - XIEHE \ No newline at end of file diff --git a/EXTERNAL/UNIONALL/DM_TF_EXT_UNIONALL_MARKET_SALES_v1.0.sql:Zone.Identifier b/EXTERNAL/UNIONALL/DM_TF_EXT_UNIONALL_MARKET_SALES_v1.0.sql:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2x= '202001' - GROUP BY - A.YYYYMM, - A.iqvia_pack_code, - A.AUDIT_COD, - A.dept_name, - A.new_code, - A.province, - A.h_level, - A.reimburse, - A.reimburse_type, - A.prescription_source - --- COMMAND ---------- - -INSERT OVERWRITE TABLE DM.DM_TF_EXT_XIEHE_SALES ( - YYYYMM, - PACK_CODE, - AUDIT_CODE, - DATA_SOURCE, - SALES_UNIT_CAL, - SALES_UNIT_CAL_LY, - SALES_VALUE_CAL, - SALES_VALUE_CAL_LY, - CONUTING_UNIT, - CONUTING_UNIT_LY, - PRESCRIPTION, - PRESCRIPTION_LY, - PACK_FLAG, - PROD_FLAG, - DTP_FLAG, - CMPS_FLAG, - PLATFORM_TYPE, - STORE_NAME, - STORE_TYPE, - REGION_TYPE, - INST_CODE, - DEPT_NAME, - NEW_CODE, - AREA, - H_LEVEL, - REIMBURSE, - REIMBURSE_TYPE, - PRESCRIPTION_SOURCE, - CORP_CODE, - ETL_INSERT_DT, - ETL_UPDATE_DT -) - SELECT - YYYYMM, - NVL(NULLIF(PACK_CODE, ''), CONCAT('PACK_CODE_', DATA_SOURCE)) AS PACK_CODE, - NVL(NULLIF(AUDIT_CODE, ''), 'ROC') AS AUDIT_CODE, - DATA_SOURCE, - SALES_UNIT_CAL, - SALES_UNIT_CAL_LY, - SALES_VALUE_CAL, - SALES_VALUE_CAL_LY, - CONUTING_UNIT, - CONUTING_UNIT_LY, - PRESCRIPTION, - PRESCRIPTION_LY, - PACK_FLAG, - PROD_FLAG, - DTP_FLAG, - CMPS_FLAG, - PLATFORM_TYPE, - STORE_NAME, - STORE_TYPE, - REGION_TYPE, - INST_CODE, - DEPT_NAME, - NEW_CODE, - AREA, - H_LEVEL, - REIMBURSE, - REIMBURSE_TYPE, - PRESCRIPTION_SOURCE, - CORP_CODE, - FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(), 'UTC+8') AS ETL_INSERT_DT, - FROM_UTC_TIMESTAMP(CURRENT_TIMESTAMP(), 'UTC+8') AS ETL_UPDATE_DT - FROM - TF_XIEHE; \ No newline at end of file diff --git a/EXTERNAL/XIEHE/06 DM_TF_EXT_XIEHE_SALES.sql:Zone.Identifier b/EXTERNAL/XIEHE/06 DM_TF_EXT_XIEHE_SALES.sql:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2x 'Non Market' -union -select distinct - concat('XIEHE ALL Market_',t1.iqvia_pack_code) as market_pack_key, - t1.iqvia_pack_code as PACK_COD, - max(coalesce(t2.PACK_DES,t1.pack_des)) as PACK_DES, - max(coalesce(t2.STGH_DES,t1.stgh_des)) as STGH_DES, - max(coalesce(t2.PACK_LCH,t1.pack_lch)) as PACK_LCH, - max(t2.Family_Code) as Family_Code, - max(t2.Family_Name) as Family_Name, - max(coalesce(t2.PROD_COD,t1.iqvia_prod_code)) as PROD_COD, - max(coalesce(t2.PROD_DES,t1.prod_des)) as PROD_DES, - max(coalesce(t2.PROD_DES_C,t1.prod_des_c)) as PROD_DES_C, - max(coalesce(t2.CMPS_COD,t1.cmps_cod)) as CMPS_COD, - max(coalesce(t2.CMPS_DES,t1.cmps_des)) as CMPS_DES, - max(coalesce(t2.CMPS_DES_C,t1.cmps_des_c)) as CMPS_DES_C, - max(coalesce(t2.ATC1_COD,t1.atc1_cod)) as ATC1_COD, - max(coalesce(t2.ATC2_COD,t1.atc2_cod)) as ATC2_COD, - max(coalesce(t2.ATC3_COD,t1.atc3_cod)) as ATC3_COD, - max(coalesce(t2.ATC4_COD,t1.atc4_cod)) as ATC4_COD, - max(coalesce(t2.APP1_COD,t1.app1_cod)) as APP1_COD, - max(coalesce(t2.APP2_COD,t1.app2_cod)) as APP2_COD, - max(coalesce(t2.APP3_COD,t1.app3_cod)) as APP3_COD, - max(coalesce(t2.BIO_DESC,t1.bio_desc)) as BIO_DESC, - max(coalesce(t2.GENE_ORIG_DESC,t1.gene_orig_desc)) as GENE_ORIG_DESC, - max(coalesce(t2.ETH_OTC_DESC,t1.eth_otc_desc)) as ETH_OTC_DESC, - max(coalesce(t2.NRDL_DESC,t1.nrdl_desc)) as NRDL_DESC, - max(coalesce(t2.NRDL_Entry_Date,t1.NRDL_Entry_Date)) as NRDL_Entry_Date, - max(coalesce(t2.EDL_DESC,t1.edl_desc)) as EDL_DESC, - max(coalesce(t2.TCM_DESC,t1.tcm_desc)) as TCM_DESC, - max(coalesce(t2.PAED_DESC,t1.paed_desc)) as PAED_DESC, - max(coalesce(t2.GQCE_DESC,t1.gqce_desc)) as GQCE_DESC, - max(coalesce(t2.VBP_DESC,t1.vbp_desc)) as VBP_DESC, - max(coalesce(t2.MANU_COD,t1.manu_cod)) as MANU_COD, - max(coalesce(t2.MANU_DES,t1.manu_des)) as MANU_DES, - max(coalesce(t2.MANU_DES_C,t1.manu_des_c)) as MANU_DES_C, - max(coalesce(t2.MNFL_COD,t1.mnfl_cod)) as MNFL_COD, - max(coalesce(t2.MNFL_DES,t1.mnfl_des)) as MNFL_DES, - max(coalesce(t2.CORP_COD,t1.corp_cod)) as CORP_COD, - max(coalesce(t2.CORP_DES,t1.corp_des)) as CORP_DES, - max(coalesce(t2.CORP_DES_C,t1.corp_des_c)) as CORP_DES_C, - max(coalesce(t2.BrandType,t1.BrandType)) as BrandType, - 'XIEHE ALL Market' as MARKET, - max(t2.KEY_COMPETITOR) as KEY_COMPETITOR, - max(coalesce(t2.IS_AZ,t1.IS_AZ)) as IS_AZ, - max(coalesce(t2.AZ_MAIN,t1.AZ_MAIN)) as AZ_MAIN, - max(t2.AZ_Related) as AZ_Related, - max(coalesce(t2.atc1_des,t1.atc1_des)) as atc1_des, - max(coalesce(t2.atc1_des_c,t1.atc1_des_c)) as atc1_des_c, - max(coalesce(t2.atc2_des,t1.atc2_des)) as atc2_des, - max(coalesce(t2.atc2_des_c,t1.atc2_des_c)) as atc2_des_c, - max(coalesce(t2.atc3_des,t1.atc3_des)) as atc3_des, - max(coalesce(t2.atc3_des_c,t1.atc3_des_c)) as atc3_des_c, - max(coalesce(t2.atc4_des,t1.atc4_des)) as atc4_des, - max(coalesce(t2.atc4_des_c,t1.atc4_des_c)) as atc4_des_c, - max(coalesce(t2.app1_des,t1.app1_des)) as app1_des, - max(coalesce(t2.app1_des_c,t1.app1_des_c)) as app1_des_c, - max(coalesce(t2.app2_des,t1.app2_des)) as app2_des, - max(coalesce(t2.app2_des_c,t1.app2_des_c)) as app2_des_c, - max(coalesce(t2.app3_des,t1.app3_des)) as app3_des, - max(coalesce(t2.app3_des_c,t1.app3_des_c)) as app3_des_c, - max(coalesce(t2.Class,t1.Class)) as Class, - from_utc_timestamp(current_timestamp(),'UTC+8') as ETL_INSERT_DT, - from_utc_timestamp(current_timestamp(),'UTC+8') as ETL_UPDATE_DT, - max(cast(t1.market_ratio as decimal(30,10))) as market_ratio, - coalesce(max(cast(t1.counting_unit / coalesce(t1.unit,1) as decimal(30,10))),1) as counting_unit, - max(t1.bu) as bu, - max(t1.Dosage_Unit) as Dosage_Unit, - max(t1.ta) as ta -from tmp.tmp_dm_ext_xiehe_pack_property t1 -left join ims_pack_property t2 -on t1.market_pack_key = t2.market_pack_key -group by t1.iqvia_pack_code diff --git a/EXTERNAL/XIEHE/bkp_03 dm_ext_xiehe_pack_property.sql:Zone.Identifier b/EXTERNAL/XIEHE/bkp_03 dm_ext_xiehe_pack_property.sql:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2x 'L' --- ),bbu_bu_county as ( --- select pack_cod,region_cod,'BBU_BU_COUNTY' region_type from tmp where region_cod in ('Guangdong','Zhejiang','Shandong','Jiangsu','Others') and ATC1_COD <> 'L' --- ),obu_bu_county as ( --- select pack_cod,region_cod,'OBU NonEast5' region_type from tmp where region_cod in ('Henan','Sichuan','Others','BBU_OtherProv') and (ATC2_COD = 'L01' OR ATC2_COD = 'L02') --- ),county_all as ( --- select * from obu_county --- union --- select * from bbu_county --- union --- select * from bbu_bu_county --- union --- select * from obu_bu_county --- ) --- select --- pack_cod, --- region_cod, --- region_type --- from county_all order by region_type - --- COMMAND ---------- - ----------------------------------------------------------------------------------- ---修改时间:20240913 ---修改人:FanXujia ---修改内容: ---划分BBU_COUNTY、BBU_BU_COUNTY两个区域时,去掉ATC1_COD <> 'L'的限制 ---这个需求使得BBU和OBU会有一部分重叠的区域 ---因此对区域划分逻辑进行调整 ------几个region_cod的含义 ---OBU_OtherProv:福建的ATC2=L01、L02 ---BBU_OtherProv:BBU_COUNTY的18个省减去四川、河南 ---Others:其他省份,这里面包含了福建的ATC2<>L01、L02的数 ----------------------------------------------------------------------------------- -insert overwrite table dm.dm_td_county_pack_region -with tmp as ( - select - t1.pack_cod, - t1.region_cod, - t2.ATC1_COD, - t2.ATC2_COD -from (select distinct PACK_COD,REGION_COD from dws.dws_ext_county_tf_sales) t1 -left join (select distinct PACK_COD,ATC1_COD,ATC2_COD from dm.dm_ext_county_td_pack_property) t2 -on t1.PACK_COD = t2.pack_cod -) ---单独bbu_bu_county -,bbu_bu_county as ( - select pack_cod,region_cod,'BBU_BU_COUNTY' region_type from tmp - where region_cod in ('Guangdong','Jiangsu','Others','Shandong','Zhejiang') and ATC2_COD NOT IN ('L01','L02') -) ---bbu_bu_county与OBU East5共有 -,bbu_bu_county_obu_East5 as ( - select pack_cod,region_cod,'bbu_bu_county_obu_East5' region_type from tmp - where region_cod in ('Guangdong','Jiangsu','Shandong','Zhejiang','OBU_OtherProv') and ATC2_COD in ('L01','L02') -) ---bbu_bu_county与OBU NonEast5共有 -,bbu_bu_county_obu_nonEast5 as ( - select pack_cod,region_cod,'bbu_bu_county_obu_nonEast5' region_type from tmp - where region_cod in ('Others') and ATC2_COD in ('L01','L02') -) ---bbu_county与OBU NonEast5共有 -,bbu_county_obu_nonEast5 as ( - select pack_cod,region_cod,'bbu_county_obu_nonEast5' region_type from tmp - where region_cod in ('BBU_OtherProv','Henan','Sichuan') and ATC2_COD in ('L01','L02') -) ---单独bbu_county -,bbu_county as ( - select pack_cod,region_cod,'BBU County' region_type from tmp - where region_cod in('BBU_OtherProv','Henan','Sichuan') and ATC2_COD NOT IN ('L01','L02') -) ---全部 -,county_all as ( - select * from bbu_bu_county - union - select * from bbu_bu_county_obu_East5 - union - select * from bbu_bu_county_obu_nonEast5 - union - select * from bbu_county_obu_nonEast5 - union - select * from bbu_county -) -select - pack_cod, - region_cod, - region_type -from county_all order by region_type diff --git a/EXTERNAL/county/06 dm_td_county_pack_region.sql:Zone.Identifier b/EXTERNAL/county/06 dm_td_county_pack_region.sql:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2x= '202001' - AND A.MARKET = 'IMS ALL Market' - GROUP BY - A.YYYYMM, - A.PACK_COD, - A.AUDIT_COD, - A.REGION_TYPE \ No newline at end of file diff --git a/EXTERNAL/county/09 DM_TF_EXT_COUNTY_SALES.sql:Zone.Identifier b/EXTERNAL/county/09 DM_TF_EXT_COUNTY_SALES.sql:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2x 内部产品 ---> 外部产品 ---> 外部市场 -potential_decile1 AS ( - SELECT DISTINCT - p1.inst_code, - p1.mkt_code, - p1.mkt_name, - p1.potential_type, - p1.potential_type_name, - p1.is_defult_potential_type, - INT(p1.decile) AS decile, - p1.potential_value, - IFNULL(p1.default_decile, 10) AS default_decile - FROM dm.dm_tf_potential p1 - WHERE yyyymm = ( - SELECT KEY_VALUE - FROM dm.dm_td_date_config - WHERE key_code = 'pfmc_latest_mon' - ) -), - --- 潜力市场与内部Brand的mapping -brand_market_mapping AS ( - SELECT DISTINCT - brand_code, - market_code - FROM dwd.dwd_gnd_link_family_imsmkt - WHERE active_status = 1 -), - --- 内外部产品编码映射表:获取内部Brand与外部pack的mapping -imscode_azcode AS ( - SELECT DISTINCT - brandcode, - CASE - WHEN LENGTH(ims_pack_cod) < 7 AND ims_pack_cod REGEXP '^[0-9]' - THEN RIGHT(CONCAT('000000000000', ims_pack_cod), 12) - ELSE ims_pack_cod - END AS ims_pack_cod - FROM dwd.dwd_td_imscode_azcode - WHERE ims_pack_cod IS NOT NULL -), - --- 将潜力数据、Decile数据对应到外部的market -potential_decile2 AS ( - SELECT DISTINCT - t1.inst_code, - t1.mkt_code AS potential_mkt_code, - t1.mkt_name AS potential_mkt_name, - t4.market, - t1.potential_type, - t1.potential_type_name, - t1.is_defult_potential_type, - t1.potential_value, - t1.decile, - CASE - WHEN t1.decile <= 3 THEN 'Decile 1-3' - WHEN t1.decile <= 5 THEN 'Decile 4-5' - WHEN t1.decile <= 8 THEN 'Decile 6-8' - WHEN t1.decile <= 10 THEN 'Decile 9-10' - END AS decile_group - FROM potential_decile1 t1 - INNER JOIN brand_market_mapping t2 - ON t1.mkt_code = t2.market_code - INNER JOIN imscode_azcode t3 - ON t2.brand_code = t3.brandcode - INNER JOIN ALL_pack_mkt t4 - ON t3.ims_pack_cod = t4.pack_cod -), - --- 外部市场与默认潜力市场的mapping关系(一对一的关系) --- 增加对手工数据的处理 -default_potential_market AS ( - SELECT DISTINCT - REPLACE(REPLACE(REPLACE(UPPER(market), '(', '('), ')', ')'), ' (', '(') AS market, - REPLACE( - REPLACE(REPLACE(UPPER(Default_Potential_Market), '(', '('), ')', ')'), - ' (', - '(' - ) AS Default_Potential_Market - FROM dwd.dwd_gnd_ext_default_potential_market_link -), - --- 潜力数据只到机构 + 市场,不到产品 -potential_decile3 AS ( - SELECT DISTINCT - t1.inst_code, - t1.market, - NVL(t2.potential_mkt_code, '') AS potential_mkt_code, - NVL(t2.potential_mkt_name, '') AS potential_mkt_name, - CASE - WHEN t2.potential_mkt_name IS NOT NULL AND t3.default_potential_market IS NULL - THEN '0' - WHEN t2.potential_mkt_name IS NULL - THEN '' - ELSE '1' - END AS is_defult_potential_mkt, - NVL(t2.potential_type, '') AS potential_type_code, - NVL(t2.potential_type_name, '') AS potential_type_name, - NVL(t2.is_defult_potential_type, '') AS is_defult_potential_type, - -- 潜力值字段类型decimal(25,8),不转成空字符串了 - t2.potential_value, - NVL(t2.decile, '') AS decile, - NVL(t2.decile_group, '') AS decile_group - FROM ALL_INS_mkt t1 - LEFT JOIN potential_decile2 t2 - ON t1.inst_code = t2.inst_code - AND t1.market = t2.market - LEFT JOIN default_potential_market t3 - ON REPLACE(REPLACE(REPLACE(UPPER(t1.market), '(', '('), ')', ')'), ' (', '(') = t3.market - AND REPLACE(REPLACE(REPLACE(UPPER(t2.potential_mkt_name), '(', '('), ')', ')'), ' (', '(') = t3.Default_Potential_Market -) - -SELECT DISTINCT - t1.inst_code, - t1.market, - t2.potential_mkt_code, - t2.potential_mkt_name, - t2.is_defult_potential_mkt, - t2.potential_type_code, - t2.potential_type_name, - t2.is_defult_potential_type, - t2.potential_value, - t2.decile, - t2.decile_group, - CASE - WHEN t2.decile = '' THEN 99 - ELSE CAST(t2.decile AS INT) - END AS decile_order, - CASE - WHEN t1.inst_code IS NULL OR t1.inst_code = '' THEN 'ROC' - ELSE t1.inst_code - END AS audit_cod, - 'AIA(Monthly)' AS DATA_SOURCE -FROM ALL_INS_mkt t1 -LEFT JOIN potential_decile3 t2 - ON t1.inst_code = t2.inst_code - AND t1.MARKET = t2.MARKET; - --- COMMAND ---------- - ---没有默认潜力市场的市场,增加一条假的默认潜力市场数据 -with mkt1 as ( - select distinct - market - from - dm.dm_td_aia_inst_mkt -), -mkt2 as ( - select distinct - market - from - dm.dm_td_aia_inst_mkt - where - is_defult_potential_mkt = '1' -), -mkt as ( - select - a.market - from - mkt1 a - left join mkt2 b - on a.market = b.market - where - b.market is null -), -all_inst_mkt as ( - select distinct - t1.inst_code, - t1.audit_cod, - t1.market - from - dm.dm_td_aia_inst_mkt t1 - inner join mkt t2 - on t1.market = t2.market -) insert into dm.dm_td_aia_inst_mkt ( - inst_code, - market, - potential_mkt_code, - potential_mkt_name, - is_defult_potential_mkt, - potential_type_code, - potential_type_name, - is_defult_potential_type, - potential_value, - decile, - decile_group, - decile_order, - audit_cod, - DATA_SOURCE -) - select distinct - inst_code, - market, - '' as potential_mkt_code, - '' as potential_mkt_name, - '1' as is_defult_potential_mkt, - '' as potential_type_code, - '' as potential_type_name, - '1' as is_defult_potential_type, - null as potential_value, - '' as decile, - '' as decile_group, - 99 as decile_order, - audit_cod, - 'AIA(Monthly)' as DATA_SOURCE - from - all_inst_mkt \ No newline at end of file diff --git a/EXTERNAL/for_AIA_Dashboard/01 dm_td_aia_inst_mkt.sql:Zone.Identifier b/EXTERNAL/for_AIA_Dashboard/01 dm_td_aia_inst_mkt.sql:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2x 'Vacant' - -union all -select distinct -t2.dsm_kcode as KCODE, -'dsm' as role, -t2.mr_trty_code, -concat(t0.AUDIT_COD,'AIA(Monthly)') as AUDIT_SOURCE, -concat(t0.MARKET,'AIA(Monthly)') as MKT_SOURCE, -concat(t2.bu_code,'AIA(Monthly)') as BU_CODE_AUTH, -concat(t3.pack_cod,'AIA(Monthly)') as PACK_SOURCE -from ALL_AUDIT_Market t0 -inner join inst_market t1 -on t0.AUDIT_COD = t1.inst_code -and t0.market = t1.market -inner join dsm_rsm_all t2 -on t1.trty_code = t2.mr_trty_code -and t1.yyyymm = t2.yyyymm -inner join pack_market t3 -on t1.market = t3.market --- where t2.dsm_name <> 'Vacant' - -union all -select distinct -t2.rsm_kcode as KCODE, -'rsm' as role, -t2.mr_trty_code, -concat(t0.AUDIT_COD,'AIA(Monthly)') as AUDIT_SOURCE, -concat(t0.MARKET,'AIA(Monthly)') as MKT_SOURCE, -concat(t2.bu_code,'AIA(Monthly)') as BU_CODE_AUTH, -concat(t3.pack_cod,'AIA(Monthly)') as PACK_SOURCE -from ALL_AUDIT_Market t0 -inner join inst_market t1 -on t0.AUDIT_COD = t1.inst_code -and t0.market = t1.market -inner join orgWithoutDsm t2 -on t1.trty_code = t2.mr_trty_code -and t1.yyyymm = t2.yyyymm -inner join pack_market t3 -on t1.market = t3.market --- where t2.rsm_name <> 'Vacant' -union all -select distinct -t2.rsd_kcode as KCODE, -'rsd' as role, -t2.mr_trty_code, -concat(t0.AUDIT_COD,'AIA(Monthly)') as AUDIT_SOURCE, -concat(t0.MARKET,'AIA(Monthly)') as MKT_SOURCE, -concat(t2.bu_code,'AIA(Monthly)') as BU_CODE_AUTH, -concat(t3.pack_cod,'AIA(Monthly)') as PACK_SOURCE -from ALL_AUDIT_Market t0 -inner join inst_market t1 -on t0.AUDIT_COD = t1.inst_code -and t0.market = t1.market -inner join orgWithoutDsm t2 -on t1.trty_code = t2.mr_trty_code -and t1.yyyymm = t2.yyyymm -inner join pack_market t3 -on t1.market = t3.market --- where t2.rsd_name <> 'Vacant' -union all -select distinct -t2.nsd_kcode as KCODE, -'nsd' as role, -t2.mr_trty_code, -concat(t0.AUDIT_COD,'AIA(Monthly)') as AUDIT_SOURCE, -concat(t0.MARKET,'AIA(Monthly)') as MKT_SOURCE, -concat(t2.bu_code,'AIA(Monthly)') as BU_CODE_AUTH, -concat(t3.pack_cod,'AIA(Monthly)') as PACK_SOURCE -from ALL_AUDIT_Market t0 -inner join inst_market t1 -on t0.AUDIT_COD = t1.inst_code -and t0.market = t1.market -inner join orgWithoutDsm t2 -on t1.trty_code = t2.mr_trty_code -and t1.yyyymm = t2.yyyymm -inner join pack_market t3 -on t1.market = t3.market --- where t2.nsd_name <> 'Vacant' - --- COMMAND ---------- - -insert overwrite table dm.dm_auth_aia_sales_geo -select distinct KCODE,AUDIT_SOURCE -from aia_auth_sales - --- COMMAND ---------- - -insert overwrite table dm.dm_auth_aia_sales_mkt -select distinct KCODE,MKT_SOURCE -from aia_auth_sales - --- COMMAND ---------- - -insert overwrite table dm.dm_auth_aia_sales_org -select distinct -KCODE, -role, -mr_trty_code, -concat(mr_trty_code,'AIA(Monthly)') as trty_source -from aia_auth_sales - --- COMMAND ---------- - -insert overwrite table dm.dm_auth_aia_sales_pack -select distinct KCODE,PACK_SOURCE -from aia_auth_sales \ No newline at end of file diff --git a/EXTERNAL/for_AIA_Dashboard/02 dm_td_aia_auth_sales.sql:Zone.Identifier b/EXTERNAL/for_AIA_Dashboard/02 dm_td_aia_auth_sales.sql:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2xdl#JyUFr831@K2x 0 -) ---销量最大月 -,sales_maxym as ( -select max(yyyymm) as max_ym -from dm.dm_tf_external_sales -where data_source = 'AIA(Monthly)' -) ---无销量的机构,by yyyymm -,no_sales_ins_yyyymm as ( -select t1.YYYYMM, -t1.cpa_hospital_code, -t1.inst_code, -t1.inst_name, -left(t1.yyyymm,4) as year, -right(t1.yyyymm,2) as MM -from ALL_INS_yyyymm t1 -left join sales_ins t2 -on t1.inst_code = t2.inst_code -and t1.YYYYMM = t2.YYYYMM -cross join sales_maxym t3 -where t2.inst_code is null -and t1.YYYYMM <= t3.max_ym -) ---无销量的机构,by year -,no_sales_ins_year1 as ( -select distinct -year, -cpa_hospital_code, -inst_code, -inst_name, -case when MM = '01' then 'N' end as January, -case when MM = '02' then 'N' end as February, -case when MM = '03' then 'N' end as March, -case when MM = '04' then 'N' end as April, -case when MM = '05' then 'N' end as May, -case when MM = '06' then 'N' end as June, -case when MM = '07' then 'N' end as July, -case when MM = '08' then 'N' end as August, -case when MM = '09' then 'N' end as September, -case when MM = '10' then 'N' end as October, -case when MM = '11' then 'N' end as November, -case when MM = '12' then 'N' end as December -from no_sales_ins_yyyymm -) -,no_sales_ins_year2 as ( -select -year, -cpa_hospital_code, -inst_code, -inst_name, -MAX(January) as January, -MAX(February) as February, -MAX(March) as March, -MAX(April) as April, -MAX(May) as May, -MAX(June) as June, -MAX(July) as July, -MAX(August) as August, -MAX(September) as September, -MAX(October) as October, -MAX(November) as November, -MAX(December) as December -from no_sales_ins_year1 -group by year,cpa_hospital_code,inst_code,inst_name -) - -select distinct -t1.year, -t1.cpa_hospital_code as cpa_ins_code, -t1.inst_code as az_ins_code, -t1.inst_name as az_ins_name, -NVL(t2.January,'') as January, -NVL(t2.February,'') as February, -NVL(t2.March,'') as March, -NVL(t2.April,'') as April, -NVL(t2.May,'') as May, -NVL(t2.June,'') as June, -NVL(t2.July,'') as July, -NVL(t2.August,'') as August, -NVL(t2.September,'') as September, -NVL(t2.October,'') as October, -NVL(t2.November,'') as November, -NVL(t2.December,'') as December, -from_utc_timestamp(current_timestamp,'UTC+8') as etl_insert_dt, -from_utc_timestamp(current_timestamp,'UTC+8') as etl_update_dt -from ALL_INS_year t1 -left join no_sales_ins_year2 t2 -on t1.year = t2.year -and t1.cpa_hospital_code = t2.cpa_hospital_code diff --git a/EXTERNAL/for_AIA_Dashboard/04 dm_td_aia_nosales_inst.sql:Zone.Identifier b/EXTERNAL/for_AIA_Dashboard/04 dm_td_aia_nosales_inst.sql:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2x 'NA' -) - -SELECT - base.inst_code, - famil_mkt.market, - base.project_name, - 'AIA(Monthly)' DATA_SOURCE, - base.inst_code AUDIT_COD -FROM base -INNER JOIN cvh_org - ON base.yyyymm = cvh_org.key_value -LEFT SEMI JOIN dm.dm_ext_aia_sales t_aia -- 替代 DISTINCT + INNER JOIN - ON base.inst_code = t_aia.inst_code -INNER JOIN famil_mkt - ON base.family_code = famil_mkt.prd_family_cd \ No newline at end of file diff --git a/EXTERNAL/for_AIA_Dashboard/05 dm_td_aia_is_eagle_flag.sql:Zone.Identifier b/EXTERNAL/for_AIA_Dashboard/05 dm_td_aia_is_eagle_flag.sql:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2x 'OTHERS' -), -prod_sales AS ( - SELECT /*+ BROADCAST(pack_prod) */ - p.PROD_DES_C, - SUM(s.SALES_VALUE_CAL) AS SALES_VALUE_CAL - FROM dm.dm_tf_ext_aia_sales s - INNER JOIN pack_prod p ON s.PACK_CODE = p.PACK_COD - WHERE s.yyyymm BETWEEN CONCAT(LEFT((SELECT max_yyyymm FROM max_month), 4), '01') - AND (SELECT max_yyyymm FROM max_month) - GROUP BY p.PROD_DES_C -) -SELECT PROD_DES_C, - DENSE_RANK() OVER (ORDER BY SALES_VALUE_CAL DESC, PROD_DES_C) AS RANK -FROM prod_sales -UNION ALL SELECT 'Market', -1 -UNION ALL SELECT 'AZ Total', 0 -UNION ALL SELECT 'OTHERS', (SELECT COUNT(*) + 1 FROM prod_sales) - --- COMMAND ---------- - ---Class的排名 -insert overwrite table dm.dm_td_aia_class_rank -WITH max_month AS ( - SELECT MAX(yyyymm) AS max_yyyymm - FROM (SELECT DISTINCT yyyymm FROM dm.dm_tf_ext_aia_sales) t -), -pack_class AS ( - SELECT DISTINCT PACK_CODE, upper(class) class - FROM dm.dm_td_ext_aia_market_pack_mapping - WHERE class <> '-' -), -class_sales AS ( - SELECT /*+ BROADCAST(pack_class) */ - c.class, - SUM(s.SALES_VALUE_CAL) AS SALES_VALUE_CAL - FROM dm.dm_tf_ext_aia_sales s - INNER JOIN pack_class c ON s.PACK_CODE = c.PACK_CODE - WHERE s.yyyymm BETWEEN CONCAT(LEFT((SELECT max_yyyymm FROM max_month), 4), '01') - AND (SELECT max_yyyymm FROM max_month) - GROUP BY c.class -) -SELECT class, - DENSE_RANK() OVER (ORDER BY SALES_VALUE_CAL DESC, class) AS RANK -FROM class_sales -UNION ALL SELECT 'Market', -1 -UNION ALL SELECT 'AZ Total', 0 -UNION ALL SELECT '-', (SELECT COUNT(*) + 1 FROM class_sales) - --- COMMAND ---------- - -INSERT OVERWRITE TABLE dm.dm_td_aia_key_competitor_rank -WITH max_month AS ( - SELECT MAX(yyyymm) AS max_yyyymm - FROM (SELECT DISTINCT yyyymm FROM dm.dm_tf_ext_aia_sales) t -), -pack_key_competitor AS ( - SELECT DISTINCT L.PACK_CODE, R.KEY_COMPETITOR_CN - FROM dm.dm_td_ext_aia_market_pack_mapping l - INNER JOIN (SELECT DISTINCT - PROD_DESC,max(PROD_DESC_C) KEY_COMPETITOR_CN - FROM dm.dm_td_ext_aia_pack_property - GROUP BY 1) r on UPPER(l.KEY_COMPETITOR) = UPPER(r.PROD_DESC) - WHERE KEY_COMPETITOR <> 'OTHERS' -), -key_competitor_sales AS ( - SELECT /*+ BROADCAST(pack_key_competitor) */ - k.KEY_COMPETITOR_CN, - SUM(s.SALES_VALUE_CAL) AS SALES_VALUE_CAL - FROM dm.dm_tf_ext_aia_sales s - INNER JOIN pack_key_competitor k ON s.PACK_CODE = k.PACK_CODE - WHERE s.yyyymm BETWEEN CONCAT(LEFT((SELECT max_yyyymm FROM max_month), 4), '01') - AND (SELECT max_yyyymm FROM max_month) - GROUP BY k.KEY_COMPETITOR_CN -) -SELECT KEY_COMPETITOR_CN, - DENSE_RANK() OVER (ORDER BY SALES_VALUE_CAL DESC, KEY_COMPETITOR_CN) AS RANK -FROM key_competitor_sales -UNION ALL SELECT 'Market', -1 -UNION ALL SELECT 'AZ Total', 0 -UNION ALL SELECT 'OTHERS', (SELECT COUNT(*) + 1 FROM key_competitor_sales) - --- COMMAND ---------- - ---molecule的排名 -insert overwrite table dm.dm_td_aia_molecule_rank -WITH max_month AS ( - SELECT MAX(yyyymm) AS max_yyyymm - FROM (SELECT DISTINCT yyyymm FROM dm.dm_tf_ext_aia_sales) t -), -pack_CMPS AS ( - -- 过滤前移,缩小维表体积再 BROADCAST - SELECT DISTINCT PACK_CODE, CMPS_DESC_C - FROM DM.dm_td_ext_aia_pack_property - WHERE PROD_DESC_C <> 'OTHERS' -), -prod_sales AS ( - SELECT /*+ BROADCAST(pack_prod) */ - p.CMPS_DESC_C, - SUM(s.SALES_VALUE_CAL) AS SALES_VALUE_CAL - FROM dm.dm_tf_ext_aia_sales s - INNER JOIN pack_CMPS p ON s.PACK_CODE = p.PACK_CODE - WHERE s.yyyymm BETWEEN CONCAT(LEFT((SELECT max_yyyymm FROM max_month), 4), '01') - AND (SELECT max_yyyymm FROM max_month) - GROUP BY p.CMPS_DESC_C -) -SELECT CMPS_DESC_C, - DENSE_RANK() OVER (ORDER BY SALES_VALUE_CAL DESC, CMPS_DESC_C) AS RANK -FROM prod_sales -UNION ALL SELECT 'Market', -1 -UNION ALL SELECT 'AZ Total', 0 -UNION ALL SELECT 'OTHERS', (SELECT COUNT(*) + 1 FROM prod_sales) \ No newline at end of file diff --git a/EXTERNAL/for_AIA_Dashboard/06 dm_td_aia_rank.sql:Zone.Identifier b/EXTERNAL/for_AIA_Dashboard/06 dm_td_aia_rank.sql:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2x brand 转换成 market --- MAGIC - dwd_gnd_aia_mark_ins_data_by_mkt 与 brand 的进行拼接 得到 market ins data all market --- MAGIC - 生成 dm.dm_ext_td_mark_ins_data_remove - --- COMMAND ---------- - --- DBTITLE 1,创建brand的dwd临时视图 -create or replace temporary view temp_by_brand as -select - azinscode as ins_code - ,upper(azbrandnamee) as brand_name -from dwd.dwd_gnd_aia_mark_ins_data_by_brand -group by 1,2 - --- COMMAND ---------- - --- DBTITLE 1,创建mkt 的临时dwd视图 -create or replace temporary view temp_by_mkt as -select - azinscode as azinscode - ,market -from dwd.dwd_gnd_aia_mark_ins_data_by_mkt -group by 1,2 - --- COMMAND ---------- - --- DBTITLE 1,将brand转换成market -create or replace temporary view temp_aia_data_flag as -with pack_and_brand ( --brand 转 pack - select - upper(brandnamee) brand_name - ,ims_pack_cod PACK_COD --取所有code带出market - from dwd.dwd_td_imscode_azcode - where ims_pack_cod is not null and startswith(ims_pack_cod,'0') - and upper(brandnamee) in (select brand_name from temp_by_brand group by 1 )--取出在配置表中的pack - group by 1,2 - ) -,pack_to_market ( - select - a.PACK_CODE - ,a.MARKET - from dm.dm_td_ext_aia_market_pack_mapping a - where --只取 AIA中的市场 - lower(a.MARKET) not like '%all market%' - group by 1,2 -) - -select distinct - t1.brand_name - ,t1.ins_code - ,t3.market -from temp_by_brand t1 -left join pack_and_brand t2 on t1.brand_name = t2.brand_name -inner join pack_to_market t3 on t2.pack_cod = t3.pack_code -where t1.ins_code in (select distinct audit_code from dm.dm_tf_ext_aia_sales ) --没有销量的机构不展示 - -union all - -select - 'remove_directly_by_mkt' as brand_name - ,azinscode - ,market -from temp_by_mkt--dwd.dwd_gnd_aia_mark_ins_data_by_mkt -where azinscode in (select distinct audit_code from dm.dm_tf_ext_aia_sales ) --没有销量的机构不展示 -GROUP BY azinscode,market - --- COMMAND ---------- - --- DBTITLE 1,写入dws层 -insert overwrite dws.dws_ext_aia_data_remove_flag -select - ins_code - ,brand_name - ,market - ,from_utc_timestamp(current_timestamp,'UTC+8') etl_insert_dt -from temp_aia_data_flag - --- COMMAND ---------- - --- DBTITLE 1,写入dm层并去重 -insert overwrite dm.dm_ext_aia_data_remove_flag -select - ins_code - ,market - ,from_utc_timestamp(current_timestamp,'UTC+8') etl_insert_dt -from dws.dws_ext_aia_data_remove_flag -group by - ins_code - ,market - --- COMMAND ---------- - --- DBTITLE 1,DDL 语句 --- CREATE OR REPLACE TABLE dm.dm_ext_aia_data_remove_flag ( --- ins_code STRING COMMENT '机构编码', --- market STRING COMMENT '市场', --- etl_insert_dt TIMESTAMP COMMENT 'ETL时间') --- USING delta --- -- LOCATION 'abfss://master@retaildlstoragetest.dfs.core.chinacloudapi.cn/DM/dm_ext_aia_data_remove_flag' --- LOCATION 'abfss://master@azcdatalakeprd.dfs.core.chinacloudapi.cn/DM/dm_ext_aia_data_remove_flag'; - --- CREATE OR REPLACE TABLE dws.dws_ext_aia_data_remove_flag ( --- ins_code STRING COMMENT '机构编码', --- brand_name STRING COMMENT '产品名称,用来区分配置表来源', --- market STRING COMMENT '市场', --- etl_insert_dt TIMESTAMP) --- USING delta --- -- LOCATION 'abfss://master@retaildlstoragetest.dfs.core.chinacloudapi.cn/DWS/dws_ext_aia_data_remove_flag' --- LOCATION 'abfss://master@azcdatalakeprd.dfs.core.chinacloudapi.cn/DWS/dws_ext_aia_data_remove_flag' \ No newline at end of file diff --git a/EXTERNAL/for_AIA_Dashboard/07 dm_ext_aia_data_remove_flag.sql:Zone.Identifier b/EXTERNAL/for_AIA_Dashboard/07 dm_ext_aia_data_remove_flag.sql:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2xdl#JyUFr831@K2x1 -) -select - t1.ins_code - ,t1.market - ,t1.light - ,case when t2.az_inscode is not null then 1 else 0 end as is_newly_added - ,'AIA(Monthly)' data_source - ,from_utc_timestamp(current_timestamp,'UTC+8') etl_insert_dt -from market_ins_light_flag t1 -left join temp_extinscode_2_azinscode t2 on t1.ins_code = t2.az_inscode -- 是否是新增机构 --- where t2.az_inscode is not null -group by 1,2,3,4,5 - --- COMMAND ---------- - --- DBTITLE 1,dm层 -insert overwrite dm.dm_ext_aia_data_quality_flag -select - t1.ins_code - ,t2.province_name - ,t2.city_name - ,t1.market - ,t1.light - ,t1.is_newly_added - ,t1.data_source - ,from_utc_timestamp(current_timestamp,'UTC+8') etl_insert_dt -from dws.dws_ext_aia_data_quality_flag t1 -left join dm.dm_td_institution t2 on t1.ins_code = t2.inst_code --获取机构地理信息中的省份和城市 - --- COMMAND ---------- - --- MAGIC %md --- MAGIC ### pbi 语句 - --- COMMAND ---------- - --- with mapping( --- select 1 as o_value,'Y' as display_value --- union all --- select 0,'' --- ) --- select --- ins_code --- ,province_name --- ,city_name --- ,market --- -- ,pack_cod --- -- ,concat(pack_cod ,data_source) pack_key --- ,b.display_value as is_newly_added --- ,concat(ins_code ,data_source) audit_key --- ,case --- when min(light) = 1 then '红灯' --- when min(light) = 2 then '黄灯' --- else '绿灯' --- end as light --- from dm.dm_ext_aia_data_quality_flag a --- left join mapping b on a.is_newly_added = b.o_value --- group by 1,2,3,4,5,6 - --- COMMAND ---------- - --- MAGIC %md --- MAGIC ### ddl 语句 - --- COMMAND ---------- - --- drop table dws.dws_ext_aia_data_quality_flag - --- COMMAND ---------- - --- CREATE or REPLACE TABLE dws.dws_ext_aia_data_quality_flag ( --- ins_code STRING, --- market STRING, --- light INT COMMENT '0 red 1 yellow 2 green', --- is_newly_added INT COMMENT '1 newly_added 0 old', --- data_source STRING, --- etl_insert_dt TIMESTAMP) --- USING delta --- LOCATION 'abfss://master@azcdatalakeprd.dfs.core.chinacloudapi.cn/DWS/dws_ext_aia_data_quality_flag' --- LOCATION 'abfss://master@retaildlstoragetest.dfs.core.chinacloudapi.cn/DWS/dws_ext_aia_data_quality_flag' - --- COMMAND ---------- - --- CREATE or REPLACE TABLE dm.dm_ext_aia_data_quality_flag ( --- ins_code STRING, --- province_name STRING, --- city_name STRING, --- market STRING, --- light INT COMMENT '0 red 1 yellow 2 green', --- is_newly_added INT COMMENT '1 newly_added 0 old', --- data_source STRING, --- etl_insert_dt TIMESTAMP) --- USING delta --- LOCATION 'abfss://master@azcdatalakeprd.dfs.core.chinacloudapi.cn/DM/dm_ext_aia_data_quality_flag' --- LOCATION 'abfss://master@retaildlstoragetest.dfs.core.chinacloudapi.cn/DM/dm_ext_aia_data_quality_flag' \ No newline at end of file diff --git a/EXTERNAL/for_AIA_Dashboard/08 dm_ext_aia_data_quality_flag.sql:Zone.Identifier b/EXTERNAL/for_AIA_Dashboard/08 dm_ext_aia_data_quality_flag.sql:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2x= '202001' - AND A.MARKET = 'IMS ALL Market' - GROUP BY - A.YYYYMM, - A.PACK_COD, - A.AUDIT_COD - --- COMMAND ---------- - --- DBTITLE 1,COUNTY --- DELETE FROM --- dm.dm_tf_external_sales --- WHERE --- DATA_SOURCE = 'IQVIA-COUNTY(Quarterly)'; - -INSERT INTO dm.dm_tf_external_sales ( - YYYYMM, - PACK_COD, - AUDIT_COD, - DATA_SOURCE, - SALES_UNIT_CAL, - SALES_UNIT_CAL_LY, - SALES_VALUE_CAL, - SALES_VALUE_CAL_LY, - CONUTING_UNIT, - CONUTING_UNIT_LY, - prescription, - prescription_ly, - PACK_FLAG, - PROD_FLAG, - DTP_FLAG, - cmps_flag, - PLATFORM_TYPE, - STORE_NAME, - STORE_TYPE, - REGION_TYPE, - inst_code, - dept_name, - new_code, - area, - h_level, - reimburse, - reimburse_type, - prescription_source, - CORP_COD - ) - SELECT - A.YYYYMM, - A.PACK_COD, - A.AUDIT_COD, - 'IQVIA-COUNTY(Quarterly)' DATA_SOURCE, - ------------------------------------- - SUM(SALES_UNIT_CAL) SALES_UNIT_CAL, - SUM(SALES_UNIT_CAL_LY) as SALES_UNIT_CAL_LY, - SUM(SALES_VALUE_CAL) SALES_VALUE_CAL, - SUM(SALES_VALUE_CAL_LY) as SALES_VALUE_CAL_LY, - SUM(CONUTING_UNIT) CONUTING_UNIT, - SUM(CONUTING_UNIT_LY) as CONUTING_UNIT_LY, - null as prescription, - null as prescription_ly, - ------------------------------------- - --Retail藏数逻辑标签------------------ - 1 PACK_FLAG, - 1 PROD_FLAG, - 0 DTP_FLAG, - null as cmps_flag, - ------------------------------------- - --EC数据标签-------------------------- - '' PLATFORM_TYPE, - '' STORE_NAME, - '' STORE_TYPE, - ------------------------------------- - --COUNTY数据标签---------------------- - NVL(A.REGION_TYPE, '') REGION_TYPE, - ------------------------------------- - --AIA数据标签------------------------- - null inst_code, --可以移除,报告没有使用 - ------------------------------------- - --XIE HE 数据标签--------------------- - '' as dept_name, - '' as new_code, - '' as area, - '' as h_level, - '' as reimburse, - '' as reimburse_type, - '' as prescription_source, - ------------------------------------- - '' as CORP_COD --可以移除,报告没有使用 - ------------------------------------- - FROM - DM.dm_ext_county_tf_sales_region A - where - A.YYYYMM >= '202001' - AND A.MARKET = 'IMS ALL Market' - GROUP BY - A.YYYYMM, - A.PACK_COD, - A.AUDIT_COD, - A.REGION_TYPE - --- COMMAND ---------- - --- DBTITLE 1,THC --- DELETE FROM --- dm.dm_tf_external_sales --- WHERE --- DATA_SOURCE = 'THC(Quarterly)'; - -INSERT INTO dm.dm_tf_external_sales ( - YYYYMM, - PACK_COD, - AUDIT_COD, - DATA_SOURCE, - SALES_UNIT_CAL, - SALES_UNIT_CAL_LY, - SALES_VALUE_CAL, - SALES_VALUE_CAL_LY, - CONUTING_UNIT, - CONUTING_UNIT_LY, - prescription, - prescription_ly, - PACK_FLAG, - PROD_FLAG, - DTP_FLAG, - cmps_flag, - PLATFORM_TYPE, - STORE_NAME, - STORE_TYPE, - REGION_TYPE, - inst_code, - dept_name, - new_code, - area, - h_level, - reimburse, - reimburse_type, - prescription_source, - CORP_COD - ) - SELECT - A.YYYYMM, - A.PACK_COD, - A.AUDIT_COD, - 'THC(Quarterly)' DATA_SOURCE, - ------------------------------------- - SALES_UNIT_CAL, - SALES_UNIT_CAL_LY, - SALES_VALUE_CAL, - SALES_VALUE_CAL_LY, - COUNTING_UNIT, - COUNTING_UNIT_LY , - null as prescription, - null as prescription_ly, - ------------------------------------- - --Retail藏数逻辑标签------------------ - 1 PACK_FLAG, - 1 PROD_FLAG, - 0 DTP_FLAG, - null as cmps_flag, - ------------------------------------- - --EC数据标签-------------------------- - '' PLATFORM_TYPE, - '' STORE_NAME, - '' STORE_TYPE, - ------------------------------------- - --COUNTY数据标签---------------------- - '' REGION_TYPE, - ------------------------------------- - --AIA数据标签------------------------- - null inst_code, --可以移除,报告没有使用 - ------------------------------------- - --XIE HE 数据标签--------------------- - '' as dept_name, - '' as new_code, - '' as area, - '' as h_level, - '' as reimburse, - '' as reimburse_type, - '' as prescription_source, - ------------------------------------- - '' as CORP_COD --可以移除,报告没有使用 - ------------------------------------- - FROM - dm.dm_ext_thc_sales A - where - AUDIT_COD = 'CHT' - --- COMMAND ---------- - --- DBTITLE 1,CHC_RAW_DATA -------------------------------------------------------------------------------CHC------------------------------------------------------------------- -CREATE OR REPLACE TEMPORARY VIEW V_CHC_RAW_DATA AS -with exchc_rawdata_temp as ( --主表数据 - select - CASE - WHEN SUBSTRING(yq, 5,2) = 'Q1' THEN CONCAT(SUBSTRING(yq, 1, 4), '03') - WHEN SUBSTRING(yq, 5, 2) = 'Q2' THEN CONCAT(SUBSTRING(yq, 1, 4), '06') - WHEN SUBSTRING(yq, 5, 2) = 'Q3' THEN CONCAT(SUBSTRING(yq, 1, 4), '09') - WHEN SUBSTRING(yq, 5, 2) = 'Q4' THEN CONCAT(SUBSTRING(yq, 1, 4), '12') - ELSE yq - END AS yq, - city_c, - pack_cod, - prod_cod, - value, - totalunit, - countingunit - from dwd.dwd_gnd_chc_rawdata - where year >= '2021' -), -temp_corp as ( - select - PACK_COD, - CORP_COD, - CORP_DES - from dm.dm_ims_td_pack_property - group by PACK_COD,CORP_COD,CORP_DES -), -chc_pack_property_clean as ( -select distinct - iqvia_pack_code , - iqvia_prod_code , - pack_cod , - 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 , - 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 , - builtinarchivedate , - source_file_path , - source_file_name , - etl_insert_dt , - countingunit -from dwd.dwd_gnd_ext_chc_pack_property -), -temp_corp_temp as ( -- chc本身唯独表 存在corp_cod以及 CORP_DES 与手工数据不一致的问题 - select - t1.pack_cod, - t1.iqvia_pack_code, - t1.countingunit, - coalesce(t2.CORP_COD, t1.CORP_COD) as CORP_COD , - coalesce(t2.CORP_DES,t1.CORP_DES ) as CORP_DES - from chc_pack_property_clean t1 - left join temp_corp t2 - on t1.iqvia_pack_code = t2.PACK_COD -), -dim_exchc_geo as ( - -- geo相关信息 在CHPA中没有 苏州、无锡、福州等数据,根据业务反馈,按照 city_c当作AUDIT_COD - select - t1.city_e, - concat( t1.city_c , '市') as city_c, - upper( nvl(t2.AUDIT_COD ,t1.city_e) ) as AUDIT_COD - from dwd.dwd_gnd_ext_chc_geo t1 - left join dm.dm_ims_td_geo t2 - on t1.city_e= t2.city --- --20260122 按照新的业务逻辑,直接用城市名称匹配获得省份code --- SELECT DISTINCT city_name,province_code,province_name FROM DM.dm_td_geography --- WHERE nvl(city_code,'')!='' and nvl(province_code,'')!='' and nvl(province_name,'')!='' -), -exchc_rawdata_iqvia as ( - select - t1.yq , - t1.city_c, - -- t1.pack_cod pack_cod_old, - t3.iqvia_pack_code as pack_cod, - t3.CORP_COD as CORP_COD, - C.AUDIT_COD as AUDIT_COD, - t1.prod_cod, - t1.value, - t1.totalunit, - -- t1.countingunit, - t1.totalunit * nvl(t3.countingunit,1 ) as countingunit - -- t2.countingunit as tt - from exchc_rawdata_temp t1 - left join temp_corp_temp t3 - on t1.pack_cod = t3.pack_cod - LEFT JOIN dim_exchc_geo C - ON t1.CITY_C = C.city_c -), -value_temp as( - select - a.yq, - a.AUDIT_COD, - a.pack_cod, - --t1.prod_cod, - a.CORP_COD, - sum(a.value) value, - sum(a.totalunit) totalunit, - sum(a.countingunit) countingunit, - sum(value_ly) value_ly, - sum(totalunit_ly) totalunit_ly, - sum(countingunit_ly) countingunit_ly - from ( - select - t1.yq, - t1.AUDIT_COD, - t1.pack_cod, - --t1.prod_cod, - t1.CORP_COD, - t1.value, - t1.totalunit, - t1.countingunit, - 0 value_ly, - 0 totalunit_ly, - 0 countingunit_ly - from exchc_rawdata_iqvia t1 - union all - select - cast(t1.yq+100 as int), - t1.AUDIT_COD, - t1.pack_cod, - --t1.prod_cod, - t1.CORP_COD, - 0 value, - 0 totalunit, - 0 countingunit, - t1.value value_ly, - t1.totalunit totalunit_ly, - t1.countingunit countingunit_ly - from exchc_rawdata_iqvia t1 - WHERE T1.YQ+100 <= (SELECT MAX(YQ) FROM exchc_rawdata_iqvia) - ) a - group by a.yq, - a.AUDIT_COD, - a.pack_cod, - --t1.prod_cod, - a.CORP_COD -) - -select - t1.yq as YYYYMM , - t1.AUDIT_COD, - t1.pack_cod, - t1.CORP_COD - --t1.prod_cod - ,sum(totalunit) AS SALES_UNIT_CAL -- totalunit - ,sum(totalunit_ly) AS SALES_UNIT_CAL_LY --totalunit_ly - ,sum(value) AS SALES_VALUE_CAL --value - ,sum(value_ly ) AS SALES_VALUE_CAL_LY - ,sum(countingunit) AS CONUTING_UNIT --countingunit - ,sum(countingunit_ly) AS CONUTING_UNIT_LY - ,'CHC(Quarterly)' as DATA_SOURCE - from value_temp t1 - group by 1,2,3,4 - --- COMMAND ---------- - --- DBTITLE 1,CHC --- DELETE FROM --- dm.dm_tf_external_sales --- WHERE --- DATA_SOURCE = 'CHC(Quarterly)'; - -INSERT INTO dm.dm_tf_external_sales ( - YYYYMM, - PACK_COD, - AUDIT_COD, - DATA_SOURCE, - SALES_UNIT_CAL, - SALES_UNIT_CAL_LY, - SALES_VALUE_CAL, - SALES_VALUE_CAL_LY, - CONUTING_UNIT, - CONUTING_UNIT_LY, - prescription, - prescription_ly, - PACK_FLAG, - PROD_FLAG, - DTP_FLAG, - cmps_flag, - PLATFORM_TYPE, - STORE_NAME, - STORE_TYPE, - REGION_TYPE, - inst_code, - dept_name, - new_code, - area, - h_level, - reimburse, - reimburse_type, - prescription_source, - CORP_COD - ) - SELECT - A.YYYYMM, - A.PACK_COD, - A.AUDIT_COD, - 'CHC(Quarterly)' DATA_SOURCE, - ------------------------------------- - SALES_UNIT_CAL, - SALES_UNIT_CAL_LY, - SALES_VALUE_CAL, - SALES_VALUE_CAL_LY, - CONUTING_UNIT, - CONUTING_UNIT_LY, - null as prescription, - null as prescription_ly, - ------------------------------------- - --Retail藏数逻辑标签------------------ - 1 PACK_FLAG, - 1 PROD_FLAG, - 0 DTP_FLAG, - null as cmps_flag, - ------------------------------------- - --EC数据标签-------------------------- - '' PLATFORM_TYPE, - '' STORE_NAME, - '' STORE_TYPE, - ------------------------------------- - --COUNTY数据标签---------------------- - '' REGION_TYPE, - ------------------------------------- - --AIA数据标签------------------------- - null inst_code, --可以移除,报告没有使用 - ------------------------------------- - --XIE HE 数据标签--------------------- - '' as dept_name, - '' as new_code, - '' as area, - '' as h_level, - '' as reimburse, - '' as reimburse_type, - '' as prescription_source, - ------------------------------------- - '' as CORP_COD --可以移除,报告没有使用 - ------------------------------------- - FROM - V_CHC_RAW_DATA A - WHERE - YYYYMM >= ( - SELECT - CAST((LEFT(MAX(YYYYMM), 4) - 3) * 100 + 1 AS INT) - FROM - V_CHC_RAW_DATA - ) - --- COMMAND ---------- - --- DBTITLE 1,Retail --- DELETE FROM --- dm.dm_tf_external_sales --- WHERE --- DATA_SOURCE = 'Retail(Quarterly)'; - -INSERT INTO dm.dm_tf_external_sales ( - YYYYMM, - PACK_COD, - AUDIT_COD, - DATA_SOURCE, - SALES_UNIT_CAL, - SALES_UNIT_CAL_LY, - SALES_VALUE_CAL, - SALES_VALUE_CAL_LY, - CONUTING_UNIT, - CONUTING_UNIT_LY, - prescription, - prescription_ly, - PACK_FLAG, - PROD_FLAG, - DTP_FLAG, - cmps_flag, - PLATFORM_TYPE, - STORE_NAME, - STORE_TYPE, - REGION_TYPE, - inst_code, - dept_name, - new_code, - area, - h_level, - reimburse, - reimburse_type, - prescription_source, - CORP_COD - ) -SELECT - A.YYYYMM, - A.iqvia_pack_code, - trim(A.AUDIT_COD) AS AUDIT_COD, - 'Retail(Quarterly)' DATA_SOURCE, - ------------------------------------- - SUM(sales_unit) SALES_UNIT_CAL, - SUM(sales_unit_ly) as SALES_UNIT_CAL_LY, - SUM(sales_value) SALES_VALUE_CAL, - SUM(sales_value_LY) as SALES_VALUE_CAL_LY, - SUM(counting_unit) CONUTING_UNIT, - SUM(counting_unit_LY) as CONUTING_UNIT_LY, - null as prescription, - null as prescription_ly, - ------------------------------------- - --Retail藏数逻辑标签------------------ - A.PACK_FLAG, - A.brand_flag PROD_FLAG, - 0 DTP_FLAG, - case - when - max(lower(C.CMPS_DES)) in ('atorvastatin', 'rosuvastatin', 'esomeprazole', 'omeprazole') - then - 1 - else 0 - end as cmps_flag, - ------------------------------------- - --EC数据标签-------------------------- - '' PLATFORM_TYPE, - '' STORE_NAME, - '' STORE_TYPE, - ------------------------------------- - --COUNTY数据标签---------------------- - '' REGION_TYPE, - ------------------------------------- - --AIA数据标签------------------------- - null inst_code, --可以移除,报告没有使用 - ------------------------------------- - --XIE HE 数据标签--------------------- - '' as dept_name, - '' as new_code, - '' as area, - '' as h_level, - '' as reimburse, - '' as reimburse_type, - '' as prescription_source, - ------------------------------------- - '' as CORP_COD --可以移除,报告没有使用 -------------------------------------- -FROM - dm.dm_zk_retail_sales A - LEFT JOIN ( - select DISTINCT - iqvia_pack_code, - CMPS_DES - from - dm.dm_zk_retail_pack_property - ) C - ON A.iqvia_pack_code = C.iqvia_pack_code -------------------------------------- -LEFT JOIN (SELECT OTHERS_MONTH FROM tmp.tmp_dm_td_ext_retail_niad_month) D -------------------------------------- -where - A.YYYYMM >= '202001' AND A.YYYYMM <= D.OTHERS_MONTH -GROUP BY - A.YYYYMM, - A.iqvia_pack_code, - A.AUDIT_COD, - A.PACK_FLAG, - A.brand_flag - --- COMMAND ---------- - --- DBTITLE 1,DTP --- DELETE FROM --- dm.dm_tf_external_sales --- WHERE --- DATA_SOURCE = 'DTP(Quarterly)'; - -INSERT INTO dm.dm_tf_external_sales ( - YYYYMM, - PACK_COD, - AUDIT_COD, - DATA_SOURCE, - SALES_UNIT_CAL, - SALES_UNIT_CAL_LY, - SALES_VALUE_CAL, - SALES_VALUE_CAL_LY, - CONUTING_UNIT, - CONUTING_UNIT_LY, - prescription, - prescription_ly, - PACK_FLAG, - PROD_FLAG, - DTP_FLAG, - cmps_flag, - PLATFORM_TYPE, - STORE_NAME, - STORE_TYPE, - REGION_TYPE, - inst_code, - dept_name, - new_code, - area, - h_level, - reimburse, - reimburse_type, - prescription_source, - CORP_COD - ) - SELECT - A.YYYYMM, - A.iqvia_pack_code, - trim(A.AUDIT_COD) AS AUDIT_COD, - 'DTP(Quarterly)' DATA_SOURCE, - ------------------------------------- - SUM(sales_unit) SALES_UNIT_CAL, - SUM(sales_unit_ly) as SALES_UNIT_CAL_LY, - SUM(sales_value) SALES_VALUE_CAL, - SUM(sales_value_LY) as SALES_VALUE_CAL_LY, - SUM(counting_unit) CONUTING_UNIT, - SUM(counting_unit_LY) as CONUTING_UNIT_LY, - null as prescription, - null as prescription_ly, - ------------------------------------- - --Retail藏数逻辑标签------------------ - 1 PACK_FLAG, - brand_flag AS PROD_FLAG, - 1 DTP_FLAG, - null as cmps_flag, - ------------------------------------- - --EC数据标签-------------------------- - '' PLATFORM_TYPE, - '' STORE_NAME, - '' STORE_TYPE, - ------------------------------------- - --COUNTY数据标签---------------------- - '' REGION_TYPE, - ------------------------------------- - --AIA数据标签------------------------- - null inst_code, --可以移除,报告没有使用 - ------------------------------------- - --XIE HE 数据标签--------------------- - '' as dept_name, - '' as new_code, - '' as area, - '' as h_level, - '' as reimburse, - '' as reimburse_type, - '' as prescription_source, - ------------------------------------- - '' as CORP_COD --可以移除,报告没有使用 - ------------------------------------- - FROM - dm.dm_zk_retail_dtp_sales A - where - A.YYYYMM >= '202001' - GROUP BY - A.YYYYMM, - A.iqvia_pack_code, - A.AUDIT_COD, - A.brand_flag, - A.pack_flag - --- COMMAND ---------- - --- DBTITLE 1,EC --- DELETE FROM --- dm.dm_tf_external_sales --- WHERE --- DATA_SOURCE = 'EC(Monthly)'; - -INSERT INTO dm.dm_tf_external_sales ( - YYYYMM, - PACK_COD, - AUDIT_COD, - DATA_SOURCE, - SALES_UNIT_CAL, - SALES_UNIT_CAL_LY, - SALES_VALUE_CAL, - SALES_VALUE_CAL_LY, - CONUTING_UNIT, - CONUTING_UNIT_LY, - prescription, - prescription_ly, - PACK_FLAG, - PROD_FLAG, - DTP_FLAG, - cmps_flag, - PLATFORM_TYPE, - STORE_NAME, - STORE_TYPE, - REGION_TYPE, - inst_code, - dept_name, - new_code, - area, - h_level, - reimburse, - reimburse_type, - prescription_source, - CORP_COD - ) - SELECT - A.YYYYMM, - A.iqvia_pack_code, - A.AUDIT_COD, - 'EC(Monthly)' DATA_SOURCE, - ------------------------------------- - SUM(sales_unit) SALES_UNIT_CAL, - SUM(sales_unit_ly) SALES_UNIT_CAL_LY, - SUM(sales_value) SALES_VALUE_CAL, - SUM(sales_value_LY) SALES_VALUE_CAL_LY, - SUM(counting_unit) CONUTING_UNIT, - SUM(counting_unit_LY) CONUTING_UNIT_LY, - null as prescription, - null as prescription_ly, - ------------------------------------- - --Retail藏数逻辑标签------------------ - 1 PACK_FLAG, - 1 PROD_FLAG, - 0 DTP_FLAG, - null as cmps_flag, - ------------------------------------- - --EC数据标签-------------------------- - A.PLATFORM, - A.STORE_NAME, - A.STORE_TYPE, - ------------------------------------- - --COUNTY数据标签---------------------- - '' REGION_TYPE, - ------------------------------------- - --AIA数据标签------------------------- - null inst_code, --可以移除,报告没有使用 - ------------------------------------- - --XIE HE 数据标签--------------------- - '' as dept_name, - '' as new_code, - '' as area, - '' as h_level, - '' as reimburse, - '' as reimburse_type, - '' as prescription_source, - ------------------------------------- - '' as CORP_COD --可以移除,报告没有使用 - ------------------------------------- - FROM - dm.dm_zk_ec_sales A - LEFT JOIN (SELECT OTHERS_MONTH FROM tmp.tmp_dm_td_ext_ec_niad_month) D - where - A.YYYYMM >= '202001' and A.YYYYMM<=D.others_month - GROUP BY - A.YYYYMM, - A.iqvia_pack_code, - A.AUDIT_COD, - A.PLATFORM, - A.STORE_NAME, - A.STORE_TYPE, - A.PACK_FLAG, - A.PROD_FLAG - --- COMMAND ---------- - --- DBTITLE 1,AIA --- DELETE FROM --- dm.dm_tf_external_sales --- WHERE --- DATA_SOURCE = 'AIA(Monthly)'; - -INSERT INTO dm.dm_tf_external_sales ( - YYYYMM, - PACK_COD, - AUDIT_COD, - DATA_SOURCE, - SALES_UNIT_CAL, - SALES_UNIT_CAL_LY, - SALES_VALUE_CAL, - SALES_VALUE_CAL_LY, - CONUTING_UNIT, - CONUTING_UNIT_LY, - prescription, - prescription_ly, - PACK_FLAG, - PROD_FLAG, - DTP_FLAG, - cmps_flag, - PLATFORM_TYPE, - STORE_NAME, - STORE_TYPE, - REGION_TYPE, - inst_code, - dept_name, - new_code, - area, - h_level, - reimburse, - reimburse_type, - prescription_source, - CORP_COD - ) - SELECT - A.ym, - A.PACK_COD, - A.AUDIT_COD, - 'AIA(Monthly)' DATA_SOURCE, - ------------------------------------- - sum(volume) as SALES_UNIT_CAL, - sum(volume_ly) as SALES_UNIT_CAL_LY, - sum(value) as SALES_VALUE_CAL, - sum(value_ly) as SALES_VALUE_CAL_LY, - sum(counting_unit) as CONUTING_UNIT, - sum(counting_unit_ly) as CONUTING_UNIT_LY, - null as prescription, - null as prescription_ly, - ------------------------------------- - --Retail藏数逻辑标签------------------ - 1 PACK_FLAG, - 1 PROD_FLAG, - 0 DTP_FLAG, - null as cmps_flag, - ------------------------------------- - --EC数据标签-------------------------- - '' PLATFORM_TYPE, - '' STORE_NAME, - '' STORE_TYPE, - ------------------------------------- - --COUNTY数据标签---------------------- - '' REGION_TYPE, - ------------------------------------- - --AIA数据标签------------------------- - inst_code AS inst_code, --可以移除,报告没有使用 - ------------------------------------- - --XIE HE 数据标签--------------------- - '' as dept_name, - '' as new_code, - '' as area, - '' as h_level, - '' as reimburse, - '' as reimburse_type, - '' as prescription_source, - ------------------------------------- - '' as CORP_COD --可以移除,报告没有使用 - ------------------------------------- - from - dm.dm_ext_aia_sales A - --取202401年之后的数 - where - ym >= '202401' - group by - ym, - pack_cod, - corp_cod, - AUDIT_COD, - inst_code - --- COMMAND ---------- - --- DBTITLE 1,XIEHE --- DELETE FROM --- dm.dm_tf_external_sales --- WHERE --- DATA_SOURCE = 'XH Data(Quarterly)'; - -INSERT INTO dm.dm_tf_external_sales ( - YYYYMM, - PACK_COD, - AUDIT_COD, - DATA_SOURCE, - SALES_UNIT_CAL, - SALES_UNIT_CAL_LY, - SALES_VALUE_CAL, - SALES_VALUE_CAL_LY, - CONUTING_UNIT, - CONUTING_UNIT_LY, - prescription, - prescription_ly, - PACK_FLAG, - PROD_FLAG, - DTP_FLAG, - cmps_flag, - PLATFORM_TYPE, - STORE_NAME, - STORE_TYPE, - REGION_TYPE, - inst_code, - dept_name, - new_code, - area, - h_level, - reimburse, - reimburse_type, - prescription_source, - CORP_COD - ) - SELECT - A.YYYYMM, - A.iqvia_pack_code, - A.AUDIT_COD, - 'XH Data(Quarterly)' DATA_SOURCE, - ------------------------------------- - 0 SALES_UNIT_CAL, - 0 SALES_UNIT_CAL_LY, - SUM(sales_value) SALES_VALUE_CAL, - SUM(sales_value_LY) SALES_VALUE_CAL_LY, - SUM(A.counting_unit) CONUTING_UNIT, - SUM(A.counting_unit_ly) CONUTING_UNIT_LY, - null as prescription, - null as prescription_ly, - ------------------------------------- - --Retail藏数逻辑标签------------------ - 1 PACK_FLAG, - 1 PROD_FLAG, - 0 DTP_FLAG, - null as cmps_flag, - ------------------------------------- - --EC数据标签-------------------------- - '' PLATFORM_TYPE, - '' STORE_NAME, - '' STORE_TYPE, - ------------------------------------- - --COUNTY数据标签---------------------- - '' REGION_TYPE, - ------------------------------------- - --AIA数据标签------------------------- - null inst_code, --可以移除,报告没有使用 - ------------------------------------- - --XIE HE 数据标签--------------------- - NVL(A.dept_name, '') dept_name, - NVL(A.new_code, '') new_code, - NVL(A.province, '') area, - NVL(A.h_level, '') h_level, - NVL(A.reimburse, '') reimburse, - NVL(A.reimburse_type, '') reimburse_type, - NVL(A.prescription_source, '') prescription_source, - ------------------------------------- - '' as CORP_COD --可以移除,报告没有使用 - ------------------------------------- - FROM - dm.dm_ext_xiehe_sales A - WHERE - A.YYYYMM >= '202001' - GROUP BY - A.YYYYMM, - A.iqvia_pack_code, - A.AUDIT_COD, - A.dept_name, - A.new_code, - A.province, - A.h_level, - A.reimburse, - A.reimburse_type, - A.prescription_source - --- COMMAND ---------- - --- MAGIC %md --- MAGIC ## 特殊逻辑 - --- COMMAND ---------- - --- DBTITLE 1,更新pack code -update dm.dm_tf_external_sales set PACK_COD = concat('PACK_COD_',DATA_SOURCE) -where PACK_COD is null or PACK_COD = ''; -update dm.dm_tf_external_sales set AUDIT_COD = 'ROC' -where AUDIT_COD is null or AUDIT_COD = ''; - - --- COMMAND ---------- - --- MAGIC %md --- MAGIC ## NIAD单独页面数据 - --- COMMAND ---------- - -update dm.dm_zk_retail_sales set DATA_SOURCE = 'Retail(Quarterly)' - --- COMMAND ---------- - --- DBTITLE 1,NIAD --- ============================================================================= --- 脚本名称: dm.dm_tf_external_sales_niad 数据装载脚本 --- 功能描述: 将零售和电商的销售数据(仅限NIAD市场)插入目标表 --- 数据来源: dm.dm_zk_retail_sales, dm.dm_zk_ec_sales, dm.dm_td_external_market_pack_mapping_temp --- 目标表: dm.dm_tf_external_sales_niad --- 更新方式: INSERT OVERWRITE(全量覆盖) --- 创建时间: 2026-03-09 --- ============================================================================= - -INSERT OVERWRITE TABLE dm.dm_tf_external_sales_niad -( - YYYYMM, -- 年月分区键 - PACK_COD, -- 药品包装代码 - AUDIT_COD, -- 审计代码 - SALES_UNIT_CAL, -- 本期销量(单位) - SALES_UNIT_CAL_LY, -- 去年同期销量(单位) - SALES_VALUE_CAL, -- 本期销售额 - SALES_VALUE_CAL_LY, -- 去年同期销售额 - CONUTING_UNIT, -- 计数单位(本期) - CONUTING_UNIT_LY, -- 计数单位(去年同期) - DATA_SOURCE, -- 数据来源(零售/电商) - DATE_KEY, -- 日期键(转换为日期类型) - PACK_SOURCE, -- 包装来源唯一标识 - AUDIT_SOURCE -- 审计来源唯一标识 -) - -WITH mkt_pack AS ( - SELECT DISTINCT - PACK_COD, - DATA_SOURCE - FROM dm.dm_td_external_market_pack_mapping_temp - WHERE DATA_SOURCE IN ('Retail(Quarterly)', 'EC(Monthly)') -- 仅限零售和电商 - AND MARKET = 'NIAD (Non-Insulin Anti-Diabetic) Market' -- NIAD市场过滤 -), - -sales AS ( - -- 零售数据(季度) - SELECT - YYYYMM, - iqvia_pack_code AS PACK_COD, - AUDIT_COD, - sales_unit AS SALES_UNIT_CAL, - sales_unit_ly AS SALES_UNIT_CAL_LY, - sales_value AS SALES_VALUE_CAL, - sales_value_ly AS SALES_VALUE_CAL_LY, - counting_unit AS CONUTING_UNIT, - counting_unit_ly AS CONUTING_UNIT_LY, - DATA_SOURCE, - -- 将日期转换放在CTE中统一处理,避免重复解析 - TO_DATE(YYYYMM, 'yyyyMM') AS DATE_KEY, - CONCAT(iqvia_pack_code, DATA_SOURCE) AS PACK_SOURCE, - CONCAT(AUDIT_COD, DATA_SOURCE) AS AUDIT_SOURCE - FROM dm.dm_zk_retail_sales - WHERE YYYYMM >= '202001' -- 仅保留2020年及以后数据 - - UNION ALL - - -- 电商数据(月度) - SELECT - YYYYMM, - iqvia_pack_code AS PACK_COD, - AUDIT_COD, - sales_unit AS SALES_UNIT_CAL, - sales_unit_ly AS SALES_UNIT_CAL_LY, - sales_value AS SALES_VALUE_CAL, - sales_value_ly AS SALES_VALUE_CAL_LY, - counting_unit AS CONUTING_UNIT, - counting_unit_ly AS CONUTING_UNIT_LY, - DATA_SOURCE, - TO_DATE(YYYYMM, 'yyyyMM') AS DATE_KEY, - CONCAT(iqvia_pack_code, DATA_SOURCE) AS PACK_SOURCE, - CONCAT(AUDIT_COD, DATA_SOURCE) AS AUDIT_SOURCE - FROM dm.dm_zk_ec_sales - WHERE YYYYMM >= '202001' -- 仅保留2020年及以后数据 -) -SELECT - a.YYYYMM, - a.PACK_COD, - a.AUDIT_COD, - a.SALES_UNIT_CAL, - a.SALES_UNIT_CAL_LY, - a.SALES_VALUE_CAL, - a.SALES_VALUE_CAL_LY, - a.CONUTING_UNIT, - a.CONUTING_UNIT_LY, - a.DATA_SOURCE, - a.DATE_KEY, - a.PACK_SOURCE, - a.AUDIT_SOURCE - FROM sales a - INNER JOIN mkt_pack b - ON a.PACK_COD = b.PACK_COD - AND a.DATA_SOURCE = b.DATA_SOURCE; \ No newline at end of file diff --git a/EXTERNAL/z 01 dm_tf_external_sales.sql:Zone.Identifier b/EXTERNAL/z 01 dm_tf_external_sales.sql:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2x 'Others' -and pack_code <> '' - --- COMMAND ---------- - --------------------------------------------------------------------------------------------------------------------------------------------------- ---修改时间:20240812 ---修改人:FanXujia ---修改内容: ---在从DM_TD_EXTERNAL_KEYCOMPATITOR表里获取市场描述(MARKET_DESC字段)时,需要增加一个DATA_SOURCE的条件。 ---修改原因: ---对于同一个市场,每个渠道的市场描述并不一样。 --------------------------------------------------------------------------------------------------------------------------------------------------- - --- COMMAND ---------- - -/* -修改日期:20250311 -修改人:chenwu -修改内容:修改COUNTINGUNIT_MARKET_RATIO 取unit的值 -*/ -/* -修改日期:20250513 -修改人:chenwu -修改内容:修改RE Market 为 RE Market (Global) -*/ -INSERT OVERWRITE dm.dm_td_external_market_pack_mapping_temp( - PACK_COD,PACK_DES,PROD_DES,PROD_DES_C,MARKET,TA,KEY_COMPETITOR,AZ_RELATED,CLASS, - VALUE_MARKET_RATIO,UNIT_MARKET_RATIO,COUNTINGUNIT_MARKET_RATIO,PDOT_MARKET_RATIO,MARKET_DESC,TA_RN,DATA_SOURCE,dept_name,key_dept_name - ,new_code - ,area -) -WITH MKT_PACK_RATIO AS ( - -------------------------------------根据沟通,市场+产品对应的ratio是唯一的------------------------------------------ -SELECT A.MARKET,A.PACK_COD,MAX(A.Value_Market_Ratio) Value_Market_Ratio,MAX(A.Unit_Market_Ratio) Unit_Market_Ratio,MAX(A.PDOT_Market_Ratio) CountingUnit_Market_Ratio,MAX(A.CountingUnit_Market_Ratio) PDOT_Market_Ratio --因为之前的报告在使用源表的数据,因此命名是反的。 -FROM DWS.dws_ims_td_market_ratio A -WHERE A.YM = (SELECT MAX(YM) FROM DWS.dws_ims_td_market_ratio) -GROUP BY A.MARKET,A.PACK_COD -) ---------------------------------------------------------------------CHPA------------------------------------------------------------------ -SELECT B.PACK_COD,B.PACK_DES,B.PROD_DES,B.PROD_DES_C,B.MARKET,B.TA,B.KEY_COMPETITOR, -CASE - WHEN B.MARKET = 'DM Market' THEN 'DM' - WHEN B.MARKET = 'CV Market' THEN 'CV' - WHEN B.MARKET = 'RD Market' THEN 'RD' - WHEN B.MARKET = 'RE Market' THEN 'RE' --WHEN B.MARKET = 'RE Market' THEN 'RE' - WHEN B.MARKET IN ('GI Market','Retail_GI Market') THEN 'GI' - WHEN B.MARKET = 'ONC Market' THEN 'ONCO' - WHEN B.MARKET = 'NIAD (Non-Insulin Anti-Diabetic) Market' THEN 'NIAD' - WHEN B.MARKET = 'RARE Market' THEN 'RARE'--20250701 chenwu 新增RARE - END AZ_RELATED - ,B.CLASS,NVL(B.VALUE_MARKET_RATIO,1) VALUE_MARKET_RATIO,NVL(B.UNIT_MARKET_RATIO,1) UNIT_MARKET_RATIO,NVL(B.COUNTINGUNIT_MARKET_RATIO,1) COUNTINGUNIT_MARKET_RATIO,NVL(B.PDOT_MARKET_RATIO,1) PDOT_MARKET_RATIO,B.MARKET_DESC, -CASE - WHEN B.MARKET = 'DM Market' THEN 1 - WHEN B.MARKET = 'CV Market' THEN 2 - WHEN B.MARKET = 'RD Market' THEN 3 - WHEN B.MARKET = 'RE Market' THEN 4 - WHEN B.MARKET = 'GI Market' THEN 5 - WHEN B.MARKET = 'ONC Market' THEN 6 - WHEN B.MARKET = 'NIAD (Non-Insulin Anti-Diabetic) Market' THEN 7 - WHEN B.MARKET = 'RARE Market' THEN 8 --20250701 chenwu 新增RARE - ELSE 99 END TA_RN -,'IQVIA-CHPA(Monthly)' DATA_SOURCE -,'' as dept_name -,'' as key_dept_name -,'' as new_code -,'' as area -FROM ( -SELECT B.MARKET_PACK_KEY,B.PACK_COD,B.PACK_DES,B.PROD_DES,B.PROD_DES_C,B.MARKET,MAX(C.TA) TA,MAX(E.KEY_COMPETITOR) KEY_COMPETITOR,MAX(E.IS_AZ) IS_AZ,MAX(E.AZ_MAIN) AZ_MAIN,MAX(E.AZ_RELATED) AZ_RELATED,MAX(E.CLASS) CLASS,MAX(D.VALUE_MARKET_RATIO) VALUE_MARKET_RATIO,MAX(D.UNIT_MARKET_RATIO) UNIT_MARKET_RATIO,MAX(D.COUNTINGUNIT_MARKET_RATIO) COUNTINGUNIT_MARKET_RATIO,MAX(D.PDOT_MARKET_RATIO) PDOT_MARKET_RATIO,max(g.MARKET_DESC) MARKET_DESC -FROM (SELECT PACK_COD,COUNT(*) RUM FROM DM.DM_TF_EXTERNAL_SALES --- WHERE YYYYMM >= (SELECT CAST((LEFT(MAX(YYYYMM),4)-3)*100+1 AS INT) FROM DM.DM_TF_EXTERNAL_SALES) --- AND DATA_SOURCE = 'IQVIA-CHPA(Monthly)' -where DATA_SOURCE = 'IQVIA-CHPA(Monthly)' -GROUP BY PACK_COD) A -LEFT JOIN DM.DM_IMS_TD_PACK_PROPERTY B -ON B.PACK_COD = A.PACK_COD --AND B.MARKET <> 'IMS ALL Market' -LEFT JOIN DM.DM_IMS_TD_MARKET_PROPERTY C -ON B.MARKET = C.MARKET -LEFT JOIN DM.DM_IMS_TD_PACK_PROPERTY E ON B.MARKET_PACK_KEY = E.MARKET_PACK_KEY -LEFT JOIN MKT_PACK_RATIO D ON B.MARKET = D.MARKET AND B.PACK_COD = D.PACK_COD -LEFT JOIN (SELECT MARKET,DATA_SOURCE,MAX(MARKETDESC) MARKET_DESC FROM DM.DM_TD_EXTERNAL_KEYCOMPATITOR GROUP BY MARKET,DATA_SOURCE) G ON B.MARKET = G.MARKET AND UPPER(G.DATA_SOURCE) = 'IQVIA-CHPA(MONTHLY)' -GROUP BY B.MARKET_PACK_KEY,B.PACK_COD,B.PACK_DES,B.PROD_DES,B.PROD_DES_C,B.MARKET) B -WHERE B.PACK_COD IS NOT NULL AND B.MARKET IS NOT NULL -UNION ALL ---------------------------------------------------------------------Retail------------------------------------------------------------------ -SELECT - B.PACK_COD, - B.PACK_DES, - B.PROD_DES, - B.PROD_DES_C, - CASE - when B.MARKET = 'Non AZ Retail Related Market' - and b.TA = 'CV' THEN 'CV Market' - else b.MARKET - end MARKET, - CASE - WHEN B.MARKET = 'RE Market' THEN 'RE' - when B.TA = 'RE' THEN NULL--只有 'RE Market (Global)' 的ta是 RE - WHEN B.MARKET = 'Soliris Related Market' THEN 'RARE'--20250701 chenwu 新增RARE - ELSE b.TA - END TA, - B.KEY_COMPETITOR, - CASE - WHEN B.MARKET = 'RE Market' THEN 'RE' - when B.TA = 'RE' THEN NULL--只有 'RE Market (Global)' 的ta是 RE - WHEN B.MARKET = 'CVRM_OTHER Market' THEN 'CVRM' - WHEN B.MARKET = 'Soliris Related Market' THEN 'RARE'--20250701 chenwu 新增RARE - ELSE b.TA - END AZ_RELATED, - B.CLASS, - nvl(B.VALUE_MARKET_RATIO, 1), - nvl(B.UNIT_MARKET_RATIO, 1), - nvl(B.UNIT_MARKET_RATIO, 1) COUNTINGUNIT_MARKET_RATIO, --应该取unit的值作为count --,1 COUNTINGUNIT_MARKET_RATIO - nvl(B.PDOT_MARKET_RATIO, 1), - B.MARKET_DESC, - -- CASE WHEN b.TA='DM' THEN 1 WHEN b.TA ='CV' OR B.MARKET='CV Market' THEN 2 WHEN b.TA ='RD' THEN 3 WHEN b.MARKET ='RE Market' OR b.TA ='RE' or b.MARKET = 'Inhaled Extended Market by Brand' THEN 4 WHEN b.TA ='GI' THEN 5 WHEN b.TA ='ONCO' THEN 6 - CASE - WHEN b.TA = 'DM' THEN 1 - WHEN b.TA = 'CV' OR B.MARKET = 'CV Market' THEN 2 - WHEN b.TA = 'RD' THEN 3 - WHEN b.MARKET = 'RE Market' THEN 4 - WHEN b.TA = 'GI' THEN 5 - WHEN b.TA = 'ONCO' THEN 6 - WHEN B.MARKET = 'CVRM_OTHER Market' THEN 0 - WHEN B.MARKET = 'Soliris Related Market' THEN 8--20250701 chenwu 新增RARE - ELSE 99 - END TA_RN, - 'Retail(Quarterly)' DATA_SOURCE, - '' as dept_name, - '' as key_dept_name, - '' as new_code, - '' as area -FROM - ( - SELECT - a.MARKET_PACK_KEY, - B.iqvia_pack_code PACK_COD, - a.PACK_DES, - a.PROD_DES, - a.PROD_DES_C, - a.MARKET, - MAX(a.TA) TA, - MAX(a.KEY_COMPETITOR) KEY_COMPETITOR, - MAX(a.CLASS) CLASS, - MAX(D.VALUE_MARKET_RATIO) VALUE_MARKET_RATIO, - MAX(D.UNIT_MARKET_RATIO) UNIT_MARKET_RATIO, - MAX(D.COUNTINGUNIT_MARKET_RATIO) COUNTINGUNIT_MARKET_RATIO, - MAX(D.COUNTINGUNIT_MARKET_RATIO) PDOT_MARKET_RATIO, - max(g.MARKET_DESC) MARKET_DESC - FROM - DM.dm_zk_retail_pack_property a - LEFT JOIN DM.dm_zk_retail_market_property B ON A.iqvia_pack_code = B.iqvia_pack_code - and a.market = b.market - LEFT JOIN dm.dm_zk_retail_market_ratio D ON B.MARKET = D.MARKET - AND B.iqvia_pack_code = D.pack_cod - LEFT JOIN ( - SELECT - MARKET, - DATA_SOURCE, - MAX(MARKETDESC) MARKET_DESC - FROM - DM.DM_TD_EXTERNAL_KEYCOMPATITOR - GROUP BY - MARKET, - DATA_SOURCE - ) G ON B.MARKET = G.MARKET - AND UPPER(G.DATA_SOURCE) = 'RETAIL(QUARTERLY)' - WHERE - A.iqvia_pack_code in ( - select - distinct iqvia_pack_code - from - dm.dm_zk_retail_sales - ) - GROUP BY - a.MARKET_PACK_KEY, - B.iqvia_pack_code, - a.PACK_DES, - a.PROD_DES, - a.PROD_DES_C, - a.MARKET - ) b ---------------------------------------------------------DTP-------------------------------------------------------- -UNION ALL -SELECT B.PACK_COD,B.PACK_DES,B.PROD_DES,B.PROD_DES_C -,MARKET -,CASE - WHEN B.TA IS NULL AND MARKET = 'ONC Market' - THEN 'ONCO' -ELSE B.TA END AS TA -,B.KEY_COMPETITOR -,CASE - WHEN B.TA IS NULL AND MARKET = 'ONC Market' - THEN 'ONCO' - ELSE B.TA END AS AZ_RELATED -,B.CLASS -,nvl(B.VALUE_MARKET_RATIO,1) -,nvl(B.UNIT_MARKET_RATIO,1) -,nvl(B.UNIT_MARKET_RATIO,1) COUNTINGUNIT_MARKET_RATIO --应该取unit的值作为count--,1 COUNTINGUNIT_MARKET_RATIO -,nvl(B.PDOT_MARKET_RATIO,1) -,B.MARKET_DESC, -CASE - WHEN B.TA IS NULL AND MARKET = 'ONC Market' THEN 6 - WHEN B.TA IS NULL THEN 99 - WHEN B.TA ='CVRM' THEN 0 - WHEN B.TA ='DM' THEN 1 - WHEN B.TA ='CV' THEN 2 - WHEN B.TA ='RD' THEN 3 - WHEN B.TA ='RE' THEN 4 - WHEN B.TA ='GI' THEN 5 - WHEN B.TA ='ONCO' THEN 6 - WHEN B.TA ='NIAD' THEN 7 - WHEN B.TA ='RARE' THEN 8 - WHEN B.TA ='NP' THEN 9 - ELSE 99 END TA_RN -,'DTP(Quarterly)' DATA_SOURCE -,'' as dept_name -,'' as key_dept_name -,'' as new_code -,'' as area -FROM ( -SELECT a.MARKET_PACK_KEY,a.iqvia_pack_code PACK_COD,a.PACK_DES,a.PROD_DES,a.PROD_DES_C -,a.MARKET,max(t3.TA) AS TA,max(t3.TA_ORDER) AS TA_ORDER -,MAX(a.KEY_COMPETITOR) KEY_COMPETITOR,MAX(a.CLASS) CLASS,MAX(D.VALUE_MARKET_RATIO) VALUE_MARKET_RATIO,MAX(D.UNIT_MARKET_RATIO) UNIT_MARKET_RATIO,MAX(D.COUNTINGUNIT_MARKET_RATIO) COUNTINGUNIT_MARKET_RATIO,MAX(D.COUNTINGUNIT_MARKET_RATIO) PDOT_MARKET_RATIO,max(g.MARKET_DESC) MARKET_DESC -FROM DM.dm_zk_retail_dtp_pack_property a -LEFT JOIN dm.dm_zk_retail_market_ratio D ON a.MARKET = D.MARKET AND a.iqvia_pack_code = D.pack_cod -LEFT JOIN (SELECT MARKET,DATA_SOURCE,MAX(MARKETDESC) MARKET_DESC FROM DM.DM_TD_EXTERNAL_KEYCOMPATITOR GROUP BY MARKET,DATA_SOURCE) G ON a.MARKET = G.MARKET AND UPPER(G.DATA_SOURCE) = 'RETAIL(QUARTERLY)' -LEFT JOIN ( - select - MARKET,IF(TA = 'ONC' ,'ONCO',TA) AS TA,TA_ORDER - from dwd.dwd_td_ims_market_ta_order - group by 1,2,3) t3 ON a.MARKET = t3.market -WHERE A.iqvia_pack_code in (select distinct iqvia_pack_code from dm.dm_zk_retail_dtp_sales) -GROUP BY a.MARKET_PACK_KEY,A.iqvia_pack_code,a.PACK_DES,a.PROD_DES,a.PROD_DES_C,a.MARKET -) b - ---------------------------------------------------------RETAIL all market-------------------------------------------------------- -union all -SELECT B.PACK_COD,B.PACK_DES,B.PROD_DES,B.PROD_DES_C -,'Retail All Market' MARKET ,TA,b.KEY_COMPETITOR,null AZ_RELATED,null CLASS, -1 VALUE_MARKET_RATIO,1 UNIT_MARKET_RATIO,1 COUNTINGUNIT_MARKET_RATIO,1 PDOT_MARKET_RATIO,null MARKET_DESC,null TA_RN -,'Retail(Quarterly)' DATA_SOURCE -,'' as dept_name -,'' as key_dept_name -,'' as new_code -,'' as area -FROM ( -SELECT a.iqvia_pack_code PACK_COD,a.PACK_DES,a.PROD_DES,a.PROD_DES_C,null TA,MAX(a.KEY_COMPETITOR) KEY_COMPETITOR -FROM DM.dm_zk_retail_pack_property a -WHERE A.iqvia_pack_code in (select distinct iqvia_pack_code from dm.dm_zk_retail_sales) -GROUP BY A.iqvia_pack_code,a.PACK_DES,a.PROD_DES,a.PROD_DES_C -union -select a.pack_code,nvl(b.pack_des,c.pack_des),nvl(b.PROD_DES,c.PROD_DES),nvl(b.PROD_DES_C,c.PROD_DES_C),null ta,MAX(b.KEY_COMPETITOR) KEY_COMPETITOR -from dm.dm_zk_retail_sales_kpi a -left join dm.dm_zk_retail_pack_property b on a.pack_code =b.iqvia_pack_code -left join (select distinct iqvia_pack_code,pack_des,PROD_DES,PROD_DES_C from dm.dm_zk_retail_pack_property ) c on a.pack_code =c.iqvia_pack_code -where a.pack_code <>'' ---排除Others以及null -and NVL(a.pack_code,'Others') <> 'Others' -GROUP BY a.pack_code,nvl(b.pack_des,c.pack_des),nvl(b.PROD_DES,c.PROD_DES),nvl(b.PROD_DES_C,c.PROD_DES_C) -) b - ---------------------------------------------------------DTP all market-------------------------------------------------------- -union all -SELECT B.PACK_COD,B.PACK_DES,B.PROD_DES,B.PROD_DES_C -,'DTP ALL Market' MARKET ,TA,b.KEY_COMPETITOR,null AZ_RELATED,null CLASS, -1 VALUE_MARKET_RATIO,1 UNIT_MARKET_RATIO,1 COUNTINGUNIT_MARKET_RATIO,1 PDOT_MARKET_RATIO,null MARKET_DESC,null TA_RN -,'DTP(Quarterly)' DATA_SOURCE -,'' as dept_name -,'' as key_dept_name -,'' as new_code -,'' as area -FROM ( - SELECT a.iqvia_pack_code PACK_COD,a.PACK_DES,a.PROD_DES,a.PROD_DES_C,null TA,MAX(a.KEY_COMPETITOR) KEY_COMPETITOR -FROM DM.dm_zk_retail_dtp_pack_property a -WHERE A.iqvia_pack_code in (select distinct iqvia_pack_code from dm.dm_zk_retail_dtp_sales) -GROUP BY A.iqvia_pack_code,a.PACK_DES,a.PROD_DES,a.PROD_DES_C -) B - --- COMMAND ---------- - ---------------------------------------------------------------------------------- ---修改时间:20240918 ---修改人:FanXuJia ---修改内容: ---计算market_ratio\pdot_ratio时,之前使用的是现成的dws表,但是这个dws表不是外部数据报告的,更新频率也不是每天更新。会存在一定的更新时间差。 ---因此改成使用dwd层表 ------------------------------------------------------------------------------------ -INSERT into dm.dm_td_external_market_pack_mapping_temp( - PACK_COD,PACK_DES,PROD_DES,PROD_DES_C,MARKET,TA,KEY_COMPETITOR,AZ_RELATED,CLASS, - VALUE_MARKET_RATIO,UNIT_MARKET_RATIO,COUNTINGUNIT_MARKET_RATIO,PDOT_MARKET_RATIO,MARKET_DESC,TA_RN,DATA_SOURCE,dept_name,key_dept_name - ,new_code - ,area -) -WITH county_brand_ratio as ( - SELECT distinct market, - CASE WHEN length(cmps_cod) < 6 THEN RIGHT(CONCAT('000000',cmps_cod),6) ELSE cmps_cod END AS cmps_cod, - cmps_des, - CASE WHEN length(pack_cod) < 12 and pack_cod REGEXP '^[0-9]' THEN RIGHT(CONCAT('000000000000',pack_cod),12) ELSE pack_cod END AS pack_cod, - pack_des, - level, - type, - ratio - from dwd.dwd_gnd_ims_tblBrandRatio -) -,MKT_PACK_RATIO_tmp as ( -select t1.market, -t1.PACK_COD, ---优先取pack粒度的ratio -case when t2.ratio is not null then t1.Market_Ratio * t2.ratio - else t1.Market_Ratio * NVL(t3.ratio,1) -end as Value_Market_Ratio, -case when t4.ratio is not null then t1.Market_Ratio * t4.ratio - else t1.Market_Ratio * NVL(t5.ratio,1) -end as Unit_Market_Ratio, -t1.Market_Ratio as CountingUnit_Market_Ratio, -case when t6.ratio is not null then t1.Market_Ratio * t6.ratio - else t1.Market_Ratio * NVL(t7.ratio,1) -end as PDOT_Market_Ratio -from DWS.dws_ims_td_market t1 ---value by Pack -left join (select * from county_brand_ratio where UPPER(TYPE) = 'VALUE' and UPPER(Level) = 'PACK') t2 -on t1.MARKET = t2.market -and t1.PACK_COD = t2.pack_cod ---value by MOLECULE -LEFT JOIN (select * from county_brand_ratio where UPPER(TYPE) = 'VALUE' and UPPER(Level) = 'MOLECULE') t3 -on t1.MARKET = t3.market -and t1.CMPS_COD = t3.cmps_cod ---unit by Pack -left join (select * from county_brand_ratio where UPPER(TYPE) = 'UNIT' and UPPER(Level) = 'PACK') t4 -on t1.MARKET = t4.market -and t1.PACK_COD = t4.pack_cod ---unit by MOLECULE -LEFT JOIN (select * from county_brand_ratio where UPPER(TYPE) = 'UNIT' and UPPER(Level) = 'MOLECULE') t5 -on t1.MARKET = t5.market -and t1.CMPS_COD = t5.cmps_cod ---PDOT by Pack -left join (select * from county_brand_ratio where UPPER(TYPE) = 'COUNTINGUNIT' and UPPER(Level) = 'PACK') t6 -on t1.MARKET = t6.market -and t1.PACK_COD = t6.pack_cod ---PDOT by MOLECULE -LEFT JOIN (select * from county_brand_ratio where UPPER(TYPE) = 'COUNTINGUNIT' and UPPER(Level) = 'MOLECULE') t7 -on t1.MARKET = t7.market -and t1.CMPS_COD = t7.cmps_cod -) -,MKT_PACK_RATIO as ( -select market, -PACK_COD, -max(Value_Market_Ratio) as Value_Market_Ratio, -max(Unit_Market_Ratio) as Unit_Market_Ratio, -max(CountingUnit_Market_Ratio) as CountingUnit_Market_Ratio, -max(PDOT_Market_Ratio) as PDOT_Market_Ratio -FROM MKT_PACK_RATIO_tmp -GROUP BY market,PACK_COD -) - - -SELECT B.PACK_COD,B.PACK_DES,B.PROD_DES,B.PROD_DES_C,B.MARKET,B.TA,B.KEY_COMPETITOR, -CASE -WHEN B.MARKET = 'DM Market' THEN 'DM' -WHEN B.MARKET = 'CV Market' THEN 'CV' -WHEN B.MARKET = 'RD Market' THEN 'RD' -WHEN B.MARKET = 'RE Market' THEN 'RE' -WHEN B.MARKET = 'GI Market' THEN 'GI' -WHEN B.MARKET = 'ONC Market' THEN 'ONCO' -WHEN B.MARKET = 'NIAD (Non-Insulin Anti-Diabetic) Market' THEN 'NIAD' -WHEN B.MARKET = 'RARE Market' THEN 'RARE'--20250701 chenwu 新增RARE -END AZ_RELATED -,B.CLASS,nvl(CAST(B.VALUE_MARKET_RATIO AS decimal(20,16)),1),nvl(CAST(B.UNIT_MARKET_RATIO AS decimal(20,16)),1),nvl(CAST(B.COUNTINGUNIT_MARKET_RATIO AS decimal(20,16)),1),nvl(CAST(B.PDOT_MARKET_RATIO AS decimal(20,16)),1),B.MARKET_DESC, -CASE -WHEN B.MARKET = 'DM Market' THEN 1 -WHEN B.MARKET = 'CV Market' THEN 2 -WHEN B.MARKET = 'RD Market' THEN 3 -WHEN B.MARKET = 'RE Market' THEN 4 -WHEN B.MARKET = 'GI Market' THEN 5 -WHEN B.MARKET = 'ONC Market' THEN 6 -WHEN B.MARKET = 'NIAD (Non-Insulin Anti-Diabetic) Market' THEN 7 -WHEN B.MARKET = 'RARE Market' THEN 8--20250701 chenwu 新增RARE -ELSE 99 END TA_RN,'IQVIA-COUNTY(Quarterly)' DATA_SOURCE,'' as dept_name,'' as key_dept_name -,'' as new_code -,'' as area -FROM ( -SELECT B.MARKET_PACK_KEY,B.PACK_COD,B.PACK_DES,B.PROD_DES,B.PROD_DES_C,B.MARKET,MAX(C.TA) TA,MAX(E.KEY_COMPETITOR) KEY_COMPETITOR,MAX(E.IS_AZ) IS_AZ,MAX(E.AZ_MAIN) AZ_MAIN,MAX(E.AZ_RELATED) AZ_RELATED,MAX(E.CLASS) CLASS,MAX(D.VALUE_MARKET_RATIO) VALUE_MARKET_RATIO,MAX(D.UNIT_MARKET_RATIO) UNIT_MARKET_RATIO,MAX(D.COUNTINGUNIT_MARKET_RATIO) COUNTINGUNIT_MARKET_RATIO,MAX(D.PDOT_MARKET_RATIO) PDOT_MARKET_RATIO,MAX(G.MARKET_DESC) MARKET_DESC -FROM (SELECT PACK_COD,COUNT(*) RUM FROM DM.DM_TF_EXTERNAL_SALES --- WHERE YYYYMM >= (SELECT CAST((LEFT(MAX(YYYYMM),4)-3)*100+1 AS INT) FROM DM.DM_TF_EXTERNAL_SALES) --- AND DATA_SOURCE = 'IQVIA-COUNTY(Quarterly)' -where DATA_SOURCE = 'IQVIA-COUNTY(Quarterly)' -GROUP BY PACK_COD) A -LEFT JOIN dm.dm_ext_county_td_pack_property B -ON B.PACK_COD = A.PACK_COD --AND B.MARKET <> 'IMS ALL Market' -LEFT JOIN DM.DM_IMS_TD_MARKET_PROPERTY C -ON B.MARKET = C.MARKET -LEFT JOIN DM.dm_ext_county_td_pack_property E ON B.MARKET_PACK_KEY = E.MARKET_PACK_KEY -LEFT JOIN MKT_PACK_RATIO D ON B.MARKET = D.MARKET AND B.PACK_COD = D.PACK_COD -LEFT JOIN (SELECT MARKET,DATA_SOURCE,MAX(MARKETDESC) MARKET_DESC FROM DM.DM_TD_EXTERNAL_KEYCOMPATITOR GROUP BY MARKET,DATA_SOURCE) G ON B.MARKET = G.MARKET AND UPPER(G.DATA_SOURCE) = 'IQVIA-COUNTY(QUARTERLY)' -WHERE A.PACK_COD IS NOT NULL -GROUP BY B.MARKET_PACK_KEY,B.PACK_COD,B.PACK_DES,B.PROD_DES,B.PROD_DES_C,B.MARKET) B -WHERE B.PACK_COD IS NOT NULL AND B.MARKET IS NOT NULL - - --- COMMAND ---------- - -delete from dm.dm_td_external_market_pack_mapping_temp where DATA_SOURCE = 'THC(Quarterly)' - --- COMMAND ---------- - ------------------------------------------------THC--------------------------------------------------------------------------------------------------------- -with exchc_rawdata_temp as ( --主表数据 - select - temp.yq, - pack_property.iqvia_pack_code as pack_cod - from ( - select - CASE - WHEN SUBSTRING(yq, 5,2) = 'Q1' THEN CONCAT(SUBSTRING(yq, 1, 4), '03') - WHEN SUBSTRING(yq, 5, 2) = 'Q2' THEN CONCAT(SUBSTRING(yq, 1, 4), '06') - WHEN SUBSTRING(yq, 5, 2) = 'Q3' THEN CONCAT(SUBSTRING(yq, 1, 4), '09') - WHEN SUBSTRING(yq, 5, 2) = 'Q4' THEN CONCAT(SUBSTRING(yq, 1, 4), '12') - ELSE yq - END AS yq, - pack_cod - from dwd.dwd_gnd_ext_thc_rawdata - ) temp - LEFT JOIN dwd.dwd_gnd_ext_thc_pack_property pack_property - ON temp.pack_cod = pack_property.pack_cod -), -A as( - SELECT - PACK_COD, - COUNT(*) RUM - FROM exchc_rawdata_temp - -- WHERE yq >= (SELECT CAST((LEFT(MAX(yq),4)-3)*100+1 AS INT) FROM exchc_rawdata_temp) - GROUP BY PACK_COD -) -insert into table dm.dm_td_external_market_pack_mapping_temp -( - PACK_COD,PACK_DES,PROD_DES,PROD_DES_C,MARKET,TA,KEY_COMPETITOR,AZ_RELATED,CLASS, - VALUE_MARKET_RATIO,UNIT_MARKET_RATIO,COUNTINGUNIT_MARKET_RATIO,PDOT_MARKET_RATIO,MARKET_DESC,TA_RN,DATA_SOURCE,dept_name,key_dept_name - ,new_code - ,area -) -SELECT - B.PACK_COD, - B.PACK_DES, - B.PROD_DES, - B.PROD_DES_C, - B.MARKET, - B.TA, - B.KEY_COMPETITOR, - CASE - WHEN B.MARKET = 'DM Market' THEN 'DM' - WHEN B.MARKET = 'CV Market' THEN 'CV' - WHEN B.MARKET = 'RD Market' THEN 'RD' - WHEN B.MARKET = 'RE Market' THEN 'RE' - WHEN B.MARKET = 'GI Market' THEN 'GI' - WHEN B.MARKET = 'ONC Market' THEN 'ONCO' - WHEN B.MARKET = 'NIAD (Non-Insulin Anti-Diabetic) Market' THEN 'NIAD' - WHEN B.MARKET = 'RARE Market' THEN 'RARE'--20250701 chenwu 新增RARE - END AZ_RELATED, - B.Class, - cast (B.VALUE_MARKET_RATIO as double), - cast (B.UNIT_MARKET_RATIO as double), - cast (B.COUNTINGUNIT_MARKET_RATIO as double), - cast (B.PDOT_MARKET_RATIO as double), - B.MARKET_DESC, - CASE - WHEN B.MARKET = 'DM Market' THEN 1 - WHEN B.MARKET = 'CV Market' THEN 2 - WHEN B.MARKET = 'RD Market' THEN 3 - WHEN B.MARKET = 'RE Market' THEN 4 - WHEN B.MARKET = 'GI Market' THEN 5 - WHEN B.MARKET = 'ONC Market' THEN 6 - WHEN B.MARKET = 'NIAD (Non-Insulin Anti-Diabetic) Market' THEN 7 - WHEN B.MARKET = 'RARE Market' THEN 8--20250701 chenwu 新增RARE - ELSE 99 - END TA_RN, - 'THC(Quarterly)' DATA_SOURCE - ,'' as dept_name - ,'' as key_dept_name - ,'' as new_code - ,'' as area -FROM ( - SELECT - B.MARKET_PACK_KEY, - B.PACK_COD, - B.PACK_DES, - B.PROD_DES, - B.PROD_DES_C, - B.MARKET, - nvl(MAX(C.TA),'') as TA, - MAX(E.KEY_COMPETITOR) as KEY_COMPETITOR, - NULL IS_AZ, - NULL AZ_MAIN, - NULL AZ_Related, - nvl(MAX(E.CLASS),'') CLASS, - MAX(nvl(B.Market_Ratio,1)) as VALUE_MARKET_RATIO, -- sales * VALUE_MARKET_RATIO = 折算好的sales - MAX(nvl(B.Market_Ratio,1) ) as UNIT_MARKET_RATIO, -- unint * UNIT_MARKET_RATIO = 折算好的 UNIT - MAX(nvl(B.Market_Ratio,1)) as COUNTINGUNIT_MARKET_RATIO, -- counting_unit*COUNTINGUNIT_MARKET_RATIO = 折算好的 CU - MAX(nvl(B.Market_Ratio,1) * nvl(D.Ratio,1)) as PDOT_MARKET_RATIO, -- counting_unit*Market_Ratio*PDOT_MARKET_RATIO = PDOT - max(g.MARKET_DESC) MARKET_DESC - FROM A - LEFT JOIN dm.dm_thc_pack_property B -- 以A表 pack_code 为准 获取需要的维度信息 - ON B.PACK_COD = A.PACK_COD - LEFT JOIN DM.DM_IMS_TD_MARKET_PROPERTY C -- THC没有TA字段,关联CHC的相关表,获取TA - ON B.MARKET = C.MARKET - LEFT JOIN dm.dm_thc_pack_property E -- MARKET_PACK_KEY 为唯一主键,获取KEY_COMPETITOR,class等信息 - ON B.MARKET_PACK_KEY = E.MARKET_PACK_KEY - LEFT JOIN( --转码 补0 - select - MARKET, - b.iqvia_pack_code as pack_cod, - ratio - from dwd.dwd_gnd_ext_thc_brandratio a - inner join dwd.dwd_gnd_ext_thc_pack_property b - on (case when length(a.pack_cod) < 12 and a.pack_cod REGEXP '^[0-9]' then right(concat('000000000000',a.pack_cod),12) else a.pack_cod end ) - =(case when length(b.pack_cod) < 12 and b.pack_cod REGEXP '^[0-9]' then right(concat('000000000000',b.pack_cod),12) else b.pack_cod end ) - ) D - ON B.MARKET = D.MARKET - AND B.PACK_COD = D.PACK_COD - LEFT JOIN ( --获取 MARKET_DESC 字段 - SELECT - MARKET,DATA_SOURCE, - MAX(MARKETDESC) MARKET_DESC - FROM DM.DM_TD_EXTERNAL_KEYCOMPATITOR - GROUP BY MARKET,DATA_SOURCE - ) G - ON B.MARKET = G.MARKET AND UPPER(G.DATA_SOURCE) = 'THC(QUARTERLY)' - GROUP BY B.MARKET_PACK_KEY,B.PACK_COD,B.PACK_DES,B.PROD_DES,B.PROD_DES_C,B.MARKET -) B -WHERE B.PACK_COD IS NOT NULL AND B.MARKET IS NOT NULL - --- COMMAND ---------- - ------------------------------------------------CHC---------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------- - -with exchc_rawdata_temp as ( --主表数据 - select - temp.yq, - pack_property.iqvia_pack_code as pack_cod - from ( - select - CASE - WHEN SUBSTRING(yq, 5,2) = 'Q1' THEN CONCAT(SUBSTRING(yq, 1, 4), '03') - WHEN SUBSTRING(yq, 5, 2) = 'Q2' THEN CONCAT(SUBSTRING(yq, 1, 4), '06') - WHEN SUBSTRING(yq, 5, 2) = 'Q3' THEN CONCAT(SUBSTRING(yq, 1, 4), '09') - WHEN SUBSTRING(yq, 5, 2) = 'Q4' THEN CONCAT(SUBSTRING(yq, 1, 4), '12') - ELSE yq - END AS yq, - pack_cod - from dwd.dwd_gnd_chc_rawdata - ) temp - LEFT JOIN dwd.dwd_gnd_ext_chc_pack_property pack_property - ON temp.pack_cod = pack_property.pack_cod -), -A as( - SELECT - PACK_COD, - COUNT(*) RUM - FROM exchc_rawdata_temp - -- WHERE yq >= (SELECT CAST((LEFT(MAX(yq),4)-3)*100+1 AS INT) FROM exchc_rawdata_temp) - GROUP BY PACK_COD -) -insert into table dm.dm_td_external_market_pack_mapping_temp( - PACK_COD,PACK_DES,PROD_DES,PROD_DES_C,MARKET,TA,KEY_COMPETITOR,AZ_RELATED,CLASS, - VALUE_MARKET_RATIO,UNIT_MARKET_RATIO,COUNTINGUNIT_MARKET_RATIO,PDOT_MARKET_RATIO,MARKET_DESC,TA_RN,DATA_SOURCE,dept_name,key_dept_name - ,new_code - ,area -) -SELECT - B.PACK_COD, - B.PACK_DES, - B.PROD_DES, - B.PROD_DES_C, - B.MARKET, - B.TA, - B.KEY_COMPETITOR, - CASE - WHEN B.MARKET = 'DM Market' THEN 'DM' - WHEN B.MARKET = 'CV Market' THEN 'CV' - -- WHEN B.MARKET = 'RD Market' THEN 'RD' --RD隐藏 - when B.MARKET = 'RE Market' THEN 'RE' --RE改为Respules Market - WHEN B.MARKET = 'GI Market' THEN 'GI' - WHEN B.MARKET = 'ONC Market' THEN 'ONCO' - WHEN B.MARKET = 'NIAD (Non-Insulin Anti-Diabetic) Market' THEN 'NIAD' - WHEN B.MARKET = 'RARE Market' THEN 'RARE'--20250701 chenwu 新增RARE - END AZ_RELATED, - B.Class, - cast (B.VALUE_MARKET_RATIO as double), - cast (B.UNIT_MARKET_RATIO as double), - cast (B.COUNTINGUNIT_MARKET_RATIO as double), - cast (B.PDOT_MARKET_RATIO as double), - B.MARKET_DESC, - CASE - WHEN B.MARKET = 'DM Market' THEN 1 - WHEN B.MARKET = 'CV Market' THEN 2 - -- WHEN B.MARKET = 'RD Market' THEN 3 - WHEN B.MARKET = 'RE Market' THEN 4 - WHEN B.MARKET = 'GI Market' THEN 5 - WHEN B.MARKET = 'ONC Market' THEN 6 - WHEN B.MARKET = 'NIAD (Non-Insulin Anti-Diabetic) Market' THEN 7 - WHEN B.MARKET = 'RARE Market' THEN 8 --20250701 chenwu 新增RARE - ELSE 99 - END TA_RN, - 'CHC(Quarterly)' DATA_SOURCE - ,'' as dept_name - ,'' as key_dept_name - ,'' as new_code - ,'' as area -FROM ( - SELECT - B.MARKET_PACK_KEY, - B.PACK_COD, - B.PACK_DES, - B.PROD_DES, - B.PROD_DES_C, - B.MARKET, - nvl(MAX(C.TA) ,'') TA, - -- null as TA, - MAX(E.KEY_COMPETITOR) KEY_COMPETITOR, - --MAX(B.KEY_COMPETITOR) KEY_COMPETITOR, - --MAX(E.IS_AZ) IS_AZ, - --MAX(E.AZ_MAIN) AZ_MAIN, - --MAX(E.AZ_RELATED) AZ_RELATED, - NULL as IS_AZ, - NULL as AZ_MAIN, - NULL as AZ_Related, - nvl (MAX(E.CLASS) ,'' ) CLASS, - MAX(nvl(B.Market_Ratio,1)) as VALUE_MARKET_RATIO, -- sales * VALUE_MARKET_RATIO = 折算好的sales - MAX(nvl(B.Market_Ratio,1)) as UNIT_MARKET_RATIO, -- unint * UNIT_MARKET_RATIO = 折算好的 UNIT - MAX(nvl(B.Market_Ratio,1)) as COUNTINGUNIT_MARKET_RATIO, -- counting_unit*COUNTINGUNIT_MARKET_RATIO = 折算好的 CU - MAX(nvl(B.Market_Ratio,1) * nvl(D.Ratio,1)) PDOT_MARKET_RATIO, -- counting_unit*Market_Ratio*PDOT_MARKET_RATIO = PDOT - max(G.MARKET_DESC) as MARKET_DESC - FROM A - LEFT JOIN dm.dm_chc_pack_property B -- 以A表 pack_code 为准 获取需要的维度信息 - ON B.PACK_COD = A.PACK_COD - LEFT JOIN DM.DM_IMS_TD_MARKET_PROPERTY C -- THC没有TA字段,关联CHPA的相关表,获取TA - ON B.MARKET = C.MARKET - LEFT JOIN dm.dm_chc_pack_property E --MARKET_PACK_KEY 为唯一主键,获取KEY_COMPETITOR,class等信息 - ON B.MARKET_PACK_KEY = E.MARKET_PACK_KEY - LEFT JOIN( -- 获取RATIO ,其中chc_brandratio没有补0和转码的操作,这里处理 - select - MARKET, - b.iqvia_pack_code as pack_cod, - ratio - from dwd.dwd_gnd_ext_chc_brandratio a - inner join dwd.dwd_gnd_ext_chc_pack_property b - on (case when length(a.pack_cod) < 12 and a.pack_cod REGEXP '^[0-9]' then right(concat('000000000000',a.pack_cod),12) else a.pack_cod end ) - =(case when length(b.pack_cod) < 12 and b.pack_cod REGEXP '^[0-9]' then right(concat('000000000000',b.pack_cod),12) else b.pack_cod end ) - ) D - ON B.MARKET = D.MARKET - AND B.PACK_COD = D.PACK_COD - LEFT JOIN ( --获取 MARKET_DESC 字段 - SELECT - MARKET,DATA_SOURCE, - MAX(MARKETDESC) MARKET_DESC - FROM DM.DM_TD_EXTERNAL_KEYCOMPATITOR - GROUP BY MARKET,DATA_SOURCE - ) G - ON B.MARKET = G.MARKET AND UPPER(G.DATA_SOURCE) = 'CHC(QUARTERLY)' - GROUP BY B.MARKET_PACK_KEY,B.PACK_COD,B.PACK_DES,B.PROD_DES,B.PROD_DES_C,B.MARKET - -) B -WHERE B.PACK_COD IS NOT NULL AND B.MARKET IS NOT NULL -and market!='RD Market' - --- COMMAND ---------- - -/* -修改人:chenwu -修改时间:20250319 -修改内容: EC的数据源cu恒等于1 -*/ ------------------------------------------------------------ec----------------------------------------------------------- -INSERT into dm.dm_td_external_market_pack_mapping_temp( - PACK_COD,PACK_DES,PROD_DES,PROD_DES_C,MARKET,TA,KEY_COMPETITOR,AZ_RELATED,CLASS, - VALUE_MARKET_RATIO,UNIT_MARKET_RATIO,COUNTINGUNIT_MARKET_RATIO,PDOT_MARKET_RATIO,MARKET_DESC,TA_RN,DATA_SOURCE,dept_name,key_dept_name - ,new_code - ,area -) -SELECT - B.PACK_COD, - B.PACK_DES, - B.PROD_DES, - B.PROD_DES_C, - B.MARKET, - CASE - WHEN B.MARKET = 'RE Market' THEN 'RE' - when B.TA = 'RE' THEN NULL--只有 'RE Market (Global)' 的ta是 RE - ELSE B.TA - END TA, - B.KEY_COMPETITOR, - CASE - WHEN B.MARKET = 'RE Market' THEN 'RE' - WHEN B.TA = 'RE' THEN NULL - ELSE B.TA - END AZ_RELATED, - B.CLASS, - nvl(B.VALUE_MARKET_RATIO, 1), - nvl(B.UNIT_MARKET_RATIO, 1), - 1, - --nvl(B.COUNTINGUNIT_MARKET_RATIO,1), --ec的数据源cu恒等于1 - nvl(B.PDOT_MARKET_RATIO, 1), - B.MARKET_DESC, - CASE - WHEN b.TA = 'DM' THEN 1 - WHEN b.TA = 'CV' THEN 2 - WHEN b.TA = 'RE' THEN 4 - WHEN b.TA = 'GI' THEN 5 - WHEN B.TA = 'CVRM' THEN 0 - ELSE 99 - END TA_RN, - 'EC(Monthly)' DATA_SOURCE, - '' as dept_name, - '' as key_dept_name, - '' as new_code, - '' as area -FROM - ( - SELECT - a.MARKET_PACK_KEY, - B.iqvia_pack_code PACK_COD, - a.PACK_DES, - a.PROD_DES, - a.PROD_DES_C, - a.MARKET, - MAX(a.TA) TA, - MAX(a.KEY_COMPETITOR) KEY_COMPETITOR, - MAX(a.CLASS) CLASS, - MAX(D.VALUE_MARKET_RATIO) VALUE_MARKET_RATIO, - MAX(D.UNIT_MARKET_RATIO) UNIT_MARKET_RATIO, - MAX(D.COUNTINGUNIT_MARKET_RATIO) COUNTINGUNIT_MARKET_RATIO, - MAX(D.COUNTINGUNIT_MARKET_RATIO) PDOT_MARKET_RATIO, - max(g.MARKET_DESC) MARKET_DESC - FROM - DM.dm_zk_ec_pack_property a - LEFT JOIN DM.dm_zk_ec_market_property B ON A.iqvia_pack_code = B.iqvia_pack_code - and a.market = b.market - LEFT JOIN dm.dm_zk_ec_market_ratio D ON B.MARKET = D.MARKET - AND B.iqvia_pack_code = D.PACK_COD - LEFT JOIN ( - SELECT - MARKET, - DATA_SOURCE, - MAX(MARKETDESC) MARKET_DESC - FROM - DM.DM_TD_EXTERNAL_KEYCOMPATITOR - GROUP BY - MARKET, - DATA_SOURCE - ) G ON B.MARKET = G.MARKET - AND UPPER(G.DATA_SOURCE) = 'EC(MONTHLY)' - WHERE - A.iqvia_pack_code in ( - select - distinct iqvia_pack_code - from - dm.dm_zk_ec_sales - ) - GROUP BY - a.MARKET_PACK_KEY, - B.iqvia_pack_code, - a.PACK_DES, - a.PROD_DES, - a.PROD_DES_C, - a.MARKET - ) b - - --- COMMAND ---------- - - ------------------------------------------------AIA---------------------------------------------------------------------------------- -WITH AIA_brand_ratio as ( - SELECT distinct market, - CASE WHEN length(cmps_cod) < 6 THEN RIGHT(CONCAT('000000',cmps_cod),6) ELSE cmps_cod END AS cmps_cod, - cmps_des, - CASE WHEN length(pack_cod) < 12 and pack_cod REGEXP '^[0-9]' THEN RIGHT(CONCAT('000000000000',pack_cod),12) ELSE pack_cod END AS pack_cod, - pack_des, - level, - type, - ratio - from dwd.dwd_gnd_ims_tblBrandRatio -) -,AIA_RATIO as ( -select t1.PACK_COD, -t1.MARKET, -case when t6.ratio is not null then t1.market_ratio * t6.ratio - else t1.market_ratio * NVL(t7.ratio,1) -end as VALUE_MARKET_RATIO, -case when t2.ratio is not null then t1.market_ratio * t2.ratio - else t1.market_ratio * NVL(t3.ratio,1) -end as UNIT_MARKET_RATIO, -t1.market_ratio as COUNTINGUNIT_MARKET_RATIO, -case when t4.ratio is not null then t1.market_ratio * t4.ratio - else t1.market_ratio * NVL(t5.ratio,1) -end as PDOT_MARKET_RATIO -from dm.dm_aia_pack_property t1 ---unit by Pack -left join (select * from AIA_brand_ratio where upper(type) = 'UNIT' and upper(Level) = 'PACK') t2 -on t1.PACK_COD = t2.pack_cod -and t1.MARKET = t2.market ---unit by MOLECULE -left join (select * from AIA_brand_ratio where upper(type) = 'UNIT' and upper(Level) = 'MOLECULE') t3 -on t1.CMPS_COD = t3.cmps_cod -and t1.MARKET = t3.market ---PDOT by Pack -left join (select * from AIA_brand_ratio where upper(type) = 'COUNTINGUNIT' and upper(Level) = 'PACK') t4 -on t1.PACK_COD = t4.pack_cod -and t1.MARKET = t4.market ---PDOT by MOLECULE -left join (select * from AIA_brand_ratio where upper(type) = 'COUNTINGUNIT' and upper(Level) = 'MOLECULE') t5 -on t1.CMPS_COD = t5.cmps_cod -and t1.MARKET = t5.market ---VALUE by Pack -left join (select * from AIA_brand_ratio where upper(type) = 'VALUE' and upper(Level) = 'PACK') t6 -on t1.PACK_COD = t6.pack_cod -and t1.MARKET = t6.market ---VALUE by MOLECULE -left join (select * from AIA_brand_ratio where upper(type) = 'VALUE' and upper(Level) = 'MOLECULE') t7 -on t1.CMPS_COD = t7.cmps_cod -and t1.MARKET = t7.market - -) -,MARKET_PACK_MAPPING_1 as ( - select - B.MARKET_PACK_KEY, - B.PACK_COD, - B.PACK_DES, - B.PROD_DES, - B.PROD_DES_C, - B.MARKET as MARKET_AIA, - --AIA有一部分market有通过手工表AIA_IMS_Market_Mapping更新过名称 - --使用旧的从CHPA里来的名称关联 - B.MARKET_CHPA, - nvl(MAX(C.TA),'') as TA, - MAX(E.KEY_COMPETITOR) KEY_COMPETITOR, - NULL as IS_AZ, - NULL as AZ_MAIN, - NULL as AZ_Related, - nvl(MAX(E.CLASS),'') as CLASS, - MAX(t1.VALUE_MARKET_RATIO) as VALUE_MARKET_RATIO, -- sales * VALUE_MARKET_RATIO = 折算好的sales - MAX(t1.UNIT_MARKET_RATIO) as UNIT_MARKET_RATIO, -- unint * UNIT_MARKET_RATIO = 折算好的 UNIT - MAX(t1.COUNTINGUNIT_MARKET_RATIO) as COUNTINGUNIT_MARKET_RATIO, -- counting_unit*COUNTINGUNIT_MARKET_RATIO = 折算好的 CU - MAX(t1.PDOT_MARKET_RATIO) as PDOT_MARKET_RATIO, -- counting_unit*Market_Ratio*PDOT_MARKET_RATIO = PDOT - max(G.MARKET_DESC) as MARKET_DESC - from ( - SELECT - PACK_COD, - COUNT(*) RUM - FROM DM.DM_TF_EXTERNAL_SALES - WHERE DATA_SOURCE = 'AIA(Monthly)' - GROUP BY PACK_COD - ) A - left join dm.dm_aia_pack_property B - on A.PACK_COD = B.PACK_COD - left join DM.DM_IMS_TD_MARKET_PROPERTY C - --AIA有一部分market有通过手工表AIA_IMS_Market_Mapping更新过名称 - --使用旧的从CHPA里来的名称关联 - on B.MARKET_CHPA = C.MARKET - left join dm.dm_aia_pack_property E - on B.MARKET_PACK_KEY = E.MARKET_PACK_KEY - left join AIA_RATIO t1 - on B.PACK_COD = t1.PACK_COD - and B.MARKET = t1.MARKET - left join ( - select MARKET,DATA_SOURCE, - MAX(MARKETDESC) MARKET_DESC - from DM.DM_TD_EXTERNAL_KEYCOMPATITOR - group by market,DATA_SOURCE - ) G - --竞品配置信息表里使用的AIA的市场名称,因此使用AIA市场名关联 - on B.MARKET = G.MARKET and upper(G.DATA_SOURCE) = 'AIA(Monthly)' - group by B.MARKET_PACK_KEY,B.PACK_COD,B.PACK_DES,B.PROD_DES,B.PROD_DES_C,B.MARKET,B.MARKET_CHPA -) - - -insert into table dm.dm_td_external_market_pack_mapping_temp ( -PACK_COD, -PACK_DES, -PROD_DES, -PROD_DES_C, -MARKET, -TA, -KEY_COMPETITOR, -AZ_RELATED, -CLASS, -VALUE_MARKET_RATIO, -UNIT_MARKET_RATIO, -COUNTINGUNIT_MARKET_RATIO, -PDOT_MARKET_RATIO, -MARKET_DESC, -TA_RN, -DATA_SOURCE, -dept_name, -key_dept_name, -new_code, -area -) - select - PACK_COD, - PACK_DES, - PROD_DES, - PROD_DES_C, - MARKET_AIA as MARKET, - TA, - KEY_COMPETITOR, - case when MARKET_CHPA = 'DM Market' THEN 'DM' - when MARKET_CHPA = 'CV Market' THEN 'CV' - when MARKET_CHPA = 'RD Market' THEN 'RD' - when MARKET_CHPA = 'RE Market' THEN 'RE' - when MARKET_CHPA = 'GI Market' THEN 'GI' - when MARKET_CHPA = 'ONC Market' THEN 'ONCO' - when MARKET_CHPA = 'NIAD (Non-Insulin Anti-Diabetic) Market' THEN 'NIAD' - WHEN MARKET_CHPA = 'RARE Market' THEN 'RARE'--20250701 chenwu 新增RARE - end as AZ_RELATED, - Class, - cast(VALUE_MARKET_RATIO as double) as VALUE_MARKET_RATIO, - cast(UNIT_MARKET_RATIO as double) as UNIT_MARKET_RATIO, - cast(COUNTINGUNIT_MARKET_RATIO as double) as COUNTINGUNIT_MARKET_RATIO, - cast(PDOT_MARKET_RATIO as double) as PDOT_MARKET_RATIO, - MARKET_DESC, - case when MARKET_CHPA = 'DM Market' THEN 1 - when MARKET_CHPA = 'CV Market' THEN 2 - when MARKET_CHPA = 'RD Market' THEN 3 - when MARKET_CHPA = 'RE Market' THEN 4 - when MARKET_CHPA = 'GI Market' THEN 5 - when MARKET_CHPA = 'ONC Market' THEN 6 - when MARKET_CHPA = 'NIAD (Non-Insulin Anti-Diabetic) Market' THEN 7 - WHEN MARKET_CHPA = 'RARE Market' THEN 8--20250701 chenwu 新增RARE - else 99 - end as TA_RN, - 'AIA(Monthly)' as DATA_SOURCE - ,'' as dept_name - ,'' as key_dept_name - ,'' as new_code - ,'' as area - from MARKET_PACK_MAPPING_1 - where PACK_COD IS NOT NULL - and MARKET_AIA IS NOT NULL - - --- COMMAND ---------- - -INSERT into table dm.dm_td_external_market_pack_mapping_temp( - PACK_COD, - PACK_DES, - PROD_DES, - PROD_DES_C, - MARKET, - TA, - KEY_COMPETITOR, - AZ_RELATED, - CLASS, - VALUE_MARKET_RATIO, - UNIT_MARKET_RATIO, - COUNTINGUNIT_MARKET_RATIO, - PDOT_MARKET_RATIO, - MARKET_DESC, - TA_RN, - DATA_SOURCE, - dept_name, - key_dept_name, - new_code, - area - ) - - WITH MKT_PACK_RATIO AS ( - -------------------------------------根据沟通,市场+产品对应的ratio是唯一的------------------------------------------ - SELECT - A.MARKET, - A.PACK_COD, - MAX(A.Value_Market_Ratio) Value_Market_Ratio, - MAX(A.Unit_Market_Ratio) Unit_Market_Ratio, - MAX(A.PDOT_Market_Ratio) CountingUnit_Market_Ratio, - MAX(A.CountingUnit_Market_Ratio) PDOT_Market_Ratio --因为之前的报告在使用源表的数据,因此命名是反的。 - FROM - DWS.dws_ims_td_market_ratio A - WHERE - A.YM = ( - SELECT - MAX(YM) - FROM - DWS.dws_ims_td_market_ratio - ) - GROUP BY - A.MARKET, - A.PACK_COD - ) -------------------------------------------------------------------xiehe------------------------------------------------------------------ -SELECT - B.PACK_COD, - B.PACK_DES, - B.PROD_DES, - B.PROD_DES_C, - B.MARKET, - B.TA, - B.KEY_COMPETITOR, - CASE - WHEN B.MARKET = 'DM Market' THEN 'DM' - WHEN B.MARKET = 'CV Market' THEN 'CV' - WHEN B.MARKET = 'RD Market' THEN 'RD' - WHEN B.MARKET = 'RE Market' THEN 'RE' - WHEN B.MARKET IN ('GI Market', 'Retail_GI Market') THEN 'GI' - WHEN B.MARKET = 'ONC Market' THEN 'ONCO' - WHEN B.MARKET = 'NIAD (Non-Insulin Anti-Diabetic) Market' THEN 'NIAD' - WHEN B.MARKET = 'RARE Market' THEN 'RARE'--20250701 chenwu 新增RARE - END AZ_RELATED, - B.CLASS, - NVL(B.VALUE_MARKET_RATIO, 1) VALUE_MARKET_RATIO, - NVL(B.UNIT_MARKET_RATIO, 1) UNIT_MARKET_RATIO, - NVL(B.COUNTINGUNIT_MARKET_RATIO, 1) COUNTINGUNIT_MARKET_RATIO, - NVL(B.PDOT_MARKET_RATIO, 1) PDOT_MARKET_RATIO, - B.MARKET_DESC, - CASE - WHEN B.MARKET = 'DM Market' THEN 1 - WHEN B.MARKET = 'CV Market' THEN 2 - WHEN B.MARKET = 'RD Market' THEN 3 - WHEN B.MARKET = 'RE Market' THEN 4 - WHEN B.MARKET = 'GI Market' THEN 5 - WHEN B.MARKET = 'ONC Market' THEN 6 - WHEN B.MARKET = 'NIAD (Non-Insulin Anti-Diabetic) Market' THEN 7 - WHEN B.MARKET = 'RARE Market' THEN 8 --20250701 chenwu 新增RARE - ELSE 99 - END TA_RN, - 'XH Data(Quarterly)' DATA_SOURCE, - B.dept_name, - B.key_dept_name, - B.new_code, - B.area -FROM - ( - SELECT - B.MARKET_PACK_KEY, - B.PACK_COD, - B.PACK_DES, - B.PROD_DES, - B.PROD_DES_C, - B.MARKET, - NVL(H.dept_name,'') dept_name, - NVL(t1.CORE_DEPT,'Others') as key_dept_name, - NVL(H.new_code,'') new_code, - NVL(H.area,'') area, - MAX(C.TA) TA, - MAX(E.KEY_COMPETITOR) KEY_COMPETITOR, - MAX(E.IS_AZ) IS_AZ, - MAX(E.AZ_MAIN) AZ_MAIN, - MAX(E.AZ_RELATED) AZ_RELATED, - MAX(E.CLASS) CLASS, - MAX(D.VALUE_MARKET_RATIO) VALUE_MARKET_RATIO, - MAX(D.UNIT_MARKET_RATIO) UNIT_MARKET_RATIO, - MAX(D.COUNTINGUNIT_MARKET_RATIO) COUNTINGUNIT_MARKET_RATIO, - MAX(D.PDOT_MARKET_RATIO) PDOT_MARKET_RATIO, - max(g.MARKET_DESC) MARKET_DESC - FROM - ( - SELECT - PACK_COD, - COUNT(*) RUM - FROM - DM.DM_TF_EXTERNAL_SALES - WHERE DATA_SOURCE = 'XH Data(Quarterly)' - GROUP BY - PACK_COD - ) A - LEFT JOIN dm.dm_xiehe_pack_property B ON B.PACK_COD = A.PACK_COD --AND B.MARKET <> 'IMS ALL Market' - LEFT JOIN DM.DM_IMS_TD_MARKET_PROPERTY C ON B.MARKET = C.MARKET - LEFT JOIN dm.dm_xiehe_pack_property E ON B.MARKET_PACK_KEY = E.MARKET_PACK_KEY - LEFT JOIN MKT_PACK_RATIO D ON B.MARKET = D.MARKET - AND B.PACK_COD = D.PACK_COD - LEFT JOIN ( - SELECT - MARKET,DATA_SOURCE, - MAX(MARKETDESC) MARKET_DESC - FROM - DM.DM_TD_EXTERNAL_KEYCOMPATITOR - GROUP BY - MARKET,DATA_SOURCE - ) G ON B.MARKET = G.MARKET and G.DATA_SOURCE = 'XH Data(Quarterly)' - left join ( - SELECT distinct PACK_COD,dept_name,new_code,area - from dm.dm_td_external_packinfo_temp2 - where DATA_SOURCE = 'XH Data(Quarterly)' - ) H - on A.PACK_COD = H.PACK_COD - left join dm.dm_td_xiehe_core_dept t1 - on B.MARKET = t1.MARKET - AND H.dept_name = t1.Dept_NAME - GROUP BY - B.MARKET_PACK_KEY, - B.PACK_COD, - B.PACK_DES, - B.PROD_DES, - B.PROD_DES_C, - B.MARKET, - H.dept_name, - H.new_code, - H.area, - t1.CORE_DEPT - ) B -WHERE - B.PACK_COD IS NOT NULL - AND B.MARKET IS NOT NULL - --- COMMAND ---------- - ---修改时间:20240808 ---修改人:FanXuJia ---修改背景: ---事实表与维度表来自于不同手工表,目前存在一部分pack_cod在事实表有销量,但是在维度表没有这个pack_cod,导致销量缺失。 ---因此需要从事实表补全这部分pack_cod -with tmp_market_pack as ( -select distinct - t1.PACK_COD, - CASE WHEN t1.DATA_SOURCE = 'CHC(Quarterly)' then 'CHC ALL Market' - WHEN t1.DATA_SOURCE = 'IQVIA-CHPA(Monthly)' then 'IMS ALL Market' - WHEN t1.DATA_SOURCE = 'IQVIA-COUNTY(Quarterly)' then 'IMS ALL Market' - WHEN t1.DATA_SOURCE = 'Retail(Quarterly)' then 'Retail All Market' - WHEN t1.DATA_SOURCE = 'THC(Quarterly)' then 'THC ALL Market' - WHEN t1.DATA_SOURCE = 'EC(Monthly)' then 'EC ALL Market' - WHEN t1.DATA_SOURCE = 'AIA(Monthly)' then 'NON Market' - WHEN t1.DATA_SOURCE = 'XH Data(Quarterly)' then 'XIEHE ALL Market' - WHEN t1.DATA_SOURCE = 'DTP(Quarterly)' then 'DTP ALL Market' - end as market, - t1.DATA_SOURCE -from external_sales_union t1 -left join dm.dm_td_external_market_pack_mapping_temp t2 -on t1.PACK_COD = t2.PACK_COD -and t1.DATA_SOURCE = t2.DATA_SOURCE -where t2.PACK_COD is null -) -,tmp_packinfo as ( -select -PACK_COD, -new_code, -area, -dept_name, -DATA_SOURCE, -max(PACK_DES) as PACK_DES, -max(PROD_DES) as PROD_DES, -max(PROD_DES_C) as PROD_DES_C -from dm.dm_td_external_packinfo_temp2 -group by PACK_COD,DATA_SOURCE,dept_name,new_code,area -) - -INSERT into table dm.dm_td_external_market_pack_mapping_temp( - PACK_COD, - PACK_DES, - PROD_DES, - PROD_DES_C, - MARKET, - TA, - KEY_COMPETITOR, - AZ_RELATED, - CLASS, - VALUE_MARKET_RATIO, - UNIT_MARKET_RATIO, - COUNTINGUNIT_MARKET_RATIO, - PDOT_MARKET_RATIO, - MARKET_DESC, - TA_RN, - DATA_SOURCE, - dept_name, - key_dept_name, - new_code, - area - ) - select - t1.PACK_COD, - t2.PACK_DES, - t2.PROD_DES, - t2.PROD_DES_C, - t1.MARKET, - null as TA, - null as KEY_COMPETITOR, - null as AZ_RELATED, - null as CLASS, - 1 as VALUE_MARKET_RATIO, - 1 as UNIT_MARKET_RATIO, - 1 as COUNTINGUNIT_MARKET_RATIO, - 1 as PDOT_MARKET_RATIO, - null as MARKET_DESC, - null as TA_RN, - t1.DATA_SOURCE, - t2.dept_name, - NVL(t3.CORE_DEPT,'Others') as key_dept_name, - t2.new_code, - t2.area - from tmp_market_pack t1 - left join tmp_packinfo t2 - on t1.PACK_COD = t2.PACK_COD - and t1.DATA_SOURCE = t2.DATA_SOURCE - left join dm.dm_td_xiehe_core_dept t3 - on t1.MARKET = t3.MARKET - AND t2.dept_name = t3.Dept_NAME - - --- COMMAND ---------- - ------------------------------------------------------------ ---修改时间:20241118 ---修改人:Fanxujia ---修改内容: ---使用手工文件排除掉每个渠道的不需要显示的市场,不再Hardcoding ------------------------------------------------------------ --- ---------------------------------------------------------------------------- --- --修改时间:20240813 --- --修改人:FanXujia --- --修改内容:CHC_AZ related TA ALL这个市场只在CHC中显示,其他渠道排除这个市场(Hard Coding) --- ---------------------------------------------------------------------------- --- delete from dm.dm_td_external_market_pack_mapping_temp --- where upper(MARKET) = 'CHC_AZ RELATED TA ALL' --- and data_source <> 'CHC(Quarterly)' - --- COMMAND ---------- - ------------------------------------------------------------ ---修改时间: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_external_market_pack_mapping_temp 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 - --- COMMAND ---------- - --------------------------------------------------------------------------------- ---修改时间:20241025 ---修改人:Fanxujia ---修改内容: ---外部数据报告优化,将PBI的逻辑搬到DBR --------------------------------------------------------------------------------- --------------------------------------------------------------------------------- ---修改时间:20241209 ---修改人:Fanxujia ---修改内容: ---新增Key Competitor CN,从packinfo表里关联出中文名,关联不到的保留英文名 --------------------------------------------------------------------------------- -with mapping as ( -select distinct PROD_DES,PROD_DES_C -from dm.dm_td_external_packinfo -) -,market_pack_mapping_1 as ( -SELECT - PACK_COD, - max(PROD_DES) PROD_DES, - max(PROD_DES_C) PROD_DES_C, - MARKET, - ---------------------------------------------------------------------------------- - --修改时间:20241217 - --修改人:Fanxujia - --修改内容: - --取不到Class时,不再显示成中划线-,改成Others - ---------------------------------------------------------------------------------- - CASE - -- WHEN NVL(max(CLASS), '') = '' OR max(CLASS) = 'Others' THEN '-' - WHEN NVL(max(CLASS), '') = '' THEN 'Others' - ELSE UPPER(max(CLASS)) - END CLASS, - CAST(max(VALUE_MARKET_RATIO) AS DECIMAL(38, 20)) VALUE_MARKET_RATIO, - CAST(max(UNIT_MARKET_RATIO) AS DECIMAL(38, 20)) UNIT_MARKET_RATIO, - CAST(max(COUNTINGUNIT_MARKET_RATIO) AS DECIMAL(38, 20)) COUNTINGUNIT_MARKET_RATIO, - CAST(max(PDOT_MARKET_RATIO) AS DECIMAL(38, 20)) PDOT_MARKET_RATIO, - DATA_SOURCE, - case when max(KEY_COMPETITOR) is null or max(KEY_COMPETITOR) = '' then 'Others' - else max(KEY_COMPETITOR) - end as KEY_COMPETITOR, - NEW_CODE -FROM DM.dm_td_external_market_pack_mapping_temp -group by PACK_COD,NEW_CODE,DATA_SOURCE,MARKET -) - -, mapping_match_key_competitor_with_mutil as ( -select -t3.PACK_COD, -t3.PROD_DES, -t3.PROD_DES_C, -t3.MARKET, -t3.CLASS, -t3.VALUE_MARKET_RATIO, -t3.UNIT_MARKET_RATIO, -t3.COUNTINGUNIT_MARKET_RATIO, -t3.PDOT_MARKET_RATIO, -t3.DATA_SOURCE, -case WHEN t3.KEY_COMPETITOR ='Others' and (UPPER(t2.keycompetitor) is not null or UPPER(t2.keycompetitor) <>'') -THEN upper(t2.keycompetitor) ELSE t3.KEY_COMPETITOR -end as KEY_COMPETITOR, -t3.NEW_CODE -,t2.no1 - from market_pack_mapping_1 t3 -left join dm.dm_td_external_packinfo t1 -on t1.PACK_COD = t3.PACK_COD and t1.DATA_SOURCE = t3.DATA_SOURCE -left JOIN (SELECT ROW_NUMBER() OVER(ORDER BY - CASE - WHEN ATC1_Code IS NOT NULL THEN 1 - WHEN ATC2_Code IS NOT NULL THEN 2 - WHEN ATC3_Code IS NOT NULL THEN 3 - WHEN ATC4_Code IS NOT NULL THEN 4 - WHEN Molecule_Code IS NOT NULL THEN 5 - WHEN Product_Code IS NOT NULL THEN 6 - WHEN Pack_Code IS NOT NULL THEN 7 - ELSE 999 END, - CASE WHEN NFC1_CODE IS NULL THEN 0 ELSE 1 END, - CASE WHEN NFC2_CODE IS NULL THEN 0 ELSE 1 END, - CASE WHEN NFC2_CODE IS NULL THEN 0 ELSE 1 END, - CASE WHEN NFC3_CODE IS NULL THEN 0 ELSE 1 END - ) AS no1,* FROM dwd.dwd_gnd_ims_tblkeycompetitor)t2 - on - COALESCE(t1.ATC1_COD,'') = case when t2.ATC1_Code is null then COALESCE(t1.ATC1_COD,'') else t2.ATC1_Code end - and COALESCE(t1.ATC2_COD,'') = case when t2.ATC2_Code is null then COALESCE(t1.ATC2_COD,'') else t2.ATC2_Code end - and COALESCE(t1.ATC3_COD,'') = case when t2.ATC3_Code is null then COALESCE(t1.ATC3_COD,'') else t2.ATC3_Code end - and COALESCE(t1.ATC4_COD,'') = case when t2.ATC4_Code is null then COALESCE(t1.ATC4_COD,'') else t2.ATC4_Code end - and COALESCE(t1.APP1_COD,'') = case when t2.NFC1_Code is null then COALESCE(t1.APP1_COD,'') else t2.NFC1_Code end - and COALESCE(t1.APP2_COD,'') = case when t2.NFC2_Code is null then COALESCE(t1.APP2_COD,'') else t2.NFC2_Code end - and COALESCE(t1.APP3_COD,'') = case when t2.NFC3_Code is null then COALESCE(t1.APP3_COD,'') else t2.NFC3_Code end - and COALESCE(t1.CORP_COD,'') = case when t2.corporation_code is null then COALESCE(t1.CORP_COD,'') else t2.corporation_code end - and COALESCE(t1.MANU_COD,'') = case when t2.Manufacturer_Code is null then COALESCE(t1.MANU_COD,'') else t2.Manufacturer_Code end - and COALESCE(t1.PROD_COD,'') = case when t2.Product_Code is null then COALESCE(t1.PROD_COD,'') else t2.Product_Code end - and COALESCE(t1.PACK_COD,'') = case when t2.Pack_Code is null then COALESCE(t1.PACK_COD,'') else t2.Pack_Code end - and COALESCE(t1.STGH_DES,'') = case when t2.Strength is null then COALESCE(t1.STGH_DES,'') else t2.Strength end - and COALESCE(t1.CMPS_COD,'') = case when t2.Molecule_Code is null then COALESCE(t1.CMPS_COD,'') else t2.Molecule_Code end - and COALESCE(t3.market ,'') = case when t2.market is null then COALESCE(t3.market,'') else t2.market end -) - -,mapping_match_key_competitor as ( - select * from (select *, row_number() over (partition by PACK_COD,MARKET,DATA_SOURCE,NEW_CODE,CLASS order by no1 desc ) as new_order FROM mapping_match_key_competitor_with_mutil ) as new - WHERE new.new_order =1 - ) - -insert overwrite table DM.dm_td_external_market_pack_mapping -( -PACK_COD, -PROD_DES, -PROD_DES_C, -MARKET, -CLASS, -VALUE_MARKET_RATIO, -UNIT_MARKET_RATIO, -COUNTINGUNIT_MARKET_RATIO, -PDOT_MARKET_RATIO, -DATA_SOURCE, -KEY_COMPETITOR, -KEY_COMPETITOR_CN, -NEW_CODE -) - -SELECT - t1.PACK_COD, - t1.PROD_DES, - t1.PROD_DES_C, - t1.MARKET, - t1.CLASS, - t1.VALUE_MARKET_RATIO, - t1.UNIT_MARKET_RATIO, - t1.COUNTINGUNIT_MARKET_RATIO, - t1.PDOT_MARKET_RATIO, - t1.DATA_SOURCE, - t1.KEY_COMPETITOR, - COALESCE(t2.PROD_DES_C,t1.KEY_COMPETITOR) as KEY_COMPETITOR_CN, - t1.NEW_CODE -FROM mapping_match_key_competitor t1 -left join mapping t2 -on upper(t1.KEY_COMPETITOR) = upper(t2.PROD_DES) - --- COMMAND ---------- - -update dm.dm_td_external_market_pack_mapping - set KEY_COMPETITOR = 'OTHERS',KEY_COMPETITOR_CN ='OTHERS' -where upper(KEY_COMPETITOR) = 'OTHERS' or upper(KEY_COMPETITOR_CN) = 'OTHERS' - --- COMMAND ---------- - -create or replace temporary view dim_KEY_COMPETITOR -as -select upper(KEY_COMPETITOR) as KEY_COMPETITOR,max(KEY_COMPETITOR_CN) as KEY_COMPETITOR_CN -from dm.dm_td_external_market_pack_mapping -group by KEY_COMPETITOR - --- COMMAND ---------- - -MERGE INTO dm.dm_td_external_market_pack_mapping AS t1 -USING dim_KEY_COMPETITOR AS t2 - ON t1.KEY_COMPETITOR = t2.KEY_COMPETITOR -WHEN MATCHED THEN - UPDATE SET t1.KEY_COMPETITOR_CN = t2.KEY_COMPETITOR_CN; diff --git a/EXTERNAL/z 10 dm_td_external_market_pack_mapping_作废.sql:Zone.Identifier b/EXTERNAL/z 10 dm_td_external_market_pack_mapping_作废.sql:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2x'Retail All Market' -UNION all -SELECT MARKET,DATA_SOURCE, 'CVRM' TA,0 TA_RN,MARKET_DESC -FROM DM.DM_TD_EXTERNAL_MARKET -WHERE MARKET = 'CVRM Market' - --- COMMAND ---------- - ------------------------------------------------------------------------------------ ---修改时间:20240822 ---修改人:FanXujia ---修改内容: ---Retail、EC渠道,新增NIAD这个TA。数据与DM相同 ------------------------------------------------------------------------------------ -insert into dm.dm_td_external_market_ta -( -MARKET, -DATA_SOURCE, -TA, -TA_RN, -MARKET_DESC -) -select -market, -DATA_SOURCE, -'NIAD' as TA, -7 as TA_RN, -MARKET_DESC -from dm.dm_td_external_market_ta -where DATA_SOURCE = 'Retail(Quarterly)' -and ta = 'DM' -union all -select -market, -DATA_SOURCE, -'NIAD' as TA, -7 as TA_RN, -MARKET_DESC -from dm.dm_td_external_market_ta -where DATA_SOURCE = 'EC(Monthly)' -and ta = 'DM' - ---20250701 chenwu 新增RARE = ONCO的Soliris Related Market -union all -select -market, -DATA_SOURCE, -'RARE' as TA, -8 as TA_RN, -MARKET_DESC -from dm.dm_td_external_market_ta -where DATA_SOURCE = 'Retail(Quarterly)' -and ta = 'ONCO' -and MARKET = 'Soliris Related Market' - --- COMMAND ---------- - --- log 20250226 auth:庄伟 --- 对market_ta表中市场进行补全,并依据手工文件维护的 market 与 ta 映射,匹配出完整市场对应的TA_NAME - - -insert overwrite table dm.dm_td_external_market_ta -( -MARKET, -DATA_SOURCE, -TA, -TA_MAP, -TA_RN, -MARKET_DESC -) - ------找出在market维度表中不存在的market列表 -with temp_ma_ext_market -as -( -select -distinct -MARKET -,DATA_SOURCE -from dm.dm_td_external_market -where MARKET NOT IN ( -select distinct MARKET -from dm.dm_td_external_market_ta -) -) - - -------补充完整的market列表,并通过market匹配手工文件维护的market对应的TA -select -distinct -dim_mkt_ta.MARKET, -DATA_SOURCE, -dim_mkt_ta.TA, -nvl(mkt_property.ta,mkt_property_key.TA) TA_MAP, -dim_mkt_ta.TA_RN, -dim_mkt_ta.MARKET_DESC -from -( -select MARKET,DATA_SOURCE,TA,TA_RN,MARKET_DESC -from dm.dm_td_external_market_ta -)dim_mkt_ta -left join dm.dm_ims_td_market_property mkt_property -on dim_mkt_ta.market = mkt_property.market -left join dm.dm_ims_td_market_property mkt_property_key -on dim_mkt_ta.MARKET = mkt_property_key.MARKET_KEY -union all -select - ext_market.MARKET, - ext_market.DATA_SOURCE, - null TA, - mkt_property.TA TA_MAP, - '99' as TA_RN, - null MARKET_DESC -from temp_ma_ext_market ext_market -left join dm.dm_ims_td_market_property mkt_property -on ext_market. market =mkt_property.MARKET -where nvl(mkt_property.TA,'')<>''; \ No newline at end of file diff --git a/EXTERNAL/z 11 dm_td_external_market_作废.sql:Zone.Identifier b/EXTERNAL/z 11 dm_td_external_market_作废.sql:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2x