-- Databricks notebook source -- log 20250226 auth:庄伟 -- MA和AIA权限表改造如下 --1.MA销售权限表(dm.dm_auth_sales_ta),通过辖区中销售负责的产品(Family)找到对应的TA,然后按照权限矩阵的限制对用户所能看到的BU进行筛选 -- Market Analysis_CHPA 全BU可看 -- Market Analysis_County 除BU:EC以外可以看 -- Market Analysis_CHC 除BU:EC&RDU 以外可以看 -- Market Analysis_THC 除BU:EC&RDU 以外可以看 -- Market Analysis_Retail/DTP 除BU:EC&RDU 以外可以看 -- Market Analysis_EC 仅EC可看 --修改 全BU可看 -- Market Analysis_AIA 除BU:EC以外可以看 -- Market Analysis_科室市场数据 全BU可看 --2.MA和AIA非销售权限表,按照workmate和mds用户申请的权限看 -- dm.dm_auth_nonsales_ta 直接按照用户申请的TA权限查看 -- dm.dm_auth_nonsales_org 根据用户申请的Sub_bu/BU转换为TA权限查看 -- log 20251105 auth:chenwu -- MA和AIA权限范围修改 dm.dm_auth_sales_ta -- Market Analysis_AIA 除BU:EC,Retail以外可以看 -- Market Analysis_科室市场数据 除BU:EC以外可以看 -- Market Analysis_Retail/DTP 除BU: EC以外可以看 -- COMMAND ---------- --for ec into retail create or replace temporary view dm_td_org_temp as SELECT org_key,mr_trty_tag,district_code,rsm_name,rc_name,p2.region_name,p2.rsd_kcode,p2.rsd_name ,CASE WHEN p2.yyyymm >= '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 ;