add workflow 泰克CRM,dev

This commit is contained in:
root 2025-12-20 19:33:59 +08:00
parent 2f0f0c4c36
commit aa1bec67b9
2 changed files with 406 additions and 670 deletions

View File

@ -51,8 +51,6 @@ CREATE TABLE IF NOT EXISTS p20_pdm.t01_crm_opportunity (
, marketing_program_type varchar(100) , marketing_program_type varchar(100)
, lead_number varchar(20) , lead_number varchar(20)
, crm_contact_number varchar(20) , crm_contact_number varchar(20)
, Scd_Start_Dt date
, Scd_End_Dt date
, Etl_Batch_No varchar(50) , Etl_Batch_No varchar(50)
, Etl_First_Dt timestamp(0) , Etl_First_Dt timestamp(0)
, Etl_Job varchar(50) , Etl_Job varchar(50)
@ -60,7 +58,7 @@ CREATE TABLE IF NOT EXISTS p20_pdm.t01_crm_opportunity (
, Etl_Tx_Dt timestamp(0) , Etl_Tx_Dt timestamp(0)
, Src_Sysname varchar(50) , Src_Sysname varchar(50)
, Src_Table varchar(50) , Src_Table varchar(50)
,primary key( tek_opportunity_id,Scd_Start_Dt ) ,primary key( tek_opportunity_id )
); );
COMMENT ON COLUMN p20_pdm.t01_crm_opportunity.tek_opportunity_id IS '泰克机会编号'; COMMENT ON COLUMN p20_pdm.t01_crm_opportunity.tek_opportunity_id IS '泰克机会编号';
@ -113,8 +111,6 @@ CREATE TABLE IF NOT EXISTS p20_pdm.t01_crm_opportunity (
COMMENT ON COLUMN p20_pdm.t01_crm_opportunity.marketing_program_type IS '市场项目类型'; COMMENT ON COLUMN p20_pdm.t01_crm_opportunity.marketing_program_type IS '市场项目类型';
COMMENT ON COLUMN p20_pdm.t01_crm_opportunity.lead_number IS '线索编号'; COMMENT ON COLUMN p20_pdm.t01_crm_opportunity.lead_number IS '线索编号';
COMMENT ON COLUMN p20_pdm.t01_crm_opportunity.crm_contact_number IS '联系人编号'; COMMENT ON COLUMN p20_pdm.t01_crm_opportunity.crm_contact_number IS '联系人编号';
COMMENT ON COLUMN p20_pdm.t01_crm_opportunity.Scd_Start_Dt IS '开始时间';
COMMENT ON COLUMN p20_pdm.t01_crm_opportunity.Scd_End_Dt IS '结束时间';
COMMENT ON COLUMN p20_pdm.t01_crm_opportunity.Etl_Batch_No IS '作业批次号'; COMMENT ON COLUMN p20_pdm.t01_crm_opportunity.Etl_Batch_No IS '作业批次号';
COMMENT ON COLUMN p20_pdm.t01_crm_opportunity.Etl_First_Dt IS '最初入库时间'; COMMENT ON COLUMN p20_pdm.t01_crm_opportunity.Etl_First_Dt IS '最初入库时间';
COMMENT ON COLUMN p20_pdm.t01_crm_opportunity.Etl_Job IS '作业名称'; COMMENT ON COLUMN p20_pdm.t01_crm_opportunity.Etl_Job IS '作业名称';

View File

@ -4,7 +4,7 @@
/*Brilliance stems from wisdoms. */ /*Brilliance stems from wisdoms. */
/*************Head Section**************************************************************************/ /*************Head Section**************************************************************************/
/*Script Use: Periodically load data to :t01_crm_opportunity(CRM销售机会) */ /*Script Use: Periodically load data to :t01_crm_opportunity(CRM销售机会) */
/*Create Date:2025-12-20 19:24:16 */ /*Create Date:2025-12-20 19:33:31 */
/*SDM Developed By: dev */ /*SDM Developed By: dev */
/*SDM Developed Date: 2024-04-19 */ /*SDM Developed Date: 2024-04-19 */
/*SDM Checked By: dev */ /*SDM Checked By: dev */
@ -16,7 +16,7 @@
/*Target Table:t01_crm_opportunity */ /*Target Table:t01_crm_opportunity */
/*ETL Job Name:t01_crm_opportunity */ /*ETL Job Name:t01_crm_opportunity */
/*ETL Frequency:Daily */ /*ETL Frequency:Daily */
/*ETL Policy:F5 */ /*ETL Policy:F2 */
/********************************************************************************************/ /********************************************************************************************/
/*******Main Section**************************************************************************/ /*******Main Section**************************************************************************/
\set ON_ERROR_STOP on \set ON_ERROR_STOP on
@ -37,16 +37,6 @@ CREATE TEMPORARY TABLE t01_crm_opportunity_agi_INS
( LIKE :PDMDB.t01_crm_opportunity) ( LIKE :PDMDB.t01_crm_opportunity)
ON COMMIT PRESERVE ROWS; ON COMMIT PRESERVE ROWS;
/*创建临时表加载当前有效数据 */
CREATE TEMPORARY TABLE t01_crm_opportunity_agi_CUR
( LIKE :PDMDB.t01_crm_opportunity)
ON COMMIT PRESERVE ROWS;
/*创建临时表加载缺失数据 */
CREATE TEMPORARY TABLE t01_crm_opportunity_agi_CUR_D
( LIKE :PDMDB.t01_crm_opportunity)
ON COMMIT PRESERVE ROWS;
/*****************************************************************************************************/ /*****************************************************************************************************/
/* GROUP 1:Source Table:s98_s_crm_opp*****************************************************************/ /* GROUP 1:Source Table:s98_s_crm_opp*****************************************************************/
@ -102,8 +92,6 @@ INSERT INTO t01_crm_opportunity_agi_CUR_I (
,marketing_program_type /*市场项目类型*/ ,marketing_program_type /*市场项目类型*/
,lead_number /*线索编号*/ ,lead_number /*线索编号*/
,crm_contact_number /*联系人编号*/ ,crm_contact_number /*联系人编号*/
,Scd_Start_Dt /*开始时间*/
,Scd_End_Dt /*结束时间*/
,Etl_Batch_No /*作业批次号*/ ,Etl_Batch_No /*作业批次号*/
,Etl_First_Dt /*最初入库时间*/ ,Etl_First_Dt /*最初入库时间*/
,Etl_Job /*作业名称*/ ,Etl_Job /*作业名称*/
@ -163,8 +151,6 @@ SELECT
,COALESCE(TRIM(CAST(p0.tek_marketing_program_type_idname AS varchar(100))),'') /*marketing_program_type*/ ,COALESCE(TRIM(CAST(p0.tek_marketing_program_type_idname AS varchar(100))),'') /*marketing_program_type*/
,COALESCE(TRIM(CAST(p0.tek_leadnumber AS varchar(20))),'') /*lead_number*/ ,COALESCE(TRIM(CAST(p0.tek_leadnumber AS varchar(20))),'') /*lead_number*/
,COALESCE(TRIM(CAST(p0.tek_contactnumber AS varchar(20))),'') /*crm_contact_number*/ ,COALESCE(TRIM(CAST(p0.tek_contactnumber AS varchar(20))),'') /*crm_contact_number*/
,TO_DATE(:TXDATE,'YYYYMMDD') /*Scd_Start_Dt*/
,TO_DATE(:MAXDATE,'YYYYMMDD') /*Scd_End_Dt*/
,0 /*Etl_Batch_No*/ ,0 /*Etl_Batch_No*/
,TO_DATE(:TXDATE,'YYYYMMDD') /*Etl_First_Dt*/ ,TO_DATE(:TXDATE,'YYYYMMDD') /*Etl_First_Dt*/
,:ETLJOB /*Etl_Job*/ ,:ETLJOB /*Etl_Job*/
@ -178,20 +164,16 @@ FROM p10_sa.s98_s_crm_opp p0
/*避免同一天多次运行造成数据重复 */ /*将不同数据插入到临时表 */
;INSERT INTO t01_crm_opportunity_agi_INS (
DELETE FROM :PDMDB.t01_crm_opportunity opportunity_name /*机会名称*/
WHERE ETL_JOB=:ETLJOB ,tektronix_apname /*tek_tektronixapname*/
AND scd_End_Dt=TO_DATE(:MAXDATE,'YYYYMMDD') ,estimated_close_time /*预期关闭时间*/
AND scd_Start_Dt=TO_DATE(:TXDATE,'YYYYMMDD'); ,actual_close_time /*实际关闭日期*/
UPDATE :PDMDB.t01_crm_opportunity ,parent_account_name /*父账号名称*/
SET scd_End_Dt=TO_DATE(:MAXDATE,'YYYYMMDD') ,parent_contact_name /*父联系人名称*/
WHERE ETL_JOB=:ETLJOB ,product_name /*产品名称*/
AND scd_End_Dt=TO_DATE(:TXDATE,'YYYYMMDD'); ,product_class /*产品类别*/
/*往临时表插入当前数据。 */
INSERT INTO t01_crm_opportunity_agi_CUR(
tek_opportunity_id /*泰克机会编号*/
,currency_name /*交易币种*/ ,currency_name /*交易币种*/
,uint_price /*单价*/ ,uint_price /*单价*/
,discount_percent /*折扣率*/ ,discount_percent /*折扣率*/
@ -202,7 +184,6 @@ INSERT INTO t01_crm_opportunity_agi_CUR(
,sales_funnel_stage_id /*销售漏斗层级编号*/ ,sales_funnel_stage_id /*销售漏斗层级编号*/
,status /*状况*/ ,status /*状况*/
,state /*状态*/ ,state /*状态*/
,opportunity_name /*机会名称*/
,region /*区域*/ ,region /*区域*/
,acount_manager /*账号经理*/ ,acount_manager /*账号经理*/
,territory_id /*领域编号*/ ,territory_id /*领域编号*/
@ -213,7 +194,6 @@ INSERT INTO t01_crm_opportunity_agi_CUR(
,create_person /*创建人*/ ,create_person /*创建人*/
,pipline_last_update /*pipline最后更新时间*/ ,pipline_last_update /*pipline最后更新时间*/
,status_last_update /*状况最后更新时间*/ ,status_last_update /*状况最后更新时间*/
,tektronix_apname /*tek_tektronixapname*/
,channel_id /*渠道编号*/ ,channel_id /*渠道编号*/
,purchase_method /*采购方式*/ ,purchase_method /*采购方式*/
,campaign_name /*活动名称*/ ,campaign_name /*活动名称*/
@ -224,7 +204,6 @@ INSERT INTO t01_crm_opportunity_agi_CUR(
,competitive_status /*竞争状态*/ ,competitive_status /*竞争状态*/
,important_opportunity_ind /*重要机会标志*/ ,important_opportunity_ind /*重要机会标志*/
,application_name /*应用名称*/ ,application_name /*应用名称*/
,estimated_close_time /*预期关闭时间*/
,opp_industry /*行业opp)*/ ,opp_industry /*行业opp)*/
,tag_list /*标签列表*/ ,tag_list /*标签列表*/
,discount_amount /*折扣金额*/ ,discount_amount /*折扣金额*/
@ -235,10 +214,8 @@ INSERT INTO t01_crm_opportunity_agi_CUR(
,account_number /*账号编号*/ ,account_number /*账号编号*/
,marketing_program_type /*市场项目类型*/ ,marketing_program_type /*市场项目类型*/
,lead_number /*线索编号*/ ,lead_number /*线索编号*/
,actual_close_time /*实际关闭日期*/
,crm_contact_number /*联系人编号*/ ,crm_contact_number /*联系人编号*/
,Scd_Start_Dt /*开始时间*/ ,tek_opportunity_id /*泰克机会编号*/
,Scd_End_Dt /*结束时间*/
,Etl_Batch_No /*作业批次号*/ ,Etl_Batch_No /*作业批次号*/
,Etl_First_Dt /*最初入库时间*/ ,Etl_First_Dt /*最初入库时间*/
,Etl_Job /*作业名称*/ ,Etl_Job /*作业名称*/
@ -246,13 +223,17 @@ INSERT INTO t01_crm_opportunity_agi_CUR(
,Etl_Tx_Dt /*作业运行时间*/ ,Etl_Tx_Dt /*作业运行时间*/
,Src_Sysname /*来源系统*/ ,Src_Sysname /*来源系统*/
,Src_Table /*来源表*/ ,Src_Table /*来源表*/
,parent_account_name /*父账号名称*/
,parent_contact_name /*父联系人名称*/ )
,product_name /*产品名称*/ SELECT
,product_class /*产品类别*/ P1.opportunity_name /*机会名称*/
) ,P1.tektronix_apname /*tek_tektronixapname*/
SELECT ,P1.estimated_close_time /*预期关闭时间*/
P1.tek_opportunity_id /*泰克机会编号*/ ,P1.actual_close_time /*实际关闭日期*/
,P1.parent_account_name /*父账号名称*/
,P1.parent_contact_name /*父联系人名称*/
,P1.product_name /*产品名称*/
,P1.product_class /*产品类别*/
,P1.currency_name /*交易币种*/ ,P1.currency_name /*交易币种*/
,P1.uint_price /*单价*/ ,P1.uint_price /*单价*/
,P1.discount_percent /*折扣率*/ ,P1.discount_percent /*折扣率*/
@ -263,7 +244,6 @@ SELECT
,P1.sales_funnel_stage_id /*销售漏斗层级编号*/ ,P1.sales_funnel_stage_id /*销售漏斗层级编号*/
,P1.status /*状况*/ ,P1.status /*状况*/
,P1.state /*状态*/ ,P1.state /*状态*/
,P1.opportunity_name /*机会名称*/
,P1.region /*区域*/ ,P1.region /*区域*/
,P1.acount_manager /*账号经理*/ ,P1.acount_manager /*账号经理*/
,P1.territory_id /*领域编号*/ ,P1.territory_id /*领域编号*/
@ -274,7 +254,6 @@ SELECT
,P1.create_person /*创建人*/ ,P1.create_person /*创建人*/
,P1.pipline_last_update /*pipline最后更新时间*/ ,P1.pipline_last_update /*pipline最后更新时间*/
,P1.status_last_update /*状况最后更新时间*/ ,P1.status_last_update /*状况最后更新时间*/
,P1.tektronix_apname /*tek_tektronixapname*/
,P1.channel_id /*渠道编号*/ ,P1.channel_id /*渠道编号*/
,P1.purchase_method /*采购方式*/ ,P1.purchase_method /*采购方式*/
,P1.campaign_name /*活动名称*/ ,P1.campaign_name /*活动名称*/
@ -285,7 +264,6 @@ SELECT
,P1.competitive_status /*竞争状态*/ ,P1.competitive_status /*竞争状态*/
,P1.important_opportunity_ind /*重要机会标志*/ ,P1.important_opportunity_ind /*重要机会标志*/
,P1.application_name /*应用名称*/ ,P1.application_name /*应用名称*/
,P1.estimated_close_time /*预期关闭时间*/
,P1.opp_industry /*行业opp)*/ ,P1.opp_industry /*行业opp)*/
,P1.tag_list /*标签列表*/ ,P1.tag_list /*标签列表*/
,P1.discount_amount /*折扣金额*/ ,P1.discount_amount /*折扣金额*/
@ -296,10 +274,8 @@ SELECT
,P1.account_number /*账号编号*/ ,P1.account_number /*账号编号*/
,P1.marketing_program_type /*市场项目类型*/ ,P1.marketing_program_type /*市场项目类型*/
,P1.lead_number /*线索编号*/ ,P1.lead_number /*线索编号*/
,P1.actual_close_time /*实际关闭日期*/
,P1.crm_contact_number /*联系人编号*/ ,P1.crm_contact_number /*联系人编号*/
,P1.Scd_Start_Dt /*开始时间*/ ,P1.tek_opportunity_id /*泰克机会编号*/
,P1.Scd_End_Dt /*结束时间*/
,P1.Etl_Batch_No /*作业批次号*/ ,P1.Etl_Batch_No /*作业批次号*/
,P1.Etl_First_Dt /*最初入库时间*/ ,P1.Etl_First_Dt /*最初入库时间*/
,P1.Etl_Job /*作业名称*/ ,P1.Etl_Job /*作业名称*/
@ -307,143 +283,10 @@ SELECT
,P1.Etl_Tx_Dt /*作业运行时间*/ ,P1.Etl_Tx_Dt /*作业运行时间*/
,P1.Src_Sysname /*来源系统*/ ,P1.Src_Sysname /*来源系统*/
,P1.Src_Table /*来源表*/ ,P1.Src_Table /*来源表*/
,P1.parent_account_name /*父账号名称*/
,P1.parent_contact_name /*父联系人名称*/
,P1.product_name /*产品名称*/
,P1.product_class /*产品类别*/
FROM :PDMDB.t01_crm_opportunity P1
WHERE P1.Scd_End_Dt = TO_DATE(:MAXDATE,'YYYYMMDD')
AND P1.ETL_Job = :ETLJOB
;
/*"今日数据"与"当前有效数据"进行比较找出新增及更新的数据,比对条件是:除去开始日期和结束日期的所有 */
/*字段。 */
INSERT INTO t01_crm_opportunity_agi_INS(
tek_opportunity_id /*泰克机会编号*/
, currency_name /*交易币种*/
, uint_price /*单价*/
, discount_percent /*折扣率*/
, discount_amount_base /*基础折扣金额*/
, base_amount /*基础金额*/
, total_amount /*总金额*/
, sales_funnel_stage /*销售漏斗层级*/
, sales_funnel_stage_id /*销售漏斗层级编号*/
, status /*状况*/
, state /*状态*/
, opportunity_name /*机会名称*/
, region /*区域*/
, acount_manager /*账号经理*/
, territory_id /*领域编号*/
, forecast_opp_ind /*预期机会标志*/
, risk_ind /*风险标志*/
, opportunity_age /*机会年份*/
, create_time /*创建时间*/
, create_person /*创建人*/
, pipline_last_update /*pipline最后更新时间*/
, status_last_update /*状况最后更新时间*/
, tektronix_apname /*tek_tektronixapname*/
, channel_id /*渠道编号*/
, purchase_method /*采购方式*/
, campaign_name /*活动名称*/
, web_medium /*网络媒介*/
, web_source /*网络来源*/
, customer_app /*客户应用*/
, vertical_segment /*垂直领域*/
, competitive_status /*竞争状态*/
, important_opportunity_ind /*重要机会标志*/
, application_name /*应用名称*/
, estimated_close_time /*预期关闭时间*/
, opp_industry /*行业opp)*/
, tag_list /*标签列表*/
, discount_amount /*折扣金额*/
, area_id /*地区编号*/
, branch_id /*分支编号*/
, extension_id /*扩展编号*/
, legal_company_name /*法定公司名称*/
, account_number /*账号编号*/
, marketing_program_type /*市场项目类型*/
, lead_number /*线索编号*/
, actual_close_time /*实际关闭日期*/
, crm_contact_number /*联系人编号*/
, Scd_Start_Dt /*开始时间*/
, Scd_End_Dt /*结束时间*/
, Etl_Batch_No /*作业批次号*/
, Etl_First_Dt /*最初入库时间*/
, Etl_Job /*作业名称*/
, Etl_Proc_Dt /*本次入库时间*/
, Etl_Tx_Dt /*作业运行时间*/
, Src_Sysname /*来源系统*/
, Src_Table /*来源表*/
, parent_account_name /*父账号名称*/
, parent_contact_name /*父联系人名称*/
, product_name /*产品名称*/
, product_class /*产品类别*/
)
SELECT
P1.tek_opportunity_id /*泰克机会编号*/
, P1.currency_name /*交易币种*/
, P1.uint_price /*单价*/
, P1.discount_percent /*折扣率*/
, P1.discount_amount_base /*基础折扣金额*/
, P1.base_amount /*基础金额*/
, P1.total_amount /*总金额*/
, P1.sales_funnel_stage /*销售漏斗层级*/
, P1.sales_funnel_stage_id /*销售漏斗层级编号*/
, P1.status /*状况*/
, P1.state /*状态*/
, P1.opportunity_name /*机会名称*/
, P1.region /*区域*/
, P1.acount_manager /*账号经理*/
, P1.territory_id /*领域编号*/
, P1.forecast_opp_ind /*预期机会标志*/
, P1.risk_ind /*风险标志*/
, P1.opportunity_age /*机会年份*/
, P1.create_time /*创建时间*/
, P1.create_person /*创建人*/
, P1.pipline_last_update /*pipline最后更新时间*/
, P1.status_last_update /*状况最后更新时间*/
, P1.tektronix_apname /*tek_tektronixapname*/
, P1.channel_id /*渠道编号*/
, P1.purchase_method /*采购方式*/
, P1.campaign_name /*活动名称*/
, P1.web_medium /*网络媒介*/
, P1.web_source /*网络来源*/
, P1.customer_app /*客户应用*/
, P1.vertical_segment /*垂直领域*/
, P1.competitive_status /*竞争状态*/
, P1.important_opportunity_ind /*重要机会标志*/
, P1.application_name /*应用名称*/
, P1.estimated_close_time /*预期关闭时间*/
, P1.opp_industry /*行业opp)*/
, P1.tag_list /*标签列表*/
, P1.discount_amount /*折扣金额*/
, P1.area_id /*地区编号*/
, P1.branch_id /*分支编号*/
, P1.extension_id /*扩展编号*/
, P1.legal_company_name /*法定公司名称*/
, P1.account_number /*账号编号*/
, P1.marketing_program_type /*市场项目类型*/
, P1.lead_number /*线索编号*/
, P1.actual_close_time /*实际关闭日期*/
, P1.crm_contact_number /*联系人编号*/
, P1.Scd_Start_Dt /*开始时间*/
, P1.Scd_End_Dt /*结束时间*/
, P1.Etl_Batch_No /*作业批次号*/
, P1.Etl_First_Dt /*最初入库时间*/
, P1.Etl_Job /*作业名称*/
, P1.Etl_Proc_Dt /*本次入库时间*/
, P1.Etl_Tx_Dt /*作业运行时间*/
, P1.Src_Sysname /*来源系统*/
, P1.Src_Table /*来源表*/
, P1.parent_account_name /*父账号名称*/
, P1.parent_contact_name /*父联系人名称*/
, P1.product_name /*产品名称*/
, P1.product_class /*产品类别*/
FROM t01_crm_opportunity_agi_CUR_I P1 FROM t01_crm_opportunity_agi_CUR_I P1
LEFT JOIN t01_crm_opportunity_agi_CUR P2 LEFT JOIN :PDMDB.t01_crm_opportunity P2
ON P1.tek_opportunity_id = P2.tek_opportunity_id ON P1.opportunity_name = P2.opportunity_name
AND P1.opportunity_name = P2.opportunity_name
AND P1.tektronix_apname = P2.tektronix_apname AND P1.tektronix_apname = P2.tektronix_apname
AND P1.estimated_close_time = P2.estimated_close_time AND P1.estimated_close_time = P2.estimated_close_time
AND P1.actual_close_time = P2.actual_close_time AND P1.actual_close_time = P2.actual_close_time
@ -492,219 +335,70 @@ LEFT JOIN t01_crm_opportunity_agi_CUR P2
AND P1.marketing_program_type = P2.marketing_program_type AND P1.marketing_program_type = P2.marketing_program_type
AND P1.lead_number = P2.lead_number AND P1.lead_number = P2.lead_number
AND P1.crm_contact_number = P2.crm_contact_number AND P1.crm_contact_number = P2.crm_contact_number
AND P2.ETL_Job =:ETLJOB AND P1.tek_opportunity_id = P2.tek_opportunity_id
WHERE
P2.tek_opportunity_id IS NULL WHERE P2.opportunity_name IS NULL
AND P2.Scd_Start_Dt IS NULL OR P2.tektronix_apname IS NULL
AND P2.opportunity_name IS NULL OR P2.estimated_close_time IS NULL
AND P2.tektronix_apname IS NULL OR P2.actual_close_time IS NULL
AND P2.estimated_close_time IS NULL OR P2.parent_account_name IS NULL
AND P2.actual_close_time IS NULL OR P2.parent_contact_name IS NULL
AND P2.parent_account_name IS NULL OR P2.product_name IS NULL
AND P2.parent_contact_name IS NULL OR P2.product_class IS NULL
AND P2.product_name IS NULL OR P2.currency_name IS NULL
AND P2.product_class IS NULL OR P2.uint_price IS NULL
AND P2.currency_name IS NULL OR P2.discount_percent IS NULL
AND P2.uint_price IS NULL OR P2.discount_amount_base IS NULL
AND P2.discount_percent IS NULL OR P2.base_amount IS NULL
AND P2.discount_amount_base IS NULL OR P2.total_amount IS NULL
AND P2.base_amount IS NULL OR P2.sales_funnel_stage IS NULL
AND P2.total_amount IS NULL OR P2.sales_funnel_stage_id IS NULL
AND P2.sales_funnel_stage IS NULL OR P2.status IS NULL
AND P2.sales_funnel_stage_id IS NULL OR P2.state IS NULL
AND P2.status IS NULL OR P2.region IS NULL
AND P2.state IS NULL OR P2.acount_manager IS NULL
AND P2.region IS NULL OR P2.territory_id IS NULL
AND P2.acount_manager IS NULL OR P2.forecast_opp_ind IS NULL
AND P2.territory_id IS NULL OR P2.risk_ind IS NULL
AND P2.forecast_opp_ind IS NULL OR P2.opportunity_age IS NULL
AND P2.risk_ind IS NULL OR P2.create_time IS NULL
AND P2.opportunity_age IS NULL OR P2.create_person IS NULL
AND P2.create_time IS NULL OR P2.pipline_last_update IS NULL
AND P2.create_person IS NULL OR P2.status_last_update IS NULL
AND P2.pipline_last_update IS NULL OR P2.channel_id IS NULL
AND P2.status_last_update IS NULL OR P2.purchase_method IS NULL
AND P2.channel_id IS NULL OR P2.campaign_name IS NULL
AND P2.purchase_method IS NULL OR P2.web_medium IS NULL
AND P2.campaign_name IS NULL OR P2.web_source IS NULL
AND P2.web_medium IS NULL OR P2.customer_app IS NULL
AND P2.web_source IS NULL OR P2.vertical_segment IS NULL
AND P2.customer_app IS NULL OR P2.competitive_status IS NULL
AND P2.vertical_segment IS NULL OR P2.important_opportunity_ind IS NULL
AND P2.competitive_status IS NULL OR P2.application_name IS NULL
AND P2.important_opportunity_ind IS NULL OR P2.opp_industry IS NULL
AND P2.application_name IS NULL OR P2.tag_list IS NULL
AND P2.opp_industry IS NULL OR P2.discount_amount IS NULL
AND P2.tag_list IS NULL OR P2.area_id IS NULL
AND P2.discount_amount IS NULL OR P2.branch_id IS NULL
AND P2.area_id IS NULL OR P2.extension_id IS NULL
AND P2.branch_id IS NULL OR P2.legal_company_name IS NULL
AND P2.extension_id IS NULL OR P2.account_number IS NULL
AND P2.legal_company_name IS NULL OR P2.marketing_program_type IS NULL
AND P2.account_number IS NULL OR P2.lead_number IS NULL
AND P2.marketing_program_type IS NULL OR P2.crm_contact_number IS NULL
AND P2.lead_number IS NULL OR P2.tek_opportunity_id IS NULL
AND P2.crm_contact_number IS NULL
; ;
/*将新增数据插入到目标表 */
INSERT INTO t01_crm_opportunity_agi_CUR_D (
tek_opportunity_id /*泰克机会编号*/
, currency_name /*交易币种*/
, uint_price /*单价*/
, discount_percent /*折扣率*/
, discount_amount_base /*基础折扣金额*/
, base_amount /*基础金额*/
, total_amount /*总金额*/
, sales_funnel_stage /*销售漏斗层级*/
, sales_funnel_stage_id /*销售漏斗层级编号*/
, status /*状况*/
, state /*状态*/
, opportunity_name /*机会名称*/
, region /*区域*/
, acount_manager /*账号经理*/
, territory_id /*领域编号*/
, forecast_opp_ind /*预期机会标志*/
, risk_ind /*风险标志*/
, opportunity_age /*机会年份*/
, create_time /*创建时间*/
, create_person /*创建人*/
, pipline_last_update /*pipline最后更新时间*/
, status_last_update /*状况最后更新时间*/
, tektronix_apname /*tek_tektronixapname*/
, channel_id /*渠道编号*/
, purchase_method /*采购方式*/
, campaign_name /*活动名称*/
, web_medium /*网络媒介*/
, web_source /*网络来源*/
, customer_app /*客户应用*/
, vertical_segment /*垂直领域*/
, competitive_status /*竞争状态*/
, important_opportunity_ind /*重要机会标志*/
, application_name /*应用名称*/
, estimated_close_time /*预期关闭时间*/
, opp_industry /*行业opp)*/
, tag_list /*标签列表*/
, discount_amount /*折扣金额*/
, area_id /*地区编号*/
, branch_id /*分支编号*/
, extension_id /*扩展编号*/
, legal_company_name /*法定公司名称*/
, account_number /*账号编号*/
, marketing_program_type /*市场项目类型*/
, lead_number /*线索编号*/
, actual_close_time /*实际关闭日期*/
, crm_contact_number /*联系人编号*/
, Scd_Start_Dt /*开始时间*/
, Scd_End_Dt /*结束时间*/
, Etl_Batch_No /*作业批次号*/
, Etl_First_Dt /*最初入库时间*/
, Etl_Job /*作业名称*/
, Etl_Proc_Dt /*本次入库时间*/
, Etl_Tx_Dt /*作业运行时间*/
, Src_Sysname /*来源系统*/
, Src_Table /*来源表*/
, parent_account_name /*父账号名称*/
, parent_contact_name /*父联系人名称*/
, product_name /*产品名称*/
, product_class /*产品类别*/
)
SELECT
P1.tek_opportunity_id /*泰克机会编号*/
, P1.currency_name /*交易币种*/
, P1.uint_price /*单价*/
, P1.discount_percent /*折扣率*/
, P1.discount_amount_base /*基础折扣金额*/
, P1.base_amount /*基础金额*/
, P1.total_amount /*总金额*/
, P1.sales_funnel_stage /*销售漏斗层级*/
, P1.sales_funnel_stage_id /*销售漏斗层级编号*/
, P1.status /*状况*/
, P1.state /*状态*/
, P1.opportunity_name /*机会名称*/
, P1.region /*区域*/
, P1.acount_manager /*账号经理*/
, P1.territory_id /*领域编号*/
, P1.forecast_opp_ind /*预期机会标志*/
, P1.risk_ind /*风险标志*/
, P1.opportunity_age /*机会年份*/
, P1.create_time /*创建时间*/
, P1.create_person /*创建人*/
, P1.pipline_last_update /*pipline最后更新时间*/
, P1.status_last_update /*状况最后更新时间*/
, P1.tektronix_apname /*tek_tektronixapname*/
, P1.channel_id /*渠道编号*/
, P1.purchase_method /*采购方式*/
, P1.campaign_name /*活动名称*/
, P1.web_medium /*网络媒介*/
, P1.web_source /*网络来源*/
, P1.customer_app /*客户应用*/
, P1.vertical_segment /*垂直领域*/
, P1.competitive_status /*竞争状态*/
, P1.important_opportunity_ind /*重要机会标志*/
, P1.application_name /*应用名称*/
, P1.estimated_close_time /*预期关闭时间*/
, P1.opp_industry /*行业opp)*/
, P1.tag_list /*标签列表*/
, P1.discount_amount /*折扣金额*/
, P1.area_id /*地区编号*/
, P1.branch_id /*分支编号*/
, P1.extension_id /*扩展编号*/
, P1.legal_company_name /*法定公司名称*/
, P1.account_number /*账号编号*/
, P1.marketing_program_type /*市场项目类型*/
, P1.lead_number /*线索编号*/
, P1.actual_close_time /*实际关闭日期*/
, P1.crm_contact_number /*联系人编号*/
, P1.Scd_Start_Dt /*开始时间*/
, P1.Scd_End_Dt /*结束时间*/
, P1.Etl_Batch_No /*作业批次号*/
, P1.Etl_First_Dt /*最初入库时间*/
, P1.Etl_Job /*作业名称*/
, P1.Etl_Proc_Dt /*本次入库时间*/
, P1.Etl_Tx_Dt /*作业运行时间*/
, P1.Src_Sysname /*来源系统*/
, P1.Src_Table /*来源表*/
, P1.parent_account_name /*父账号名称*/
, P1.parent_contact_name /*父联系人名称*/
, P1.product_name /*产品名称*/
, P1.product_class /*产品类别*/
FROM t01_crm_opportunity_agi_CUR_I P1
LEFT JOIN t01_crm_opportunity_agi_CUR P2
ON P1.tek_opportunity_id = P2.tek_opportunity_id
WHERE P2.tek_opportunity_id IS NULL
AND P2.Scd_End_Dt = TO_DATE(:MAXDATE,'YYYYMMDD')
AND P2.ETL_Job = :ETLJOB
;
/*更新目标表中数据,对更新的数据进行封口,即置结束日期为TX_DATE */
UPDATE :PDMDB.t01_crm_opportunity
SET Scd_End_Dt = TO_DATE(:TXDATE,'YYYYMMDD')
,Etl_Tx_Dt=:TXDATE
,Etl_Proc_Dt=CURRENT_TIMESTAMP(0)
WHERE Scd_End_Dt = TO_DATE(:MAXDATE, 'YYYYMMDD')
AND (:PDMDB.t01_crm_opportunity.ETL_Job = :ETLJOB)
AND ( tek_opportunity_id)
IN (SELECT tek_opportunity_id
FROM t01_crm_opportunity_agi_INS)
/*根据比对条件将目标表中删除数据进行相应的处理 */
;UPDATE :PDMDB.t01_crm_opportunity
SET Scd_End_Dt= TO_DATE(:TXDATE, 'YYYYMMDD')
,Etl_Tx_Dt=:TXDATE
,ETL_Proc_Dt=CURRENT_TIMESTAMP(0)
WHERE Scd_End_Dt=TO_DATE(:MAXDATE,'YYYYMMDD')
AND (:PDMDB.t01_crm_opportunity.ETL_Job = :ETLJOB)
AND ( tek_opportunity_id)
IN (SELECT
tek_opportunity_id
FROM t01_crm_opportunity_agi_CUR_D)
/*然后将新增的数据插入到目标表中置开始日期为TX_DATE结束日期置为MAXDATE */
;INSERT INTO :PDMDB.t01_crm_opportunity ( ;INSERT INTO :PDMDB.t01_crm_opportunity (
tek_opportunity_id /*泰克机会编号*/ opportunity_name /*机会名称*/
,tektronix_apname /*tek_tektronixapname*/
,estimated_close_time /*预期关闭时间*/
,actual_close_time /*实际关闭日期*/
,parent_account_name /*父账号名称*/
,parent_contact_name /*父联系人名称*/
,product_name /*产品名称*/
,product_class /*产品类别*/
,currency_name /*交易币种*/ ,currency_name /*交易币种*/
,uint_price /*单价*/ ,uint_price /*单价*/
,discount_percent /*折扣率*/ ,discount_percent /*折扣率*/
@ -715,7 +409,6 @@ FROM t01_crm_opportunity_agi_CUR_D)
,sales_funnel_stage_id /*销售漏斗层级编号*/ ,sales_funnel_stage_id /*销售漏斗层级编号*/
,status /*状况*/ ,status /*状况*/
,state /*状态*/ ,state /*状态*/
,opportunity_name /*机会名称*/
,region /*区域*/ ,region /*区域*/
,acount_manager /*账号经理*/ ,acount_manager /*账号经理*/
,territory_id /*领域编号*/ ,territory_id /*领域编号*/
@ -726,7 +419,6 @@ FROM t01_crm_opportunity_agi_CUR_D)
,create_person /*创建人*/ ,create_person /*创建人*/
,pipline_last_update /*pipline最后更新时间*/ ,pipline_last_update /*pipline最后更新时间*/
,status_last_update /*状况最后更新时间*/ ,status_last_update /*状况最后更新时间*/
,tektronix_apname /*tek_tektronixapname*/
,channel_id /*渠道编号*/ ,channel_id /*渠道编号*/
,purchase_method /*采购方式*/ ,purchase_method /*采购方式*/
,campaign_name /*活动名称*/ ,campaign_name /*活动名称*/
@ -737,7 +429,6 @@ FROM t01_crm_opportunity_agi_CUR_D)
,competitive_status /*竞争状态*/ ,competitive_status /*竞争状态*/
,important_opportunity_ind /*重要机会标志*/ ,important_opportunity_ind /*重要机会标志*/
,application_name /*应用名称*/ ,application_name /*应用名称*/
,estimated_close_time /*预期关闭时间*/
,opp_industry /*行业opp)*/ ,opp_industry /*行业opp)*/
,tag_list /*标签列表*/ ,tag_list /*标签列表*/
,discount_amount /*折扣金额*/ ,discount_amount /*折扣金额*/
@ -748,10 +439,8 @@ FROM t01_crm_opportunity_agi_CUR_D)
,account_number /*账号编号*/ ,account_number /*账号编号*/
,marketing_program_type /*市场项目类型*/ ,marketing_program_type /*市场项目类型*/
,lead_number /*线索编号*/ ,lead_number /*线索编号*/
,actual_close_time /*实际关闭日期*/
,crm_contact_number /*联系人编号*/ ,crm_contact_number /*联系人编号*/
,Scd_Start_Dt /*开始时间*/ ,tek_opportunity_id /*泰克机会编号*/
,Scd_End_Dt /*结束时间*/
,Etl_Batch_No /*作业批次号*/ ,Etl_Batch_No /*作业批次号*/
,Etl_First_Dt /*最初入库时间*/ ,Etl_First_Dt /*最初入库时间*/
,Etl_Job /*作业名称*/ ,Etl_Job /*作业名称*/
@ -759,13 +448,17 @@ FROM t01_crm_opportunity_agi_CUR_D)
,Etl_Tx_Dt /*作业运行时间*/ ,Etl_Tx_Dt /*作业运行时间*/
,Src_Sysname /*来源系统*/ ,Src_Sysname /*来源系统*/
,Src_Table /*来源表*/ ,Src_Table /*来源表*/
,parent_account_name /*父账号名称*/
,parent_contact_name /*父联系人名称*/ )
,product_name /*产品名称*/
,product_class /*产品类别*/
)
SELECT SELECT
P1.tek_opportunity_id /*泰克机会编号*/ P1.opportunity_name /*机会名称*/
,P1.tektronix_apname /*tek_tektronixapname*/
,P1.estimated_close_time /*预期关闭时间*/
,P1.actual_close_time /*实际关闭日期*/
,P1.parent_account_name /*父账号名称*/
,P1.parent_contact_name /*父联系人名称*/
,P1.product_name /*产品名称*/
,P1.product_class /*产品类别*/
,P1.currency_name /*交易币种*/ ,P1.currency_name /*交易币种*/
,P1.uint_price /*单价*/ ,P1.uint_price /*单价*/
,P1.discount_percent /*折扣率*/ ,P1.discount_percent /*折扣率*/
@ -776,7 +469,6 @@ SELECT
,P1.sales_funnel_stage_id /*销售漏斗层级编号*/ ,P1.sales_funnel_stage_id /*销售漏斗层级编号*/
,P1.status /*状况*/ ,P1.status /*状况*/
,P1.state /*状态*/ ,P1.state /*状态*/
,P1.opportunity_name /*机会名称*/
,P1.region /*区域*/ ,P1.region /*区域*/
,P1.acount_manager /*账号经理*/ ,P1.acount_manager /*账号经理*/
,P1.territory_id /*领域编号*/ ,P1.territory_id /*领域编号*/
@ -787,7 +479,6 @@ SELECT
,P1.create_person /*创建人*/ ,P1.create_person /*创建人*/
,P1.pipline_last_update /*pipline最后更新时间*/ ,P1.pipline_last_update /*pipline最后更新时间*/
,P1.status_last_update /*状况最后更新时间*/ ,P1.status_last_update /*状况最后更新时间*/
,P1.tektronix_apname /*tek_tektronixapname*/
,P1.channel_id /*渠道编号*/ ,P1.channel_id /*渠道编号*/
,P1.purchase_method /*采购方式*/ ,P1.purchase_method /*采购方式*/
,P1.campaign_name /*活动名称*/ ,P1.campaign_name /*活动名称*/
@ -798,7 +489,6 @@ SELECT
,P1.competitive_status /*竞争状态*/ ,P1.competitive_status /*竞争状态*/
,P1.important_opportunity_ind /*重要机会标志*/ ,P1.important_opportunity_ind /*重要机会标志*/
,P1.application_name /*应用名称*/ ,P1.application_name /*应用名称*/
,P1.estimated_close_time /*预期关闭时间*/
,P1.opp_industry /*行业opp)*/ ,P1.opp_industry /*行业opp)*/
,P1.tag_list /*标签列表*/ ,P1.tag_list /*标签列表*/
,P1.discount_amount /*折扣金额*/ ,P1.discount_amount /*折扣金额*/
@ -809,10 +499,8 @@ SELECT
,P1.account_number /*账号编号*/ ,P1.account_number /*账号编号*/
,P1.marketing_program_type /*市场项目类型*/ ,P1.marketing_program_type /*市场项目类型*/
,P1.lead_number /*线索编号*/ ,P1.lead_number /*线索编号*/
,P1.actual_close_time /*实际关闭日期*/
,P1.crm_contact_number /*联系人编号*/ ,P1.crm_contact_number /*联系人编号*/
,P1.Scd_Start_Dt /*开始时间*/ ,P1.tek_opportunity_id /*泰克机会编号*/
,P1.Scd_End_Dt /*结束时间*/
,P1.Etl_Batch_No /*作业批次号*/ ,P1.Etl_Batch_No /*作业批次号*/
,P1.Etl_First_Dt /*最初入库时间*/ ,P1.Etl_First_Dt /*最初入库时间*/
,P1.Etl_Job /*作业名称*/ ,P1.Etl_Job /*作业名称*/
@ -820,17 +508,69 @@ SELECT
,P1.Etl_Tx_Dt /*作业运行时间*/ ,P1.Etl_Tx_Dt /*作业运行时间*/
,P1.Src_Sysname /*来源系统*/ ,P1.Src_Sysname /*来源系统*/
,P1.Src_Table /*来源表*/ ,P1.Src_Table /*来源表*/
,P1.parent_account_name /*父账号名称*/
,P1.parent_contact_name /*父联系人名称*/
,P1.product_name /*产品名称*/
,P1.product_class /*产品类别*/
FROM t01_crm_opportunity_agi_INS P1 FROM t01_crm_opportunity_agi_INS P1
; ON CONFLICT ( tek_opportunity_id)
DO UPDATE SET
tek_opportunity_id=excluded.tek_opportunity_id
,opportunity_name=excluded.opportunity_name
,tektronix_apname=excluded.tektronix_apname
,estimated_close_time=excluded.estimated_close_time
,actual_close_time=excluded.actual_close_time
,parent_account_name=excluded.parent_account_name
,parent_contact_name=excluded.parent_contact_name
,product_name=excluded.product_name
,product_class=excluded.product_class
,currency_name=excluded.currency_name
,uint_price=excluded.uint_price
,discount_percent=excluded.discount_percent
,discount_amount_base=excluded.discount_amount_base
,base_amount=excluded.base_amount
,total_amount=excluded.total_amount
,sales_funnel_stage=excluded.sales_funnel_stage
,sales_funnel_stage_id=excluded.sales_funnel_stage_id
,status=excluded.status
,state=excluded.state
,region=excluded.region
,acount_manager=excluded.acount_manager
,territory_id=excluded.territory_id
,forecast_opp_ind=excluded.forecast_opp_ind
,risk_ind=excluded.risk_ind
,opportunity_age=excluded.opportunity_age
,create_time=excluded.create_time
,create_person=excluded.create_person
,pipline_last_update=excluded.pipline_last_update
,status_last_update=excluded.status_last_update
,channel_id=excluded.channel_id
,purchase_method=excluded.purchase_method
,campaign_name=excluded.campaign_name
,web_medium=excluded.web_medium
,web_source=excluded.web_source
,customer_app=excluded.customer_app
,vertical_segment=excluded.vertical_segment
,competitive_status=excluded.competitive_status
,important_opportunity_ind=excluded.important_opportunity_ind
,application_name=excluded.application_name
,opp_industry=excluded.opp_industry
,tag_list=excluded.tag_list
,discount_amount=excluded.discount_amount
,area_id=excluded.area_id
,branch_id=excluded.branch_id
,extension_id=excluded.extension_id
,legal_company_name=excluded.legal_company_name
,account_number=excluded.account_number
,marketing_program_type=excluded.marketing_program_type
,lead_number=excluded.lead_number
,crm_contact_number=excluded.crm_contact_number
,Etl_Batch_No=excluded.Etl_Batch_No
,Etl_First_Dt=excluded.Etl_First_Dt
,Etl_Job=excluded.Etl_Job
,Etl_Proc_Dt=excluded.Etl_Proc_Dt
,Etl_Tx_Dt=excluded.Etl_Tx_Dt
,Src_Sysname=excluded.Src_Sysname
,Src_Table=excluded.Src_Table
;
; ;
/*****程序结束退出 */ /*****程序结束退出 */
\q \q