diff --git a/dev/workflow/TK_Cust/tk_crm/CRM联系信息/d_crm_contact_agi.sql b/dev/workflow/TK_Cust/tk_crm/CRM联系信息/d_crm_contact_agi.sql index 85da5c7..54fd8f4 100644 --- a/dev/workflow/TK_Cust/tk_crm/CRM联系信息/d_crm_contact_agi.sql +++ b/dev/workflow/TK_Cust/tk_crm/CRM联系信息/d_crm_contact_agi.sql @@ -4,11 +4,11 @@ /*Brilliance stems from wisdoms. */ /*************Head Section**************************************************************************/ /*Script Use: Periodically load data to :d_crm_contact(CRM联系信息) */ -/*Create Date:2024-04-29 13:54:27 */ +/*Create Date:2024-06-04 16:12:38 */ /*SDM Developed By: dev */ /*SDM Developed Date: 2024-01-18 */ /*SDM Checked By: dev */ -/*SDM Checked Date: 2024-04-29 */ +/*SDM Checked Date: 2024-06-04 */ /*Script Developed By: dev */ /*Script Checked By: dev */ /*Source table 1: p20_pdm.t01_crm_contact */ @@ -113,7 +113,7 @@ SELECT ,COALESCE(TRIM(p0.company_name),'') /*company_name*/ ,COALESCE(TRIM(p0.account_name),'') /*account_name*/ ,COALESCE(TRIM(p0.owner_id),'') /*owner_id*/ - ,0 /*full_name*/ + ,last_name||'.'||first_name /*full_name*/ ,case when mobile_phone ~ '^1[3-9]\d{9}$' then mobile_phone when telphone ~ '^1[3-9]\d{9}$' then replace(replace(telphone,'+86 ',''),' ','') else mobile_phone end /*mobile_phone*/ ,case when length(replace(replace(mobile_phone,'+86 ',''),' ',''))>1 then '1' else 0 end /*mobile_phone_data_ind*/ diff --git a/dev/workflow/TK_Cust/tk_crm/客户联系信息/cust_contact_info.sql b/dev/workflow/TK_Cust/tk_crm/客户联系信息/cust_contact_info.sql new file mode 100644 index 0000000..721d124 --- /dev/null +++ b/dev/workflow/TK_Cust/tk_crm/客户联系信息/cust_contact_info.sql @@ -0,0 +1,86 @@ + +DROP TABLE IF EXISTS p30_common.cust_contact_info; +CREATE TABLE IF NOT EXISTS p30_common.cust_contact_info ( + contact_id text + , contact text + , contact_channel text + , full_name text + , mobile VARCHAR(0) + , email VARCHAR(0) + , wechat VARCHAR(0) + , company VARCHAR(0) + , account text + , country VARCHAR(0) + , prov_name VARCHAR(0) + , city_name VARCHAR(0) + , industry VARCHAR(50) + , ccp_value VARCHAR(0) + , crm_contact text + , crm_full_name text + , crm_mobile VARCHAR(0) + , crm_email VARCHAR(0) + , crm_company VARCHAR(0) + , crm_account VARCHAR(0) + , account_name text + , crm_country_name VARCHAR(0) + , crm_prov_name VARCHAR(0) + , crm_city_name VARCHAR(0) + , crm_industry VARCHAR(50) + , scrm_contact text + , scrm_full_name VARCHAR(0) + , scrm_mobile text + , scrm_email VARCHAR(0) + , scrm_wechat VARCHAR(0) + , scrm_company VARCHAR(0) + , scrm_prov_name VARCHAR(0) + , scrm_city_name VARCHAR(0) + , livechat_contact text + , livechat_full_name VARCHAR(0) + , livechat_mobile VARCHAR(0) + , livechat_email VARCHAR(0) + , livechat_company VARCHAR(0) + , livechat_country VARCHAR(0) + +); + + COMMENT ON COLUMN p30_common.cust_contact_info.contact_id IS ''; + COMMENT ON COLUMN p30_common.cust_contact_info.contact IS ''; + COMMENT ON COLUMN p30_common.cust_contact_info.contact_channel IS ''; + COMMENT ON COLUMN p30_common.cust_contact_info.full_name IS ''; + COMMENT ON COLUMN p30_common.cust_contact_info.mobile IS ''; + COMMENT ON COLUMN p30_common.cust_contact_info.email IS ''; + COMMENT ON COLUMN p30_common.cust_contact_info.wechat IS ''; + COMMENT ON COLUMN p30_common.cust_contact_info.company IS ''; + COMMENT ON COLUMN p30_common.cust_contact_info.account IS ''; + COMMENT ON COLUMN p30_common.cust_contact_info.country IS ''; + COMMENT ON COLUMN p30_common.cust_contact_info.prov_name IS ''; + COMMENT ON COLUMN p30_common.cust_contact_info.city_name IS ''; + COMMENT ON COLUMN p30_common.cust_contact_info.industry IS ''; + COMMENT ON COLUMN p30_common.cust_contact_info.ccp_value IS ''; + COMMENT ON COLUMN p30_common.cust_contact_info.crm_contact IS ''; + COMMENT ON COLUMN p30_common.cust_contact_info.crm_full_name IS ''; + COMMENT ON COLUMN p30_common.cust_contact_info.crm_mobile IS ''; + COMMENT ON COLUMN p30_common.cust_contact_info.crm_email IS ''; + COMMENT ON COLUMN p30_common.cust_contact_info.crm_company IS ''; + COMMENT ON COLUMN p30_common.cust_contact_info.crm_account IS ''; + COMMENT ON COLUMN p30_common.cust_contact_info.account_name IS ''; + COMMENT ON COLUMN p30_common.cust_contact_info.crm_country_name IS ''; + COMMENT ON COLUMN p30_common.cust_contact_info.crm_prov_name IS ''; + COMMENT ON COLUMN p30_common.cust_contact_info.crm_city_name IS ''; + COMMENT ON COLUMN p30_common.cust_contact_info.crm_industry IS ''; + COMMENT ON COLUMN p30_common.cust_contact_info.scrm_contact IS ''; + COMMENT ON COLUMN p30_common.cust_contact_info.scrm_full_name IS ''; + COMMENT ON COLUMN p30_common.cust_contact_info.scrm_mobile IS ''; + COMMENT ON COLUMN p30_common.cust_contact_info.scrm_email IS ''; + COMMENT ON COLUMN p30_common.cust_contact_info.scrm_wechat IS ''; + COMMENT ON COLUMN p30_common.cust_contact_info.scrm_company IS ''; + COMMENT ON COLUMN p30_common.cust_contact_info.scrm_prov_name IS ''; + COMMENT ON COLUMN p30_common.cust_contact_info.scrm_city_name IS ''; + COMMENT ON COLUMN p30_common.cust_contact_info.livechat_contact IS ''; + COMMENT ON COLUMN p30_common.cust_contact_info.livechat_full_name IS ''; + COMMENT ON COLUMN p30_common.cust_contact_info.livechat_mobile IS ''; + COMMENT ON COLUMN p30_common.cust_contact_info.livechat_email IS ''; + COMMENT ON COLUMN p30_common.cust_contact_info.livechat_company IS ''; + COMMENT ON COLUMN p30_common.cust_contact_info.livechat_country IS ''; + +COMMENT ON TABLE p30_common.cust_contact_info IS ''; \ No newline at end of file diff --git a/dev/workflow/TK_Cust/tk_crm/客户联系信息/cust_contact_info_agi.sql b/dev/workflow/TK_Cust/tk_crm/客户联系信息/cust_contact_info_agi.sql new file mode 100644 index 0000000..64403e1 --- /dev/null +++ b/dev/workflow/TK_Cust/tk_crm/客户联系信息/cust_contact_info_agi.sql @@ -0,0 +1,338 @@ +/***************************************************************************************************/ +/*script in Sql, generate by SdmCreateScript 2020(by Qihang Feng, QF255001@TERADATA.COM) */ +/*VERSION 01.10 revised on 2020-08-25 */ +/*Brilliance stems from wisdoms. */ +/*************Head Section**************************************************************************/ +/*Script Use: Periodically load data to :cust_contact_info(客户联系信息) */ +/*Create Date:2024-06-04 15:56:16 */ +/*SDM Developed By: dev */ +/*SDM Developed Date: 2024-01-19 */ +/*SDM Checked By: dev */ +/*SDM Checked Date: 2024-06-04 */ +/*Script Developed By: dev */ +/*Script Checked By: dev */ +/*Source table 1: :PDMDB.t01_crm_account */ +/*Source table 2: :PDMDB.t00_china_city_info */ +/*Source table 3: p30_common.cust_contact_mapping */ +/*Source table 4: :PDMDB.t00_country_info */ +/*Job Type: Inbound transform (Tier 1 to Tier 2) */ +/*Target Table:cust_contact_info */ +/*ETL Job Name:cust_contact_info */ +/*ETL Frequency:Daily */ +/*ETL Policy:F1 */ +/********************************************************************************************/ +/*******Main Section**************************************************************************/ +\set ON_ERROR_STOP on +\set AUTOCOMMIT on +\timing on + + + +/*创建临时表加载当前数据 */ +CREATE TEMPORARY TABLE cust_contact_info_agi_CUR_I + ( LIKE :COMMDB.cust_contact_info) +ON COMMIT PRESERVE ROWS; + + +/*****************************************************************************************************/ +/* GROUP 1:Source Table:cust_contact_mapping**********************************************************/ +/*****************************************************************************************************/ + +前置处理INSERT INTO cust_contact_info_agi_CUR_I ( + contact_id /*联系人ID*/ + ,contact /*联系方式*/ + ,contact_channel /*联系人渠道*/ + ,full_name /*姓名*/ + ,mobile /*手机号*/ + ,email /*电子邮箱*/ + ,wechat /*微信*/ + ,company /*公司*/ + ,account /*账号*/ + ,country /*国家*/ + ,prov_name /*省份*/ + ,city_name /*城市*/ + ,industry /*行业*/ + ,crm_contact /*CRM线索号*/ + ,crm_full_name /*CRM姓名*/ + ,crm_mobile /*CRM手机号*/ + ,crm_email /*CRM邮箱*/ + ,crm_company /*CRM公司*/ + ,crm_account /*CRM账号*/ + ,account_name /*账号名称*/ + ,crm_country_name /*CRM国家*/ + ,crm_prov_name /*CRM省份*/ + ,crm_city_name /*CRM城市*/ + ,crm_industry /*CRM行业*/ + ,scrm_contact /*SCRM线索编号*/ + ,scrm_full_name /*SCRM姓名*/ + ,scrm_mobile /*SCRM手机号*/ + ,scrm_email /*SCRM邮箱*/ + ,scrm_wechat /*SCRM微信*/ + ,scrm_company /*SCRM公司*/ + ,scrm_prov_name /*SCRM省份*/ + ,scrm_city_name /*SCRM城市*/ + ,livechat_contact /*Livechat线索编号*/ + ,livechat_full_name /*Livechat姓名*/ + ,livechat_mobile /*Livechat手机号*/ + ,livechat_email /*Livechat邮箱*/ + ,livechat_company /*Livechat公司*/ + ,livechat_country /**/ + ,udesk_contact /*UdeskcallID*/ + ,udesk_full_name /*Udesk姓名*/ + ,udesk_mobile /*Udesk手机号*/ + ,udesk_company /*Udesk公司*/ + ,udesk_prov_name /*Udesk省份*/ + ,udesk_city_name /*udesk城市*/ + ,src_sysname /*来源系统*/ + ,src_table /*来源表*/ + ,etl_job /*作业名称*/ + ,etl_first_dt /*最初入库时间*/ + ,etl_proc_dt /*本次入库时间*/ + ,etl_tx_dt /*作业运行时间*/ + ,etl_batch_no /*作业批次号*/ + ) +SELECT + p1.contact_id /*contact_id*/ + ,p1.contact /*contact*/ + ,p1.contact_channel /*contact_channel*/ + ,p1.full_name /*full_name*/ + ,p1.mobile /*mobile*/ + ,p1.email /*email*/ + ,p1.wechat /*wechat*/ + ,p1.company /*company*/ + ,p1.account /*account*/ + ,coalesce(p3.country_en_name,p4.country_en_name,p1.country) /*country*/ + ,p1.prov_name /*prov_name*/ + ,coalesce(p2.city_name,p1.city_name) /*city_name*/ + ,p1.industry /*industry*/ + ,p1.crm_contact /*crm_contact*/ + ,p1.crm_full_name /*crm_full_name*/ + ,p1.crm_mobile /*crm_mobile*/ + ,p1.crm_email /*crm_email*/ + ,p1.crm_company /*crm_company*/ + ,p1.crm_account /*crm_account*/ + ,coalesce(p6.name,'') /*account_name*/ + ,p1.crm_country_name /*crm_country_name*/ + ,p1.crm_prov_name /*crm_prov_name*/ + ,p1.crm_city_name /*crm_city_name*/ + ,p1.crm_industry /*crm_industry*/ + ,p1.scrm_contact /*scrm_contact*/ + ,p1.scrm_full_name /*scrm_full_name*/ + ,p1.scrm_mobile /*scrm_mobile*/ + ,p1.scrm_email /*scrm_email*/ + ,p1.scrm_wechat /*scrm_wechat*/ + ,p1.scrm_company /*scrm_company*/ + ,p1.scrm_prov_name /*scrm_prov_name*/ + ,p1.scrm_city_name /*scrm_city_name*/ + ,p1.livechat_contact /*livechat_contact*/ + ,p1.livechat_full_name /*livechat_full_name*/ + ,p1.livechat_mobile /*livechat_mobile*/ + , p1.livechat_email /*livechat_email*/ + ,p1.livechat_company /*livechat_company*/ + ,p1.livechat_country /*livechat_country*/ + ,p1.udesk_contact /*udesk_contact*/ + ,p1.udesk_full_name /*udesk_full_name*/ + ,p1.udesk_mobile /*udesk_mobile*/ + ,p1.udesk_company /*udesk_company*/ + ,p1.udesk_prov_name /*udesk_prov_name*/ + ,p1.udesk_city_name /*udesk_city_name*/ + ,Substr('cust_contact_mapping',1,3) /*src_sysname*/ + ,'cust_contact_mapping' /*src_table*/ + ,:ETLJOB /*etl_job*/ + ,TO_DATE(:TXDATE,'YYYYMMDD') /*etl_first_dt*/ + ,current_timestamp(0) /*etl_proc_dt*/ + ,TO_DATE(:TXDATE,'YYYYMMDD') /*etl_tx_dt*/ + ,0 /*etl_batch_no*/ + +FROM (select +p1.contact_id +,p1.user_id as contact +,case when crm_contact ='' and scrm_contact ='' and livechat_contact ='' then 'Udesk' else trim(case when crm_contact <> '' then 'CRM ' else '' end || case when scrm_contact <> '' then 'SCRM ' else '' end ||case when livechat_contact <> '' then 'Livechat ' else '' end) end contact_channel +,coalesce(p2.full_name,p3.full_name,p4.full_name,p5.full_name ,'') full_name +,coalesce(p2.mobile_phone,p3.mobile_phone,p4.mobile_phone,p5.mobile_phone ,'') mobile +,coalesce(p2.email,p3.email,p4.email,'') email +,coalesce(p3.wechat_id,'') wechat +,coalesce(p2.company_name,p3.company_name,p4.company_name,p5.company_name ,'') company +,coalesce(p2.account_name,'') account +,case when p2.country_name is not null then p2.country_name + when p3.wechat_id is not null then 'China' + when p4.visitor_country_code is not null then p4.visitor_country_code + else '' + end country +,coalesce(p2.prov_name,p3.prov_name,p5.prov_name ,'') prov_name +,coalesce(p2.city_name,p3.city_name,p5.city_name ,'') city_name +,coalesce(p2.industry) industry +,p1.crm_contact +,coalesce(p2.full_name,'') crm_full_name +,coalesce(p2.mobile_phone,'') crm_mobile +,coalesce(p2.email,'') crm_email +,coalesce(p2.company_name,'') crm_company +,coalesce(p2.account_name,'') crm_account +,coalesce(p2.account_name,'') account_name +,coalesce(p2.country_name,'') crm_country_name +,coalesce(p2.prov_name,'') crm_prov_name +,coalesce(p2.city_name,'') crm_city_name +,coalesce(p2.industry) crm_industry +,coalesce(p2.post_cd) crm_postcode +,p1.scrm_contact +,coalesce(p3.full_name,'') scrm_full_name +,coalesce(p3.mobile_phone,'') scrm_mobile +,coalesce(p3.email,'') scrm_email +,coalesce(p3.wechat_id,'') scrm_wechat +,coalesce(p3.company_name,'') scrm_company +,coalesce(p3.prov_name,'') scrm_prov_name +,coalesce(p3.city_name,'') scrm_city_name +,p1.livechat_contact +,coalesce(p4.full_name,'') livechat_full_name +,coalesce(p4.mobile_phone,'') livechat_mobile +,coalesce(p4.email,'') livechat_email +,coalesce(p4.company_name,'') livechat_company +,coalesce(p4.visitor_country_code,'') livechat_country +,p5.udesk_contact +,coalesce(p5.full_name,'') udesk_full_name +,coalesce(p5.mobile_phone,'') udesk_mobile +,coalesce(p5.company_name,'') udesk_company +,coalesce(p5.prov_name,'') udesk_prov_name +,coalesce(p5.city_name,'') udesk_city_name +from p30_common.v_cust_contact_mapping_all p1 +left join p30_common.d_crm_contact p2 +on p1.crm_contact =p2.crm_contact_account +left join p30_common.d_scrm_contact p3 +on p1.scrm_contact =p3.scrm_leads_id +left join p30_common.d_livechat_contact p4 +on p1.livechat_contact =livechat_leads_id +left join p30_common.d_udesk_contact p5 +on p1.udesk_contact =p5.udesk_contact) p1 +LEFT JOIN :PDMDB.t00_china_city_info p2 + ON upper(p2.city_en) = upper(p1.city_name) +LEFT JOIN :PDMDB.t00_country_info p3 + ON upper(p1.country)=upper(p3.country_en_name) +LEFT JOIN :PDMDB.t00_country_info p4 + ON upper(p1.country)=upper(p4.country_cd) +LEFT JOIN :PDMDB.t01_crm_account p6 + ON p1.crm_account =p6.accountnumber + +附加条件 +; + + +预处理重跑 +/*从目标表中删除所有数据 cust_contact_info(客户联系信息) */ +DELETE FROM :COMMDB.cust_contact_info +WHERE ETL_JOB=:ETLJOB; + + +/*将新增数据插入到目标表 */ +;INSERT INTO :COMMDB.cust_contact_info ( + contact_id /*联系人ID*/ + ,contact /*联系方式*/ + ,contact_channel /*联系人渠道*/ + ,full_name /*姓名*/ + ,mobile /*手机号*/ + ,email /*电子邮箱*/ + ,wechat /*微信*/ + ,company /*公司*/ + ,account /*账号*/ + ,country /*国家*/ + ,prov_name /*省份*/ + ,city_name /*城市*/ + ,industry /*行业*/ + ,crm_contact /*CRM线索号*/ + ,crm_full_name /*CRM姓名*/ + ,crm_mobile /*CRM手机号*/ + ,crm_email /*CRM邮箱*/ + ,crm_company /*CRM公司*/ + ,crm_account /*CRM账号*/ + ,account_name /*账号名称*/ + ,crm_country_name /*CRM国家*/ + ,crm_prov_name /*CRM省份*/ + ,crm_city_name /*CRM城市*/ + ,crm_industry /*CRM行业*/ + ,scrm_contact /*SCRM线索编号*/ + ,scrm_full_name /*SCRM姓名*/ + ,scrm_mobile /*SCRM手机号*/ + ,scrm_email /*SCRM邮箱*/ + ,scrm_wechat /*SCRM微信*/ + ,scrm_company /*SCRM公司*/ + ,scrm_prov_name /*SCRM省份*/ + ,scrm_city_name /*SCRM城市*/ + ,livechat_contact /*Livechat线索编号*/ + ,livechat_full_name /*Livechat姓名*/ + ,livechat_mobile /*Livechat手机号*/ + ,livechat_email /*Livechat邮箱*/ + ,livechat_company /*Livechat公司*/ + ,livechat_country /**/ + ,udesk_contact /*UdeskcallID*/ + ,udesk_full_name /*Udesk姓名*/ + ,udesk_mobile /*Udesk手机号*/ + ,udesk_company /*Udesk公司*/ + ,udesk_prov_name /*Udesk省份*/ + ,udesk_city_name /*udesk城市*/ + ,src_sysname /*来源系统*/ + ,src_table /*来源表*/ + ,etl_job /*作业名称*/ + ,etl_first_dt /*最初入库时间*/ + ,etl_proc_dt /*本次入库时间*/ + ,etl_tx_dt /*作业运行时间*/ + ,etl_batch_no /*作业批次号*/ + + ) + SELECT + P1.contact_id /*联系人ID*/ + ,P1.contact /*联系方式*/ + ,P1.contact_channel /*联系人渠道*/ + ,P1.full_name /*姓名*/ + ,P1.mobile /*手机号*/ + ,P1.email /*电子邮箱*/ + ,P1.wechat /*微信*/ + ,P1.company /*公司*/ + ,P1.account /*账号*/ + ,P1.country /*国家*/ + ,P1.prov_name /*省份*/ + ,P1.city_name /*城市*/ + ,P1.industry /*行业*/ + ,P1.crm_contact /*CRM线索号*/ + ,P1.crm_full_name /*CRM姓名*/ + ,P1.crm_mobile /*CRM手机号*/ + ,P1.crm_email /*CRM邮箱*/ + ,P1.crm_company /*CRM公司*/ + ,P1.crm_account /*CRM账号*/ + ,P1.account_name /*账号名称*/ + ,P1.crm_country_name /*CRM国家*/ + ,P1.crm_prov_name /*CRM省份*/ + ,P1.crm_city_name /*CRM城市*/ + ,P1.crm_industry /*CRM行业*/ + ,P1.scrm_contact /*SCRM线索编号*/ + ,P1.scrm_full_name /*SCRM姓名*/ + ,P1.scrm_mobile /*SCRM手机号*/ + ,P1.scrm_email /*SCRM邮箱*/ + ,P1.scrm_wechat /*SCRM微信*/ + ,P1.scrm_company /*SCRM公司*/ + ,P1.scrm_prov_name /*SCRM省份*/ + ,P1.scrm_city_name /*SCRM城市*/ + ,P1.livechat_contact /*Livechat线索编号*/ + ,P1.livechat_full_name /*Livechat姓名*/ + ,P1.livechat_mobile /*Livechat手机号*/ + ,P1.livechat_email /*Livechat邮箱*/ + ,P1.livechat_company /*Livechat公司*/ + ,P1.livechat_country /**/ + ,P1.udesk_contact /*UdeskcallID*/ + ,P1.udesk_full_name /*Udesk姓名*/ + ,P1.udesk_mobile /*Udesk手机号*/ + ,P1.udesk_company /*Udesk公司*/ + ,P1.udesk_prov_name /*Udesk省份*/ + ,P1.udesk_city_name /*udesk城市*/ + ,P1.src_sysname /*来源系统*/ + ,P1.src_table /*来源表*/ + ,P1.etl_job /*作业名称*/ + ,P1.etl_first_dt /*最初入库时间*/ + ,P1.etl_proc_dt /*本次入库时间*/ + ,P1.etl_tx_dt /*作业运行时间*/ + ,P1.etl_batch_no /*作业批次号*/ + + FROM cust_contact_info_agi_CUR_I P1 + 后置处理 +; +/*****程序结束退出 */ +\q +