diff --git a/dev/workflow/TK_Cust/iirtnc_data/IIRTNC数据刷新/wf_dag_iirtnc_data.py b/dev/workflow/TK_Cust/iirtnc_data/IIRTNC数据刷新/wf_dag_iirtnc_data.py new file mode 100644 index 0000000..4100c27 --- /dev/null +++ b/dev/workflow/TK_Cust/iirtnc_data/IIRTNC数据刷新/wf_dag_iirtnc_data.py @@ -0,0 +1,146 @@ +#!/usr/bin/python +# -*- encoding=utf-8 -*- +from airflow import DAG +from datetime import datetime, timedelta +from airflow.contrib.hooks.ssh_hook import SSHHook +from airflow.contrib.operators.ssh_operator import SSHOperator +from airflow.sensors.external_task_sensor import ExternalTaskSensor +import json + +from airflow.operators.trigger_dagrun import TriggerDagRunOperator +from airflow.operators.email_operator import EmailOperator +from airflow.utils.trigger_rule import TriggerRule + + +sshHook = SSHHook(ssh_conn_id ='ssh_air') +default_args = { +'owner': 'tek_newsletter@163.com', +'email_on_failure': True, +'email_on_retry':True, +'start_date': datetime(2024, 1, 1), +'depends_on_past': False, +'retries': 6, +'retry_delay': timedelta(minutes=10), +} + +dag = DAG('wf_dag_iirtnc_data', default_args=default_args, +schedule_interval="0 20 * * 5", +catchup=False, +dagrun_timeout=timedelta(minutes=600), +max_active_runs=3, +tags=['64cbd1bbced14209b5e3a879f89e8ab1','TK_Cust','IIRTNC数据刷新'] +) + +task_failed = EmailOperator ( + dag=dag, + trigger_rule=TriggerRule.ONE_FAILED, + task_id="task_failed", + to=["tek_newsletter@163.com"], + cc=[""], + subject="iirtnc_data_failed", + html_content='

您好,iirtnc_data作业失败,请及时处理"

') + + +dysql_iirtnc_cust_vis = SSHOperator( +ssh_hook=sshHook, +task_id='dysql_iirtnc_cust_vis', +command='/data/airflow/etl/MART/run_psql.sh {{ ds_nodash }} {{params.my_param}} ', +params={'my_param':"dysql_iirtnc_cust_vis"}, +depends_on_past=False, +retries=3, +dag=dag) + + + + +dysql_white_list = SSHOperator( +ssh_hook=sshHook, +task_id='dysql_white_list', +command='/data/airflow/etl/COM/run_psql.sh {{ ds_nodash }} {{params.my_param}} ', +params={'my_param':"dysql_white_list"}, +depends_on_past=False, +retries=3, +dag=dag) + + + + +dysql_iirtnc_leads = SSHOperator( +ssh_hook=sshHook, +task_id='dysql_iirtnc_leads', +command='/data/airflow/etl/MART/run_psql.sh {{ ds_nodash }} {{params.my_param}} ', +params={'my_param':"dysql_iirtnc_leads"}, +depends_on_past=False, +retries=3, +dag=dag) + + + + +dysql_iirtnc_order = SSHOperator( +ssh_hook=sshHook, +task_id='dysql_iirtnc_order', +command='/data/airflow/etl/MART/run_psql.sh {{ ds_nodash }} {{params.my_param}} ', +params={'my_param':"dysql_iirtnc_order"}, +depends_on_past=False, +retries=3, +dag=dag) + + + + +dysql_iirtnc_pos = SSHOperator( +ssh_hook=sshHook, +task_id='dysql_iirtnc_pos', +command='/data/airflow/etl/MART/run_psql.sh {{ ds_nodash }} {{params.my_param}} ', +params={'my_param':"dysql_iirtnc_pos"}, +depends_on_past=False, +retries=3, +dag=dag) + + + + +dysql_iirtnc_new_funnel = SSHOperator( +ssh_hook=sshHook, +task_id='dysql_iirtnc_new_funnel', +command='/data/airflow/etl/MART/run_psql.sh {{ ds_nodash }} {{params.my_param}} ', +params={'my_param':"dysql_iirtnc_new_funnel"}, +depends_on_past=False, +retries=3, +dag=dag) + + + + +dysql_iirtnc_demo = SSHOperator( +ssh_hook=sshHook, +task_id='dysql_iirtnc_demo', +command='/data/airflow/etl/MART/run_psql.sh {{ ds_nodash }} {{params.my_param}} ', +params={'my_param':"dysql_iirtnc_demo"}, +depends_on_past=False, +retries=3, +dag=dag) + + + + +dysql_iirtnc_funnel_won = SSHOperator( +ssh_hook=sshHook, +task_id='dysql_iirtnc_funnel_won', +command='/data/airflow/etl/MART/run_psql.sh {{ ds_nodash }} {{params.my_param}} ', +params={'my_param':"dysql_iirtnc_funnel_won"}, +depends_on_past=False, +retries=3, +dag=dag) + + + +dysql_white_list >> dysql_iirtnc_new_funnel +dysql_white_list >> dysql_iirtnc_pos +dysql_white_list >> dysql_iirtnc_leads +dysql_white_list >> dysql_iirtnc_order +dysql_white_list >> dysql_iirtnc_funnel_won +dysql_white_list >> dysql_iirtnc_demo +dysql_white_list >> dysql_iirtnc_cust_vis +dysql_iirtnc_cust_vis >> task_failed diff --git a/dev/workflow/TK_Cust/iirtnc_data/iirtnc_cust_vis/dysql_iirtnc_cust_vis.sql b/dev/workflow/TK_Cust/iirtnc_data/iirtnc_cust_vis/dysql_iirtnc_cust_vis.sql new file mode 100644 index 0000000..897a106 --- /dev/null +++ b/dev/workflow/TK_Cust/iirtnc_data/iirtnc_cust_vis/dysql_iirtnc_cust_vis.sql @@ -0,0 +1,95 @@ +/********************************************************************************************/ +/*******Main Section**************************************************************************/ +\set ON_ERROR_STOP on +\set AUTOCOMMIT on +\timing on + +delete from p60_mart.iirtnc_dashboard_data +where ind_cd='Customer Visibility' and date_id>=current_date; +; + +INSERT INTO p60_mart.iirtnc_dashboard_data +(date_id,year_id, quarter_id, tk_ap, month_id, week_id,industry,sub_industry,demo_type, market_area, ind_cd, value,value2,application +, src_sysname, src_table, etl_job, etl_first_dt, etl_proc_dt, etl_tx_dt, etl_batch_no) +select +as_of_date, +tk_year, +tk_quarter, +tk_ap, +tk_month, +tk_ap_week, +industry, +sub_industry, +demo_type, +region region_name, +'Customer Visibility', +(count(distinct p1.company)-1), +count(distinct p1.account_name), +sub_application, +'com' src_sysname, +'white_list' src_table, +'tk_customer_visibility_t' etl_job, +current_timestamp(0) etl_first_dt, +current_timestamp(0) etl_proc_dt, +'2026-01-09' etl_tx_dt, +'0' etl_batch_no +from ( +select distinct p2.tk_week_end_date as_of_date,p2.tk_year,p2.tk_ap,p2.tk_quarter,p2.tk_ap_week,p2.tk_month,coalesce(p5.sub_application,'') sub_application,p5.industry,p5.sub_industry,p5.region,'' demo_type,p5.account_name,coalesce(p1.company,'') company from p30_common.cust_company_info p1 +right join p30_common.white_list p5 +on p1.company =p5.account_name +left join ( +select p1.tk_ap,p1.standard_dt,p1.tk_year,p1.tk_ap_week,p1.tk_month,p1.tk_quarter,max(p2.standard_dt) tk_week_end_date from p31_dim.d_date p1 +left join p31_dim.d_date p2 +on p1.tk_year=p2.tk_year +and p1.tk_ap_week=p2.tk_ap_week +group by 1,2,3,4,5,6) p2 +on p5.as_of_date =p2.standard_dt +)p1 +where as_of_date>=current_date +group by 1,2,3,4,5,6,7,8,9,10,14; + +delete from p60_mart.iirtnc_dashboard_data_detail +where ind_cd='Customer Visibility' and date_id>=current_date; +INSERT INTO p60_mart.iirtnc_dashboard_data_detail +(date_id,year_id, quarter_id, tk_ap, month_id, week_id,industry,sub_industry,demo_type, market_area, ind_cd, value,value2,application ,account_name,account_manager +, src_sysname, src_table, etl_job, etl_first_dt, etl_proc_dt, etl_tx_dt, etl_batch_no) +select +as_of_date, +tk_year, +tk_quarter, +tk_ap, +tk_month, +tk_ap_week, +industry, +sub_industry, +demo_type, +region region_name, +'Customer Visibility', +(count(distinct p1.company)-1), +count(distinct p1.account_name), +sub_application, +account_name, +account_manager, +'com' src_sysname, +'crm_opportunity_weekly' src_table, +'tk_demo_t' etl_job, +current_timestamp(0) etl_first_dt, +current_timestamp(0) etl_proc_dt, +'2025-01-01' etl_tx_dt, +'0' etl_batch_no +from (select distinct p2.tk_week_end_date as_of_date,p2.tk_year,p2.tk_ap,p2.tk_quarter,p2.tk_ap_week,p2.tk_month,coalesce(p5.sub_application,'') sub_application,p5.industry,p5.sub_industry,p5.region,'' demo_type,p5.account_name,coalesce(p1.company,'') company,coalesce(p6.salers,'') account_manager from p30_common.cust_company_info p1 +right join p30_common.white_list p5 +on p1.company =p5.account_name +left join ( +select p1.tk_ap,p1.standard_dt,p1.tk_year,p1.tk_ap_week,p1.tk_month,p1.tk_quarter,max(p2.standard_dt) tk_week_end_date from p31_dim.d_date p1 +left join p31_dim.d_date p2 +on p1.tk_year=p2.tk_year +and p1.tk_ap_week=p2.tk_ap_week +group by 1,2,3,4,5,6) p2 +on p5.as_of_date =p2.standard_dt +left join p30_common.d_account_info p6 +on p5.account_name=p6.name)p1 +where as_of_date>=current_date +group by 1,2,3,4,5,6,7,8,9,10,15,14,16; + +\q \ No newline at end of file diff --git a/dev/workflow/TK_Cust/iirtnc_data/iirtnc_demo/dysql_iirtnc_demo.sql b/dev/workflow/TK_Cust/iirtnc_data/iirtnc_demo/dysql_iirtnc_demo.sql new file mode 100644 index 0000000..d0eb1d7 --- /dev/null +++ b/dev/workflow/TK_Cust/iirtnc_data/iirtnc_demo/dysql_iirtnc_demo.sql @@ -0,0 +1,148 @@ +/********************************************************************************************/ +/*******Main Section**************************************************************************/ +\set ON_ERROR_STOP on +\set AUTOCOMMIT on +\timing on + + +drop table if exists tk_demo_t; +create temporary table tk_demo_t as +select 'JDY' data_source,coalesce(p3.sales_teams,assign_id) account_manager,p1.visit_time::date visit_date,p2.account_name,'' dealer_name,'Onsite' demo_type,'' market_area from p20_pdm.t01_jdy_daily_visit p1 +left join p20_pdm.t01_jdy_account p2 +on case when p1.account <>'' then p1.account else p1.account2 end +=case when p2.account_nick_name <> '' then p2.account_nick_name else p2.account_name end +inner join p31_dim.d_sales_mapping p3 +on p1.assign_id=p3.jdy_wechat +where p2.account_nick_name is not null +union all +select 'Partner',coalesce(p3.sales_teams,''),insert_date,customer_name ,dealer_name,case when contact_ways in ('电话沟通','微信联络') then 'Remote' else 'Onsite' end demo_type,case when p1.area in ('华南','华东') then 'SE' when p1.area in ('华北') then 'NW' else p1.area end area +from p20_pdm.t01_partner_visit p1 +left join p20_pdm.t00_china_city_pnum_ai p5 +on p1.contact_province=p5.prov_name +and p5.city_name like substring(p1.contact_city,1,2)||'%' +and coalesce(substring(p5.district,1,2),'')=substring(p1.contact_district,1,2) +left join p31_dim.d_sales_mapping p3 +on p5.saler_name=p3.sales_dw +; + +delete from p60_mart.iirtnc_dashboard_data +where ind_cd='Demo' and date_id>='2025-01-01'; + +INSERT INTO p60_mart.iirtnc_dashboard_data +(date_id,year_id, quarter_id, tk_ap, month_id, week_id,industry,sub_industry,demo_type, market_area, ind_cd, value,application,type2 +, src_sysname, src_table, etl_job, etl_first_dt, etl_proc_dt, etl_tx_dt, etl_batch_no) +select +as_of_date, +tk_year, +tk_quarter, +tk_ap, +tk_month, +tk_ap_week, +industry, +sub_industry, +demo_type, +market_area region_name, +'Demo', +count(*), +sub_application, +data_source, +'com' src_sysname, +'crm_opportunity_weekly' src_table, +'tk_demo_t' etl_job, +current_timestamp(0) etl_first_dt, +current_timestamp(0) etl_proc_dt, +'2025-01-01' etl_tx_dt, +'0' etl_batch_no +from (select p2.tk_week_end_date as_of_date,p2.tk_year,p2.tk_ap,p2.tk_quarter,p2.tk_ap_week,p2.tk_month,p5.industry,coalesce(p5.sub_application,'') sub_application,p5.sub_industry,p1.demo_type,p1.account_name,p1.market_area,p1.data_source from tk_demo_t p1 +left join ( +select p1.tk_ap,p1.standard_dt,p1.tk_year,p1.tk_ap_week,p1.tk_month,p1.tk_quarter,max(p2.standard_dt) tk_week_end_date from p31_dim.d_date p1 +left join p31_dim.d_date p2 +on p1.tk_year=p2.tk_year +and p1.tk_ap_week=p2.tk_ap_week +group by 1,2,3,4,5,6) p2 +on p1.visit_date =p2.standard_dt +inner join p30_common.white_list p5 +--on p2.tk_week_end_date=p5.as_of_date::date +on p5.as_of_date::date='2026-01-09' +and p1.account_name like '%'||p5.keys||'%')p1 +where as_of_date>='2025-01-01' +group by 1,2,3,4,5,6,7,8,9,10,13,14; + +delete from p60_mart.iirtnc_dashboard_data_detail +where ind_cd='Demo' and date_id>='2025-01-01' +; +INSERT INTO p60_mart.iirtnc_dashboard_data_detail +(date_id,year_id, quarter_id, tk_ap, month_id, week_id,industry,sub_industry,demo_type, market_area, ind_cd, value,application, account_name,account_manager,type1,type2 +,white_list_ind, src_sysname, src_table, etl_job, etl_first_dt, etl_proc_dt, etl_tx_dt, etl_batch_no) +select +as_of_date, +tk_year, +tk_quarter, +tk_ap, +tk_month, +tk_ap_week, +industry, +sub_industry, +demo_type, +market_area region_name, +'Demo', +count(*), +sub_application, +account_name, +account_manager, +dealer_name, +data_source, +white_list_ind, +'com' src_sysname, +'crm_opportunity_weekly' src_table, +'tk_demo_t' etl_job, +current_timestamp(0) etl_first_dt, +current_timestamp(0) etl_proc_dt, +'2025-01-01' etl_tx_dt, +'0' etl_batch_no +from (select p2.tk_week_end_date as_of_date,p2.tk_year,p2.tk_ap,p2.tk_quarter,p2.tk_ap_week,p2.tk_month,p5.industry,coalesce(p5.sub_application,'') sub_application,p1.dealer_name,p5.sub_industry,p1.demo_type,p1.account_name,p1.market_area,p1.account_manager,p1.data_source,case when p5.account_name is not null then 1 else 0 end white_list_ind from tk_demo_t p1 +left join ( +select p1.tk_ap,p1.standard_dt,p1.tk_year,p1.tk_ap_week,p1.tk_month,p1.tk_quarter,max(p2.standard_dt) tk_week_end_date from p31_dim.d_date p1 +left join p31_dim.d_date p2 +on p1.tk_year=p2.tk_year +and p1.tk_ap_week=p2.tk_ap_week +group by 1,2,3,4,5,6) p2 +on p1.visit_date =p2.standard_dt +left join p30_common.white_list p5 +--on p2.tk_week_end_date=p5.as_of_date::date +on p5.as_of_date::date='2026-01-09' +and p1.account_name like '%'||p5.keys||'%' +)p1 +where as_of_date>='2025-01-01' +group by 1,2,3,4,5,6,7,8,9,10,13,14,15,16,17,18; + +delete from p60_mart.iirtnc_demo_detail; +insert into p60_mart.iirtnc_demo_detail +SELECT insert_date,'Partner', id, visitor, dealer_name, customer_name, intention_product,coalesce(p3.sales_teams,'') account_manager, contact_ways,case when p1.area = '华南' then 'SE' else 'NW' end market_area, p2.industry, p2.sub_industry, 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,case when p2.account_name is not null then 1 else 0 end white_list_ind,p2.sub_application +FROM p20_pdm.t01_partner_visit p1 +left join p30_common.white_list p2 +--on p2.tk_week_end_date=p5.as_of_date::date +on p2.as_of_date::date='2026-01-09' +and p1.dealer_name like '%'||p2.keys||'%' +left join p20_pdm.t00_china_city_pnum_ai p5 +on p1.contact_province=p5.prov_name +and p5.city_name like substring(p1.contact_city,1,2)||'%' +and coalesce(substring(p5.district,1,2),'')=substring(p1.contact_district,1,2) +left join p31_dim.d_sales_mapping p3 +on p5.saler_name=p3.sales_dw +; + +insert into p60_mart.iirtnc_demo_detail +SELECT visit_time,'JDY', id, contact_name, '', account,product_family1 intention_product,coalesce(p3.sales_teams,p1.assign_id) account_manager,'' contact_ways,'' market_area, p2.industry, p2.sub_industry, 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,case when p2.account_name is not null then 1 else 0 end white_list_ind,p2.sub_application +FROM p20_pdm.t01_jdy_daily_visit p1 +left join p30_common.white_list p2 +--on p2.tk_week_end_date=p5.as_of_date::date +on p2.as_of_date::date='2026-01-09' +and p1.account like '%'||p2.keys||'%' +inner join p31_dim.d_sales_mapping p3 +on p1.assign_id=p3.jdy_wechat + +; + + +\q \ No newline at end of file diff --git a/dev/workflow/TK_Cust/iirtnc_data/iirtnc_funnel_won/dysql_iirtnc_funnel_won.sql b/dev/workflow/TK_Cust/iirtnc_data/iirtnc_funnel_won/dysql_iirtnc_funnel_won.sql new file mode 100644 index 0000000..d65cb7b --- /dev/null +++ b/dev/workflow/TK_Cust/iirtnc_data/iirtnc_funnel_won/dysql_iirtnc_funnel_won.sql @@ -0,0 +1,169 @@ +/********************************************************************************************/ +/*******Main Section**************************************************************************/ +\set ON_ERROR_STOP on +\set AUTOCOMMIT on +\timing on + +drop table if exists tk_funnel_won_t; +create temporary table tk_funnel_won_t +as +select distinct p1.record_id ,'Partner' source_channel,coalesce(p3.sales_teams,p1.check_admin_name) account_manager, complete_date::date ,case when region_name in ('华南','华东') then 'SE' when region_name in ('华北') then 'NW' else region_name end region_name + ,customer_name ,rp_total_price*p2.target_currency_value /p2.currency_value as total_amt from p20_pdm.t01_partner_report p1 + left join p31_dim.d_sales_mapping p3 + on p1.check_admin_name=p3.sales_one_site +left join p31_dim.d_currency p2 +on p2.currency_cd ='CNY' +and p2.target_currency_cd ='USD' +where progress ='100%' and complete_date >='2025-01-01' +union all + +select distinct p1.tek_opportunity_id ,'CRM' source_channel ,coalesce(p2.sales_teams,p1.acount_manager) account_manager,p1.actual_close_time::date,case when upper(p1.area_id) like '%SOUTH%' then 'SE' when upper(p1.area_id) like '%NORTH%' then 'NW' else p1.area_id end area_id +,p1.parent_account_name account_name, +case when p1.discount_amount=0 and p1.channel_id='Distribution' then p1.total_amount*0.55/p4.currency_value*p4.target_currency_value else p1.total_amount/p4.currency_value*p4.target_currency_value end total_amount +from p20_pdm.t01_crm_opportunity p1 +left join p31_dim.d_sales_mapping p2 +on p1.acount_manager=p2.sales_teams +left join p31_dim.d_currency p4 +on p1.currency_name=p4.currency_name +and p4.target_currency_cd ='USD' +where p1.state in ('Won','赢单') +--and (p1.product_class like '2025%' or p1.product_class like '2035%' or p1.product_class like '2610%' or p1.product_class like '2026%' or p1.product_class like '2036%') +and p1.actual_close_time >= '2025-01-01'; + +delete from p60_mart.iirtnc_dashboard_data +where ind_cd='Funnel Won' and date_id>='2025-01-01' +; +INSERT INTO p60_mart.iirtnc_dashboard_data +(date_id,year_id, quarter_id, tk_ap, month_id, week_id,industry,sub_industry,demo_type, market_area, ind_cd, value,application,type1 +, src_sysname, src_table, etl_job, etl_first_dt, etl_proc_dt, etl_tx_dt, etl_batch_no) +select +as_of_date, +tk_year, +tk_quarter, +tk_ap, +tk_month, +tk_ap_week, +industry, +sub_industry, +'' demo_type, +region_name, +'Funnel Won', +sum(total_amt), +sub_application, +source_channel, +'com' src_sysname, +'crm_opportunity_weekly' src_table, +'tk_funnel_won' etl_job, +current_timestamp(0) etl_first_dt, +current_timestamp(0) etl_proc_dt, +'2026-01-09' etl_tx_dt, +'0' etl_batch_no +from (select distinct on (p1.record_id) p2.tk_week_end_date as_of_date,p2.tk_year,p2.tk_ap,p2.tk_quarter,p1.source_channel,p2.tk_ap_week,p2.tk_month,coalesce(p5.sub_application,'') sub_application,p5.industry,p5.sub_industry,p1.region_name,p1.customer_name,p1.total_amt from tk_funnel_won_t p1 +left join ( +select p1.tk_ap,p1.standard_dt,p1.tk_year,p1.tk_ap_week,p1.tk_month,p1.tk_quarter,max(p2.standard_dt) tk_week_end_date from p31_dim.d_date p1 +left join p31_dim.d_date p2 +on p1.tk_year=p2.tk_year +and p1.tk_ap_week=p2.tk_ap_week +group by 1,2,3,4,5,6) p2 +on p1.complete_date =p2.standard_dt +inner join p30_common.white_list p5 +--on p2.tk_week_end_date=p5.as_of_date::date +on p5.as_of_date::date='2026-01-09' +and p1.customer_name like '%'||p5.keys||'%')p1 +where as_of_date>='2025-01-01' +group by 1,2,3,4,5,6,7,8,9,10,13,14; + +delete from p60_mart.iirtnc_dashboard_data_detail +where ind_cd='Funnel Won' and date_id>='2025-01-01'; +INSERT INTO p60_mart.iirtnc_dashboard_data_detail +(date_id,year_id, quarter_id, tk_ap, month_id, week_id,industry,sub_industry,demo_type, market_area, ind_cd, value,application,type1, account_name,account_manager +,white_list_ind, src_sysname, src_table, etl_job, etl_first_dt, etl_proc_dt, etl_tx_dt, etl_batch_no) +select +as_of_date, +tk_year, +tk_quarter, +tk_ap, +tk_month, +tk_ap_week, +industry, +sub_industry, +'' demo_type, +region_name, +'Funnel Won', +sum(total_amt), +sub_application, +source_channel, +account_name, +account_manager, +white_list_ind, +'com' src_sysname, +'crm_opportunity_weekly' src_table, +'tk_funnel_won' etl_job, +current_timestamp(0) etl_first_dt, +current_timestamp(0) etl_proc_dt, +'2026-01-09' etl_tx_dt, +'0' etl_batch_no +from (select distinct on (p1.record_id) p2.tk_week_end_date as_of_date,p2.tk_year,p2.tk_ap,p2.tk_quarter,p1.source_channel,p2.tk_ap_week,p2.tk_month,coalesce(p5.sub_application,'') sub_application,p5.industry,p5.sub_industry,p1.region_name,p1.customer_name account_name,p1.total_amt,p1.account_manager +,case when p5.account_name is not null then 1 else 0 end white_list_ind from tk_funnel_won_t p1 +left join ( +select p1.tk_ap,p1.standard_dt,p1.tk_year,p1.tk_ap_week,p1.tk_month,p1.tk_quarter,max(p2.standard_dt) tk_week_end_date from p31_dim.d_date p1 +left join p31_dim.d_date p2 +on p1.tk_year=p2.tk_year +and p1.tk_ap_week=p2.tk_ap_week +group by 1,2,3,4,5,6) p2 +on p1.complete_date =p2.standard_dt +left join p30_common.white_list p5 +--on p2.tk_week_end_date=p5.as_of_date::date +on p5.as_of_date::date='2026-01-09' +and p1.customer_name like '%'||p5.keys||'%')p1 +where as_of_date>='2025-01-01' +group by 1,2,3,4,5,6,7,8,9,10,13,14,15,16,17; + + +delete from p60_mart.iirtnc_funnel_won_detail; +insert into p60_mart.iirtnc_funnel_won_detail +SELECT complete_date::date,'Partner' source_channel,record_id, report_num, dealer_name +, coalesce(p3.sales_teams,p1.apply_admin_name), customer_name +, total_price*p2.target_currency_value /p2.currency_value total_price +, series_name, product_type, product_sku_type, product_name, skus +,list_price*p2.target_currency_value /p2.currency_value list_price, count count_qty +,rp_total_price*p2.target_currency_value /p2.currency_value rp_total_price +,case when p5.account_name is not null then 1 else 0 end white_list_ind,coalesce(p5.sub_application,'') sub_application,coalesce(p5.industry,'') industry,coalesce(p5.sub_industry,'') sub_industry +FROM p20_pdm.t01_partner_report p1 +left join p31_dim.d_sales_mapping p3 + on p1.check_admin_name=p3.sales_one_site +left join p31_dim.d_currency p2 +on p2.currency_cd ='CNY' +and p2.target_currency_cd ='USD' +left join p30_common.white_list p5 +--on p2.tk_week_end_date=p5.as_of_date::date +on p5.as_of_date::date='2026-01-09' +and p1.customer_name like '%'||p5.keys||'%' +where progress ='100%' and complete_date >='2025-01-01' +union all + + +SELECT actual_close_time,'CRM' source_channel ,tek_opportunity_id, opportunity_name,parent_account_name +,coalesce(p2.sales_teams,p1.acount_manager) ,parent_account_name +,p1.base_amount/p4.currency_value*p4.target_currency_value base_amount +,split_part(product_class, ':', 2) product_class ,split_part(product_class, ':', 1),'' ,product_name ,'' sku +,p1.base_amount/p4.currency_value*p4.target_currency_value base_amount,case when uint_price =0 then 1 else base_amount/uint_price end count_qty +,p1.total_amount/p4.currency_value*p4.target_currency_value total_amount +,case when p5.account_name is not null then 1 else 0 end white_list_ind,coalesce(p5.sub_application,'') sub_application,coalesce(p5.industry,'') industry,coalesce(p5.sub_industry,'') sub_industry +FROM p20_pdm.t01_crm_opportunity p1 +left join p31_dim.d_sales_mapping p2 +on p1.acount_manager=p2.sales_teams +left join p20_pdm.t01_crm_contact p3 +on p1.crm_contact_number =p3.crm_contact_account +left join p31_dim.d_currency p4 +on p1.currency_name=p4.currency_name +and p4.target_currency_cd ='USD' +left join p30_common.white_list p5 +--on p2.tk_week_end_date=p5.as_of_date::date +on p5.as_of_date::date='2026-01-09' +and p1.parent_account_name like '%'||p5.keys||'%' +where p1.state in ('Won','赢单') +and (p1.product_class like '2025%' or p1.product_class like '2035%' or p1.product_class like '2610%' or p1.product_class like '2036%' or p1.product_class like '2026%' ); + + +\q \ No newline at end of file diff --git a/dev/workflow/TK_Cust/iirtnc_data/iirtnc_leads/dysql_iirtnc_leads.sql b/dev/workflow/TK_Cust/iirtnc_data/iirtnc_leads/dysql_iirtnc_leads.sql new file mode 100644 index 0000000..59393dc --- /dev/null +++ b/dev/workflow/TK_Cust/iirtnc_data/iirtnc_leads/dysql_iirtnc_leads.sql @@ -0,0 +1,124 @@ +/********************************************************************************************/ +/*******Main Section**************************************************************************/ +\set ON_ERROR_STOP on +\set AUTOCOMMIT on +\timing on + +drop table if exists tk_raw_t; +create temporary table tk_raw_t +as +select company_name account_name,create_time::date as_of_date,coalesce(p2.sales_teams,p1.account_manager) account_manager,lead_number ,case when tek_assigntopartnercompanyidname <>'' then 1 else 0 end assign_partner,case when channel_type='Distribution' then 'Distribution' else 'TSM' end channel_type,1 leads_qty +from p20_pdm.t01_crm_raw_leads p1 +left join p31_dim.d_sales_mapping p2 +on p1.account_manager=p2.sales_teams +where qualification_group in ('Sales Qualification','PIAM Qualification','Partner Qualification'); +delete from p60_mart.iirtnc_dashboard_data +where ind_cd='Leads' +and date_id>='2025-01-01' +; +INSERT INTO p60_mart.iirtnc_dashboard_data +(date_id,year_id, quarter_id, tk_ap, month_id, week_id,industry,sub_industry,demo_type, market_area, ind_cd, value,application,value2,type1 +, src_sysname, src_table, etl_job, etl_first_dt, etl_proc_dt, etl_tx_dt, etl_batch_no) +select +as_of_date, +tk_year, +tk_quarter, +tk_ap, +tk_month, +tk_ap_week, +industry, +sub_industry, +'' demo_type, +area_id, +'Leads', +sum(assign_partner), +sub_application, +sum(leads_qty), +channel_type, +'com' src_sysname, +'crm_opportunity_weekly' src_table, +'tk_pos_t' etl_job, +current_timestamp(0) etl_first_dt, +current_timestamp(0) etl_proc_dt, +'2025-01-01' etl_tx_dt, +'0' etl_batch_no +from (select distinct on (p1.lead_number) p2.tk_week_end_date as_of_date,p2.tk_year,p1.channel_type,p5.sub_application,p2.tk_ap,p2.tk_quarter,p2.tk_ap_week,p2.tk_month,p5.industry,p5.sub_industry,p5.region area_id,p1.account_name,p1.assign_partner,p1.leads_qty from tk_raw_t p1 +left join ( +select p1.tk_ap,p1.standard_dt,p1.tk_year,p1.tk_ap_week,p1.tk_month,p1.tk_quarter,max(p2.standard_dt) tk_week_end_date from p31_dim.d_date p1 +left join p31_dim.d_date p2 +on p1.tk_year=p2.tk_year +and p1.tk_ap_week=p2.tk_ap_week +group by 1,2,3,4,5,6) p2 +on p1.as_of_date =p2.standard_dt +left join p30_common.white_list p5 +--on p2.tk_week_end_date=p5.as_of_date::date +on p5.as_of_date::date='2026-01-09' +and p1.account_name like '%'||p5.keys||'%')p1 +where as_of_date>='2025-01-01' +group by 1,2,3,4,5,6,7,8,9,10,13,15; + +delete from p60_mart.iirtnc_dashboard_data_detail +where ind_cd='Leads' and date_id>='2025-01-01' +; +INSERT INTO p60_mart.iirtnc_dashboard_data_detail +(date_id,year_id, quarter_id, tk_ap, month_id, week_id,industry,sub_industry,demo_type, market_area, ind_cd, value,application,value2,type1, account_name,account_manager +,white_list_ind, src_sysname, src_table, etl_job, etl_first_dt, etl_proc_dt, etl_tx_dt, etl_batch_no) +select +as_of_date, +tk_year, +tk_quarter, +tk_ap, +tk_month, +tk_ap_week, +industry, +sub_industry, +'' demo_type, +area_id region_name, +'Leads', +sum(assign_partner), +sub_application, +sum(leads_qty), +channel_type, +account_name, +account_manager, +white_list_ind, +'com' src_sysname, +'crm_opportunity_weekly' src_table, +'tk_demo_t' etl_job, +current_timestamp(0) etl_first_dt, +current_timestamp(0) etl_proc_dt, +'2025-01-01' etl_tx_dt, +'0' etl_batch_no +from (select distinct on (p1.lead_number) p2.tk_week_end_date as_of_date,p1.channel_type,p5.sub_application,p2.tk_year,p2.tk_ap,p2.tk_quarter,p2.tk_ap_week,p2.tk_month,p5.industry,p5.sub_industry,p5.region area_id,p1.account_name,p1.assign_partner,p1.leads_qty,P1.account_manager,case when p5.account_name is not null then 1 else 0 end white_list_ind from tk_raw_t p1 +left join ( +select p1.tk_ap,p1.standard_dt,p1.tk_year,p1.tk_ap_week,p1.tk_month,p1.tk_quarter,max(p2.standard_dt) tk_week_end_date from p31_dim.d_date p1 +left join p31_dim.d_date p2 +on p1.tk_year=p2.tk_year +and p1.tk_ap_week=p2.tk_ap_week +group by 1,2,3,4,5,6) p2 +on p1.as_of_date =p2.standard_dt +left join p30_common.white_list p5 +--on p2.tk_week_end_date=p5.as_of_date::date +on p5.as_of_date::date='2026-01-09' +and p1.account_name like '%'||p5.keys||'%' +)p1 +where as_of_date>='2025-01-01' +group by 1,2,3,4,5,6,7,8,9,10,17,16,15,13,18; +delete from p60_mart.iirtnc_leads_detail; +insert into p60_mart.iirtnc_leads_detail +select company_name account_name,create_time::date as_of_date,coalesce(p2.sales_teams,p1.account_manager) account_manager +,lead_number ,case when tek_assigntopartnercompanyidname <>'' then 1 else 0 end assign_partner +,case when channel_type='Distribution' then 'Distribution' else 'TSM' end channel_type,p1.channel_type origin_channel_type +,p1.name contact_name,p1.mobile_phone,p1.email,p1.tek_assigntopartnercompanyidname partner_company +,case when p5.account_name is not null then 1 else 0 end white_list_ind +,coalesce(p5.industry,'') industry,coalesce(p5.sub_industry,'') sub_industry,coalesce(p5.sub_application,'') application + from p20_pdm.t01_crm_raw_leads p1 +left join p31_dim.d_sales_mapping p2 +on p1.account_manager=p2.sales_teams +left join p30_common.white_list p5 +--on p2.tk_week_end_date=p5.as_of_date::date +on p5.as_of_date::date='2026-01-09' +and p1.company_name like '%'||p5.keys||'%' +where qualification_group in ('Sales Qualification','PIAM Qualification','Partner Qualification'); + +\q \ No newline at end of file diff --git a/dev/workflow/TK_Cust/iirtnc_data/iirtnc_new_funnel/dysql_iirtnc_new_funnel.sql b/dev/workflow/TK_Cust/iirtnc_data/iirtnc_new_funnel/dysql_iirtnc_new_funnel.sql new file mode 100644 index 0000000..bcd8f00 --- /dev/null +++ b/dev/workflow/TK_Cust/iirtnc_data/iirtnc_new_funnel/dysql_iirtnc_new_funnel.sql @@ -0,0 +1,167 @@ +/********************************************************************************************/ +/*******Main Section**************************************************************************/ +\set ON_ERROR_STOP on +\set AUTOCOMMIT on +\timing on + +drop table if exists tk_new_funnel_t; +create temporary table tk_new_funnel_t +as +select p1.record_id ,check_date::date ,'Partner' source_channel,coalesce(p3.sales_teams,p1.check_admin_name) account_manager,case when region_name in ('华南','华东') then 'SE' when region_name in ('华北') then 'NW' else region_name end region_name + ,customer_name ,rp_total_price*p2.target_currency_value /p2.currency_value as total_amt from p20_pdm.t01_partner_report p1 + left join p31_dim.d_sales_mapping p3 + on p1.check_admin_name=p3.sales_one_site +left join p31_dim.d_currency p2 +on p2.currency_cd ='CNY' +and p2.target_currency_cd ='USD' +where check_status_str ='已通过' and check_date >='2025-01-01' +union all + +select p1.tek_opportunity_id ,p1.create_time::date,'CRM' source_channel,coalesce(p2.sales_teams,p1.acount_manager) account_manager,case when upper(p1.area_id) like '%SOUTH%' then 'SE' when upper(p1.area_id) like '%NORTH%' then 'NW' else p1.area_id end area_id,p1.parent_account_name account_name,case when p1.discount_amount=0 and p1.channel_id='Distribution' then p1.base_amount*0.55 else p1.base_amount end total_amount +from p20_pdm.t01_crm_opportunity p1 +left join p31_dim.d_sales_mapping p2 +on p1.acount_manager=p2.sales_teams +left join p31_dim.d_currency p4 +on p1.currency_name=p4.currency_name +and p4.target_currency_cd ='USD' +where +--(p1.product_class like '2025%' or p1.product_class like '2035%' or p1.product_class like '2610%' or p1.product_class like '2026%' or p1.product_class like '2036%') +--and +p1.create_time >= '2025-01-01'; + + +delete from p60_mart.iirtnc_dashboard_data +where ind_cd='New Funnel' and date_id>='2025-01-01'; +INSERT INTO p60_mart.iirtnc_dashboard_data +(date_id,year_id, quarter_id, tk_ap, month_id, week_id,industry,sub_industry,demo_type, market_area, ind_cd, value,application,type1 +, src_sysname, src_table, etl_job, etl_first_dt, etl_proc_dt, etl_tx_dt, etl_batch_no) +select +as_of_date, +tk_year, +tk_quarter, +tk_ap, +tk_month, +tk_ap_week, +industry, +sub_industry, +'' demo_type, +region_name, +'New Funnel', +sum(total_amt), +sub_application, +source_channel, +'com' src_sysname, +'crm_opportunity_weekly' src_table, +'tk_new_funnel' etl_job, +current_timestamp(0) etl_first_dt, +current_timestamp(0) etl_proc_dt, +'2026-01-09' etl_tx_dt, +'0' etl_batch_no +from (select distinct on (p1.record_id) p2.tk_week_end_date as_of_date,p2.tk_year,p2.tk_ap,p2.tk_quarter,p2.tk_ap_week,p1.source_channel,p2.tk_month,coalesce(p5.sub_application,'') sub_application,p5.industry,p5.sub_industry,p1.region_name,p1.customer_name,p1.total_amt from tk_new_funnel_t p1 +left join ( +select p1.tk_ap,p1.standard_dt,p1.tk_year,p1.tk_ap_week,p1.tk_month,p1.tk_quarter,max(p2.standard_dt) tk_week_end_date from p31_dim.d_date p1 +left join p31_dim.d_date p2 +on p1.tk_year=p2.tk_year +and p1.tk_ap_week=p2.tk_ap_week +group by 1,2,3,4,5,6) p2 +on p1.check_date =p2.standard_dt +inner join (select distinct on (as_of_date,keys) * from p30_common.white_list) p5 +--on p2.tk_week_end_date=p5.as_of_date::date +on p5.as_of_date::date='2026-01-09' +and p1.customer_name like '%'||p5.keys||'%' )p1 +where as_of_date>='2025-01-01' +group by 1,2,3,4,5,6,7,8,9,10,13,14; + + +delete from p60_mart.iirtnc_dashboard_data_detail +where ind_cd='New Funnel' and date_id>='2025-01-01'; +INSERT INTO p60_mart.iirtnc_dashboard_data_detail +(date_id,year_id, quarter_id, tk_ap, month_id, week_id,industry,sub_industry,demo_type, market_area, ind_cd, value,application,type1, account_name,account_manager +,white_list_ind, src_sysname, src_table, etl_job, etl_first_dt, etl_proc_dt, etl_tx_dt, etl_batch_no) +select +as_of_date, +tk_year, +tk_quarter, +tk_ap, +tk_month, +tk_ap_week, +industry, +sub_industry, +'' demo_type, +region_name, +'New Funnel', +sum(total_amt), +sub_application, +source_channel, +account_name, +account_manager, +white_list_ind, +'com' src_sysname, +'crm_opportunity_weekly' src_table, +'tk_funnel_won' etl_job, +current_timestamp(0) etl_first_dt, +current_timestamp(0) etl_proc_dt, +'2026-01-09' etl_tx_dt, +'0' etl_batch_no +from (select distinct on (p1.record_id) p2.tk_week_end_date as_of_date,p2.tk_year,p2.tk_ap,p1.source_channel,p2.tk_quarter,p2.tk_ap_week,p2.tk_month,coalesce(p5.sub_application,'') sub_application,p5.industry,p5.sub_industry,p1.region_name,p1.customer_name account_name,p1.total_amt,p1.account_manager account_manager +,case when p5.account_name is not null then 1 else 0 end white_list_ind from tk_new_funnel_t p1 +left join ( +select p1.tk_ap,p1.standard_dt,p1.tk_year,p1.tk_ap_week,p1.tk_month,p1.tk_quarter,max(p2.standard_dt) tk_week_end_date from p31_dim.d_date p1 +left join p31_dim.d_date p2 +on p1.tk_year=p2.tk_year +and p1.tk_ap_week=p2.tk_ap_week +group by 1,2,3,4,5,6) p2 +on p1.check_date =p2.standard_dt +left join p30_common.white_list p5 +--on p2.tk_week_end_date=p5.as_of_date::date +on p5.as_of_date::date='2026-01-09' +and p1.customer_name like '%'||p5.keys||'%')p1 +where as_of_date>='2025-01-01' +group by 1,2,3,4,5,6,7,8,9,10,13,14,15,16,17; + +delete from p60_mart.iirtnc_new_funnel_detail; +insert into p60_mart.iirtnc_new_funnel_detail +SELECT p1.check_date::date,'Partner' source_channel,record_id, report_num, dealer_name +, coalesce(p3.sales_teams,p1.apply_admin_name), customer_name +, total_price*p2.target_currency_value /p2.currency_value total_price +, series_name, product_type, product_sku_type, product_name, skus +,list_price*p2.target_currency_value /p2.currency_value list_price, count count_qty +,rp_total_price*p2.target_currency_value /p2.currency_value rp_total_price +,case when p5.account_name is not null then 1 else 0 end white_list_ind,coalesce(p5.sub_application,'') sub_application,coalesce(p5.industry,'') industry,coalesce(p5.sub_industry,'') sub_industry +FROM p20_pdm.t01_partner_report p1 +left join p31_dim.d_sales_mapping p3 + on p1.check_admin_name=p3.sales_one_site +left join p31_dim.d_currency p2 +on p2.currency_cd ='CNY' +and p2.target_currency_cd ='USD' +left join p30_common.white_list p5 +--on p2.tk_week_end_date=p5.as_of_date::date +on p5.as_of_date::date='2026-01-09' +and p1.customer_name like '%'||p5.keys||'%' +where check_status_str ='已通过' +union all +SELECT p1.create_time,'CRM' source_channel ,tek_opportunity_id, opportunity_name,parent_account_name +,coalesce(p2.sales_teams,p1.acount_manager) ,parent_account_name +,p1.base_amount/p4.currency_value*p4.target_currency_value base_amount +,split_part(product_class, ':', 2) product_class ,split_part(product_class, ':', 1),'' ,product_name ,'' sku +,p1.base_amount/p4.currency_value*p4.target_currency_value base_amount,case when uint_price =0 then 1 else base_amount/uint_price end count_qty +,p1.total_amount/p4.currency_value*p4.target_currency_value total_amount +,case when p5.account_name is not null then 1 else 0 end white_list_ind,coalesce(p5.sub_application,'') sub_application,coalesce(p5.industry,'') industry,coalesce(p5.sub_industry,'') sub_industry +FROM p20_pdm.t01_crm_opportunity p1 +left join p31_dim.d_sales_mapping p2 +on p1.acount_manager=p2.sales_teams +left join p20_pdm.t01_crm_contact p3 +on p1.crm_contact_number =p3.crm_contact_account +left join p31_dim.d_currency p4 +on p1.currency_name=p4.currency_name +and p4.target_currency_cd ='USD' +left join p30_common.white_list p5 +--on p2.tk_week_end_date=p5.as_of_date::date +on p5.as_of_date::date='2026-01-09' +and p1.parent_account_name like '%'||p5.keys||'%' +--where (p1.product_class like '2025%' or p1.product_class like '2035%' or p1.product_class like '2610%' or p1.product_class like '2026%' or p1.product_class like '2036%'); +; + + + +\q \ No newline at end of file diff --git a/dev/workflow/TK_Cust/iirtnc_data/iirtnc_order/dysql_iirtnc_order.sql b/dev/workflow/TK_Cust/iirtnc_data/iirtnc_order/dysql_iirtnc_order.sql new file mode 100644 index 0000000..9f8435a --- /dev/null +++ b/dev/workflow/TK_Cust/iirtnc_data/iirtnc_order/dysql_iirtnc_order.sql @@ -0,0 +1,322 @@ +/********************************************************************************************/ +/*******Main Section**************************************************************************/ +\set ON_ERROR_STOP on +\set AUTOCOMMIT on +\timing on + +drop table if exists tk_order_t; +create temporary table tk_order_t +as +select distinct on (salesorderdetailid) salesorderdetailid orderbumber,tek_orderbookdate::date as_of_date ,tek_productfamilycode,coalesce(p2.sales_teams,p1.tek_accountmanagerid) account_manager,tek_contactcompanyname account_name,tek_productfamilycode product_type,tek_productgroup3name product_name,extendedamount_base total_amount + from p20_pdm.t01_crm_order p1 +left join p31_dim.d_sales_mapping p2 +on p1.tek_accountmanagerid=p2.sales_teams +--inner join p31_dim.d_product_family_code p3 +--on p1.tek_productfamilycode=p3.product_family_code +--and p3.category ='High Touch' +where p1.tek_orderstatus in ('Booked','Shipped') +and tek_orderbookdate::date>='2025-01-01' +; + + +delete from p60_mart.iirtnc_dashboard_data +where ind_cd='Order' and date_id>='2025-01-01' +; +INSERT INTO p60_mart.iirtnc_dashboard_data +(date_id,year_id, quarter_id, tk_ap, month_id, week_id,industry,sub_industry,demo_type, market_area, ind_cd, value,application +, src_sysname, src_table, etl_job, etl_first_dt, etl_proc_dt, etl_tx_dt, etl_batch_no) +select +as_of_date, +tk_year, +tk_quarter, +tk_ap, +tk_month, +tk_ap_week, +industry, +sub_industry, +'' demo_type, +area_id, +'Order', +sum(total_amount), +sub_application, +'com' src_sysname, +'crm_order' src_table, +'tk_pos_t' etl_job, +current_timestamp(0) etl_first_dt, +current_timestamp(0) etl_proc_dt, +'2026-01-09' etl_tx_dt, +'0' etl_batch_no +from (select distinct on (p1.orderbumber) p5.keys,p5.account_name,p2.tk_week_end_date as_of_date,p2.tk_year,p2.tk_ap,p2.tk_quarter,p2.tk_ap_week,p2.tk_month,p5.industry,p5.sub_industry,coalesce(p5.sub_application,'') sub_application,COALESCE(P5.REGION,'') area_id,p1.account_name,p1.total_amount from tk_order_t p1 +left join ( +select p1.tk_ap,p1.standard_dt,p1.tk_year,p1.tk_ap_week,p1.tk_month,p1.tk_quarter,max(p2.standard_dt) tk_week_end_date from p31_dim.d_date p1 +left join p31_dim.d_date p2 +on p1.tk_year=p2.tk_year +and p1.tk_ap_week=p2.tk_ap_week +group by 1,2,3,4,5,6) p2 +on p1.as_of_date::date =p2.standard_dt +inner join p30_common.white_list p5 +--on p2.tk_week_end_date=p5.as_of_date::date +on p5.as_of_date::date='2026-01-09' +and p1.account_name like '%'||p5.keys||'%' +inner join p31_dim.d_product_family_code p3 +on (p1.tek_productfamilycode=p3.product_family_code +and p3.category ='High Touch' +and (lower(p5.industry)='auto'or (p5.sub_application is not null))) +)p1 +where as_of_date>='2025-01-01' +group by 1,2,3,4,5,6,7,8,9,10,13; + +INSERT INTO p60_mart.iirtnc_dashboard_data +(date_id,year_id, quarter_id, tk_ap, month_id, week_id,industry,sub_industry,demo_type, market_area, ind_cd, value,application +, src_sysname, src_table, etl_job, etl_first_dt, etl_proc_dt, etl_tx_dt, etl_batch_no) +select +as_of_date, +tk_year, +tk_quarter, +tk_ap, +tk_month, +tk_ap_week, +industry, +sub_industry, +'' demo_type, +area_id, +'Order', +sum(total_amount), +sub_application, +'com' src_sysname, +'crm_order' src_table, +'tk_pos_t' etl_job, +current_timestamp(0) etl_first_dt, +current_timestamp(0) etl_proc_dt, +'2026-01-09' etl_tx_dt, +'0' etl_batch_no +from (select distinct on (p1.orderbumber) p5.keys,p5.account_name,p2.tk_week_end_date as_of_date,p2.tk_year,p2.tk_ap,p2.tk_quarter,p2.tk_ap_week,p2.tk_month,p5.industry,p5.sub_industry,coalesce(p5.sub_application,'') sub_application,COALESCE(P5.REGION,'') area_id,p1.account_name,p1.total_amount from tk_order_t p1 +left join ( +select p1.tk_ap,p1.standard_dt,p1.tk_year,p1.tk_ap_week,p1.tk_month,p1.tk_quarter,max(p2.standard_dt) tk_week_end_date from p31_dim.d_date p1 +left join p31_dim.d_date p2 +on p1.tk_year=p2.tk_year +and p1.tk_ap_week=p2.tk_ap_week +group by 1,2,3,4,5,6) p2 +on p1.as_of_date::date =p2.standard_dt +inner join p30_common.white_list p5 +--on p2.tk_week_end_date=p5.as_of_date::date +on p5.as_of_date::date='2026-01-09' +and p1.account_name like '%'||p5.keys||'%' +where (lower(p5.industry)<>'auto'and (p5.sub_application is null)) +)p1 +where as_of_date>='2025-01-01' +group by 1,2,3,4,5,6,7,8,9,10,13; + +delete from p60_mart.iirtnc_dashboard_data_detail +where ind_cd='Order' and date_id>='2025-01-01' +; + +INSERT INTO p60_mart.iirtnc_dashboard_data_detail +(date_id,year_id, quarter_id, tk_ap, month_id, week_id,industry,sub_industry,demo_type, market_area, ind_cd, value,application, account_name,account_manager +,white_list_ind, src_sysname, src_table, etl_job, etl_first_dt, etl_proc_dt, etl_tx_dt, etl_batch_no) +select +as_of_date, +tk_year, +tk_quarter, +tk_ap, +tk_month, +tk_ap_week, +industry, +sub_industry, +'' demo_type, +area_id, +'Order', +sum(total_amount), +sub_application, +account_name, +account_manager, +white_list_ind, +'com' src_sysname, +'crm_order' src_table, +'tk_pos_t' etl_job, +current_timestamp(0) etl_first_dt, +current_timestamp(0) etl_proc_dt, +'2026-01-09' etl_tx_dt, +'0' etl_batch_no +from (select distinct on (p1.orderbumber) p2.tk_week_end_date as_of_date,p2.tk_year,p2.tk_ap,p2.tk_quarter,p2.tk_ap_week,p2.tk_month,coalesce(p5.sub_application,'') sub_application,p5.industry,p5.sub_industry,p5.region area_id,p1.account_name,p1.total_amount,p1.account_manager +,case when p5.account_name is not null then 1 else 0 end white_list_ind +from tk_order_t p1 +left join ( +select p1.tk_ap,p1.standard_dt,p1.tk_year,p1.tk_ap_week,p1.tk_month,p1.tk_quarter,max(p2.standard_dt) tk_week_end_date from p31_dim.d_date p1 +left join p31_dim.d_date p2 +on p1.tk_year=p2.tk_year +and p1.tk_ap_week=p2.tk_ap_week +group by 1,2,3,4,5,6) p2 +on p1.as_of_date::date =p2.standard_dt +left join p30_common.white_list p5 +--on p2.tk_week_end_date=p5.as_of_date::date +on p5.as_of_date::date='2026-01-09' +and p1.account_name like '%'||p5.keys||'%' +inner join p31_dim.d_product_family_code p3 +on (p1.tek_productfamilycode=p3.product_family_code +and p3.category ='High Touch' +and (lower(p5.industry)='auto'or (p5.sub_application is not null))) +)p1 +where as_of_date>='2025-01-01' +group by 1,2,3,4,5,6,7,8,9,10,14,13,15,16; +INSERT INTO p60_mart.iirtnc_dashboard_data_detail +(date_id,year_id, quarter_id, tk_ap, month_id, week_id,industry,sub_industry,demo_type, market_area, ind_cd, value,application, account_name,account_manager +,white_list_ind, src_sysname, src_table, etl_job, etl_first_dt, etl_proc_dt, etl_tx_dt, etl_batch_no) +select +as_of_date, +tk_year, +tk_quarter, +tk_ap, +tk_month, +tk_ap_week, +industry, +sub_industry, +'' demo_type, +area_id, +'Order', +sum(total_amount), +sub_application, +account_name, +account_manager, +white_list_ind, +'com' src_sysname, +'crm_order' src_table, +'tk_pos_t' etl_job, +current_timestamp(0) etl_first_dt, +current_timestamp(0) etl_proc_dt, +'2026-01-09' etl_tx_dt, +'0' etl_batch_no +from (select distinct on (p1.orderbumber) p2.tk_week_end_date as_of_date,p2.tk_year,p2.tk_ap,p2.tk_quarter,p2.tk_ap_week,p2.tk_month,coalesce(p5.sub_application,'') sub_application,p5.industry,p5.sub_industry,p5.region area_id,p1.account_name,p1.total_amount,p1.account_manager +,case when p5.account_name is not null then 1 else 0 end white_list_ind from tk_order_t p1 +left join ( +select p1.tk_ap,p1.standard_dt,p1.tk_year,p1.tk_ap_week,p1.tk_month,p1.tk_quarter,max(p2.standard_dt) tk_week_end_date from p31_dim.d_date p1 +left join p31_dim.d_date p2 +on p1.tk_year=p2.tk_year +and p1.tk_ap_week=p2.tk_ap_week +group by 1,2,3,4,5,6) p2 +on p1.as_of_date::date =p2.standard_dt +left join p30_common.white_list p5 +--on p2.tk_week_end_date=p5.as_of_date::date +on p5.as_of_date::date='2026-01-09' +and p1.account_name like '%'||p5.keys||'%' +where (lower(p5.industry)<>'auto'and (p5.sub_application is null)))p1 +where as_of_date>='2025-01-01' +group by 1,2,3,4,5,6,7,8,9,10,14,13,15,16; + +INSERT INTO p60_mart.iirtnc_dashboard_data_detail +(date_id,year_id, quarter_id, tk_ap, month_id, week_id,industry,sub_industry,demo_type, market_area, ind_cd, value,application, account_name,account_manager +,white_list_ind, src_sysname, src_table, etl_job, etl_first_dt, etl_proc_dt, etl_tx_dt, etl_batch_no) +select +as_of_date, +tk_year, +tk_quarter, +tk_ap, +tk_month, +tk_ap_week, +industry, +sub_industry, +'' demo_type, +area_id, +'Order', +sum(total_amount), +sub_application, +account_name, +account_manager, +white_list_ind, +'com' src_sysname, +'crm_order' src_table, +'tk_pos_t' etl_job, +current_timestamp(0) etl_first_dt, +current_timestamp(0) etl_proc_dt, +'2026-01-09' etl_tx_dt, +'0' etl_batch_no +from (select distinct on (p1.orderbumber) p2.tk_week_end_date as_of_date,p2.tk_year,p2.tk_ap,p2.tk_quarter,p2.tk_ap_week,p2.tk_month,coalesce(p5.sub_application,'') sub_application,p5.industry,p5.sub_industry,p5.region area_id,p1.account_name,p1.total_amount,p1.account_manager +,case when p5.account_name is not null then 1 else 0 end white_list_ind from tk_order_t p1 +left join ( +select p1.tk_ap,p1.standard_dt,p1.tk_year,p1.tk_ap_week,p1.tk_month,p1.tk_quarter,max(p2.standard_dt) tk_week_end_date from p31_dim.d_date p1 +left join p31_dim.d_date p2 +on p1.tk_year=p2.tk_year +and p1.tk_ap_week=p2.tk_ap_week +group by 1,2,3,4,5,6) p2 +on p1.as_of_date::date =p2.standard_dt +left join p30_common.white_list p5 +--on p2.tk_week_end_date=p5.as_of_date::date +on p5.as_of_date::date='2026-01-09' +and p1.account_name like '%'||p5.keys||'%' +where p5.account_name is null)p1 +where as_of_date>='2025-01-01' +group by 1,2,3,4,5,6,7,8,9,10,14,13,15,16; + +delete from p60_mart.iirtnc_order_detail; +insert into p60_mart.iirtnc_order_detail +select distinct on (salesorderdetailid) p3.tk_week_end_date as_of_date,p3.tk_year,p3.tk_ap,p3.tk_quarter,p3.tk_ap_week +,p3.tk_month,salesorderdetailid orderbumber,tek_orderbookdate::date order_date ,tek_contactcompanyname account_name,tek_productfamilycode product_type,tek_productgroup3name product_name,extendedamount_base total_amount +,coalesce(p2.sales_teams,p1.tek_accountmanagerid) account_manager +,case when p5.account_name is not null then 1 else 0 end white_list_ind,coalesce(p5.sub_application,'') sub_application,coalesce(p5.industry,'') industry,coalesce(p5.sub_industry,'') sub_industry + from p20_pdm.t01_crm_order p1 +left join p31_dim.d_sales_mapping p2 +on p1.tek_accountmanagerid=p2.sales_teams +inner join p31_dim.d_product_family_code p4 +on p1.tek_productfamilycode=p4.product_family_code +and p4.category ='High Touch' +left join ( +select p1.tk_ap,p1.standard_dt,p1.tk_year,p1.tk_ap_week,p1.tk_month,p1.tk_quarter,max(p2.standard_dt) tk_week_end_date from p31_dim.d_date p1 +left join p31_dim.d_date p2 +on p1.tk_year=p2.tk_year +and p1.tk_ap_week=p2.tk_ap_week +group by 1,2,3,4,5,6) p3 +on p1.tek_orderbookdate::date =p3.standard_dt +left join p30_common.white_list p5 +--on p2.tk_week_end_date=p5.as_of_date::date +on p5.as_of_date::date='2026-01-09' +and p1.tek_contactcompanyname like '%'||p5.keys||'%' +where (lower(p5.industry)='auto' or (p5.sub_application is not null)) +; + +insert into p60_mart.iirtnc_order_detail +select distinct on (salesorderdetailid) p3.tk_week_end_date as_of_date,p3.tk_year,p3.tk_ap,p3.tk_quarter,p3.tk_ap_week +,p3.tk_month,salesorderdetailid orderbumber,tek_orderbookdate::date order_date ,tek_contactcompanyname account_name,tek_productfamilycode product_type,tek_productgroup3name product_name,extendedamount_base total_amount +,coalesce(p2.sales_teams,p1.tek_accountmanagerid) account_manager +,case when p5.account_name is not null then 1 else 0 end white_list_ind,coalesce(p5.sub_application,'') sub_application,coalesce(p5.industry,'') industry,coalesce(p5.sub_industry,'') sub_industry + from p20_pdm.t01_crm_order p1 +left join p31_dim.d_sales_mapping p2 +on p1.tek_accountmanagerid=p2.sales_teams +left join ( +select p1.tk_ap,p1.standard_dt,p1.tk_year,p1.tk_ap_week,p1.tk_month,p1.tk_quarter,max(p2.standard_dt) tk_week_end_date from p31_dim.d_date p1 +left join p31_dim.d_date p2 +on p1.tk_year=p2.tk_year +and p1.tk_ap_week=p2.tk_ap_week +group by 1,2,3,4,5,6) p3 +on p1.tek_orderbookdate::date =p3.standard_dt +left join p30_common.white_list p5 +--on p2.tk_week_end_date=p5.as_of_date::date +on p5.as_of_date::date='2026-01-09' +and p1.tek_contactcompanyname like '%'||p5.keys||'%' +where (lower(p5.industry)<>'auto'and (p5.sub_application is null)) +; + +insert into p60_mart.iirtnc_order_detail +select distinct on (salesorderdetailid) p3.tk_week_end_date as_of_date,p3.tk_year,p3.tk_ap,p3.tk_quarter,p3.tk_ap_week +,p3.tk_month,salesorderdetailid orderbumber,tek_orderbookdate::date order_date ,tek_contactcompanyname account_name,tek_productfamilycode product_type,tek_productgroup3name product_name,extendedamount_base total_amount +,coalesce(p2.sales_teams,p1.tek_accountmanagerid) account_manager +,case when p5.account_name is not null then 1 else 0 end white_list_ind,coalesce(p5.sub_application,'') sub_application,coalesce(p5.industry,'') industry,coalesce(p5.sub_industry,'') sub_industry + from p20_pdm.t01_crm_order p1 +left join p31_dim.d_sales_mapping p2 +on p1.tek_accountmanagerid=p2.sales_teams +left join ( +select p1.tk_ap,p1.standard_dt,p1.tk_year,p1.tk_ap_week,p1.tk_month,p1.tk_quarter,max(p2.standard_dt) tk_week_end_date from p31_dim.d_date p1 +left join p31_dim.d_date p2 +on p1.tk_year=p2.tk_year +and p1.tk_ap_week=p2.tk_ap_week +group by 1,2,3,4,5,6) p3 +on p1.tek_orderbookdate::date =p3.standard_dt +left join p30_common.white_list p5 +--on p2.tk_week_end_date=p5.as_of_date::date +on p5.as_of_date::date='2026-01-09' +and p1.tek_contactcompanyname like '%'||p5.keys||'%' +where p5.account_name is null +; + + + +\q \ No newline at end of file diff --git a/dev/workflow/TK_Cust/iirtnc_data/iirtnc_pos/dysql_iirtnc_pos.sql b/dev/workflow/TK_Cust/iirtnc_data/iirtnc_pos/dysql_iirtnc_pos.sql new file mode 100644 index 0000000..4e7973e --- /dev/null +++ b/dev/workflow/TK_Cust/iirtnc_data/iirtnc_pos/dysql_iirtnc_pos.sql @@ -0,0 +1,415 @@ +/********************************************************************************************/ +/*******Main Section**************************************************************************/ +\set ON_ERROR_STOP on +\set AUTOCOMMIT on +\timing on + +drop table if exists tk_pos_t; +create temporary table tk_pos_t +as +select id,'Partner' source_channel,pos_insert_date as_of_date,coalesce(p4.sales_teams,'') account_manager,product_family_code,case when area_name in ('华南','华东') then 'SE' when area_name in ('华北') then 'NW' else area_name end area_ID,distributor_name2 dealer_name,customer_name account_name,extended_price *p2.target_currency_value /p2.currency_value total_amount from p20_pdm.t01_partner_pos p1 +left join p31_dim.d_currency p2 +on p2.currency_cd =p1.sales_trx_currency_code +and p2.target_currency_cd ='USD' +left join p20_pdm.t00_china_city_pnum_ai p3 +on p1.province=p3.prov_name +and case when coalesce(p3.district,'') <>'' then p3.district +else p3.city_name end like substring(p1.city,1,2)||'%' +left join p31_dim.d_sales_mapping p4 +on p4.sales_dw=p3.saler_name +--inner join p31_dim.d_product_family_code p4 +--on p1.product_family_code=p4.product_family_code +--and p4.category ='Low Touch' +where extended_price <>0 +; + +delete from p60_mart.iirtnc_dashboard_data +where ind_cd='POS' +and date_id>='2025-01-01' +; +INSERT INTO p60_mart.iirtnc_dashboard_data +(date_id,year_id, quarter_id, tk_ap, month_id, week_id,industry,sub_industry,demo_type, market_area, ind_cd, value,application +, src_sysname, src_table, etl_job, etl_first_dt, etl_proc_dt, etl_tx_dt, etl_batch_no) +select +as_of_date, +tk_year, +tk_quarter, +tk_ap, +tk_month, +tk_ap_week, +industry, +sub_industry, +'' demo_type, +area_id, +'POS', +sum(total_amount), +sub_application, +'com' src_sysname, +'crm_opportunity_weekly' src_table, +'tk_pos_t' etl_job, +current_timestamp(0) etl_first_dt, +current_timestamp(0) etl_proc_dt, +'2025-01-01' etl_tx_dt, +'0' etl_batch_no +from (select distinct on (p1.id) p2.tk_week_end_date as_of_date,p2.tk_year,p2.tk_ap,p2.tk_quarter,p2.tk_ap_week,p2.tk_month,coalesce(p5.sub_application,'') sub_application,p5.industry,p5.sub_industry,p1.area_id,p1.account_name,p1.total_amount from tk_pos_t p1 +left join ( +select p1.tk_ap,p1.standard_dt,p1.tk_year,p1.tk_ap_week,p1.tk_month,p1.tk_quarter,max(p2.standard_dt) tk_week_end_date from p31_dim.d_date p1 +left join p31_dim.d_date p2 +on p1.tk_year=p2.tk_year +and p1.tk_ap_week=p2.tk_ap_week +group by 1,2,3,4,5,6) p2 +on p1.as_of_date =p2.standard_dt +inner join p30_common.white_list p5 +--on p2.tk_week_end_date=p5.as_of_date::date +on p5.as_of_date::date='2026-01-09' +and p1.account_name like '%'||p5.keys||'%' +inner join p31_dim.d_product_family_code p4 +on p1.product_family_code=p4.product_family_code +and p4.category ='Low Touch' +and (lower(p5.industry)='auto'or (p5.sub_application is not null)))p1 +where as_of_date>='2025-01-01' +group by 1,2,3,4,5,6,7,8,9,10,13; + +INSERT INTO p60_mart.iirtnc_dashboard_data +(date_id,year_id, quarter_id, tk_ap, month_id, week_id,industry,sub_industry,demo_type, market_area, ind_cd, value,application +, src_sysname, src_table, etl_job, etl_first_dt, etl_proc_dt, etl_tx_dt, etl_batch_no) +select +as_of_date, +tk_year, +tk_quarter, +tk_ap, +tk_month, +tk_ap_week, +industry, +sub_industry, +'' demo_type, +area_id, +'POS', +sum(total_amount), +sub_application, +'com' src_sysname, +'crm_opportunity_weekly' src_table, +'tk_pos_t' etl_job, +current_timestamp(0) etl_first_dt, +current_timestamp(0) etl_proc_dt, +'2025-01-01' etl_tx_dt, +'0' etl_batch_no +from (select distinct on (p1.id) p2.tk_week_end_date as_of_date,p2.tk_year,p2.tk_ap,p2.tk_quarter,p2.tk_ap_week,p2.tk_month,coalesce(p5.sub_application,'') sub_application,p5.industry,p5.sub_industry,p1.area_id,p1.account_name,p1.total_amount from tk_pos_t p1 +left join ( +select p1.tk_ap,p1.standard_dt,p1.tk_year,p1.tk_ap_week,p1.tk_month,p1.tk_quarter,max(p2.standard_dt) tk_week_end_date from p31_dim.d_date p1 +left join p31_dim.d_date p2 +on p1.tk_year=p2.tk_year +and p1.tk_ap_week=p2.tk_ap_week +group by 1,2,3,4,5,6) p2 +on p1.as_of_date =p2.standard_dt +inner join p30_common.white_list p5 +--on p2.tk_week_end_date=p5.as_of_date::date +on p5.as_of_date::date='2026-01-09' +and p1.account_name like '%'||p5.keys||'%' +where (lower(p5.industry)<>'auto' and (p5.sub_application is null)))p1 +where as_of_date>='2025-01-01' +group by 1,2,3,4,5,6,7,8,9,10,13; + + +delete from p60_mart.iirtnc_dashboard_data_detail +where ind_cd='POS' and date_id>='2025-01-01'; +INSERT INTO p60_mart.iirtnc_dashboard_data_detail +(date_id,year_id, quarter_id, tk_ap, month_id, week_id,industry,sub_industry,demo_type, market_area, ind_cd, value,application, account_name,account_manager,type1 +,white_list_ind, src_sysname, src_table, etl_job, etl_first_dt, etl_proc_dt, etl_tx_dt, etl_batch_no) +select +as_of_date, +tk_year, +tk_quarter, +tk_ap, +tk_month, +tk_ap_week, +industry, +sub_industry, +'' demo_type, +area_id, +'POS', +sum(total_amount), +sub_application, +account_name, +account_manager, +dealer_name, +white_list_ind, +'com' src_sysname, +'crm_opportunity_weekly' src_table, +'tk_pos_t' etl_job, +current_timestamp(0) etl_first_dt, +current_timestamp(0) etl_proc_dt, +'2025-01-01' etl_tx_dt, +'0' etl_batch_no +from (select distinct on (p1.id) p2.tk_week_end_date as_of_date,p2.tk_year,p2.tk_ap,p2.tk_quarter,p2.tk_ap_week,p2.tk_month,coalesce(p5.sub_application,'') sub_application,p1.dealer_name,p5.industry,p5.sub_industry,p1.area_id,p1.account_name,p1.total_amount,p1.account_manager,case when p5.account_name is not null then 1 else 0 end white_list_ind from tk_pos_t p1 +left join ( +select p1.tk_ap,p1.standard_dt,p1.tk_year,p1.tk_ap_week,p1.tk_month,p1.tk_quarter,max(p2.standard_dt) tk_week_end_date from p31_dim.d_date p1 +left join p31_dim.d_date p2 +on p1.tk_year=p2.tk_year +and p1.tk_ap_week=p2.tk_ap_week +group by 1,2,3,4,5,6) p2 +on p1.as_of_date =p2.standard_dt +left join p30_common.white_list p5 +--on p2.tk_week_end_date=p5.as_of_date::date +on p5.as_of_date::date='2026-01-09' +and p1.account_name like '%'||p5.keys||'%' +where (lower(p5.industry)<>'auto' and (p5.sub_application is null)))p1 +where as_of_date>='2025-01-01' +group by 1,2,3,4,5,6,7,8,9,10,13,14,15,16,17; +INSERT INTO p60_mart.iirtnc_dashboard_data_detail +(date_id,year_id, quarter_id, tk_ap, month_id, week_id,industry,sub_industry,demo_type, market_area, ind_cd, value,application, account_name,account_manager,type1 +,white_list_ind, src_sysname, src_table, etl_job, etl_first_dt, etl_proc_dt, etl_tx_dt, etl_batch_no) +select +as_of_date, +tk_year, +tk_quarter, +tk_ap, +tk_month, +tk_ap_week, +industry, +sub_industry, +'' demo_type, +area_id, +'POS', +sum(total_amount), +sub_application, +account_name, +account_manager, +dealer_name, +white_list_ind, +'com' src_sysname, +'crm_opportunity_weekly' src_table, +'tk_pos_t' etl_job, +current_timestamp(0) etl_first_dt, +current_timestamp(0) etl_proc_dt, +'2025-01-01' etl_tx_dt, +'0' etl_batch_no +from (select distinct on (p1.id) p2.tk_week_end_date as_of_date,p2.tk_year,p2.tk_ap,p2.tk_quarter,p2.tk_ap_week,p2.tk_month,coalesce(p5.sub_application,'') sub_application,p1.dealer_name,p5.industry,p5.sub_industry,p1.area_id,p1.account_name,p1.total_amount,p1.account_manager,case when p5.account_name is not null then 1 else 0 end white_list_ind from tk_pos_t p1 +left join ( +select p1.tk_ap,p1.standard_dt,p1.tk_year,p1.tk_ap_week,p1.tk_month,p1.tk_quarter,max(p2.standard_dt) tk_week_end_date from p31_dim.d_date p1 +left join p31_dim.d_date p2 +on p1.tk_year=p2.tk_year +and p1.tk_ap_week=p2.tk_ap_week +group by 1,2,3,4,5,6) p2 +on p1.as_of_date =p2.standard_dt +left join p30_common.white_list p5 +--on p2.tk_week_end_date=p5.as_of_date::date +on p5.as_of_date::date='2026-01-09' +and p1.account_name like '%'||p5.keys||'%' +inner join p31_dim.d_product_family_code p4 +on p1.product_family_code=p4.product_family_code +and p4.category ='Low Touch' +and (lower(p5.industry)='auto'or (p5.sub_application is not null)))p1 +where as_of_date>='2025-01-01' +group by 1,2,3,4,5,6,7,8,9,10,13,14,15,16,17; + +INSERT INTO p60_mart.iirtnc_dashboard_data_detail +(date_id,year_id, quarter_id, tk_ap, month_id, week_id,industry,sub_industry,demo_type, market_area, ind_cd, value,application, account_name,account_manager,type1 +,white_list_ind, src_sysname, src_table, etl_job, etl_first_dt, etl_proc_dt, etl_tx_dt, etl_batch_no) +select +as_of_date, +tk_year, +tk_quarter, +tk_ap, +tk_month, +tk_ap_week, +industry, +sub_industry, +'' demo_type, +area_id, +'POS', +sum(total_amount), +sub_application, +account_name, +account_manager, +dealer_name, +white_list_ind, +'com' src_sysname, +'crm_opportunity_weekly' src_table, +'tk_pos_t' etl_job, +current_timestamp(0) etl_first_dt, +current_timestamp(0) etl_proc_dt, +'2025-01-01' etl_tx_dt, +'0' etl_batch_no +from (select distinct on (p1.id) p2.tk_week_end_date as_of_date,p2.tk_year,p2.tk_ap,p2.tk_quarter,p2.tk_ap_week,p2.tk_month,coalesce(p5.sub_application,'') sub_application,p1.dealer_name,p5.industry,p5.sub_industry,p1.area_id,p1.account_name,p1.total_amount,p1.account_manager,case when p5.account_name is not null then 1 else 0 end white_list_ind from tk_pos_t p1 +left join ( +select p1.tk_ap,p1.standard_dt,p1.tk_year,p1.tk_ap_week,p1.tk_month,p1.tk_quarter,max(p2.standard_dt) tk_week_end_date from p31_dim.d_date p1 +left join p31_dim.d_date p2 +on p1.tk_year=p2.tk_year +and p1.tk_ap_week=p2.tk_ap_week +group by 1,2,3,4,5,6) p2 +on p1.as_of_date =p2.standard_dt +left join p30_common.white_list p5 +--on p2.tk_week_end_date=p5.as_of_date::date +on p5.as_of_date::date='2026-01-09' +and p1.account_name like '%'||p5.keys||'%' +where p5.account_name is null)p1 +where as_of_date>='2025-01-01' +group by 1,2,3,4,5,6,7,8,9,10,13,14,15,16,17; + +delete from p60_mart.iirtnc_pos_detail; +insert into p60_mart.iirtnc_pos_detail +select p3.tk_week_end_date as_of_date,p3.tk_year,p3.tk_ap,p3.tk_quarter,p3.tk_ap_week +,p3.tk_month,id tek_opportunity_id +,coalesce(p7.sales_teams,'') account_manager,pos_insert_date status_last_update +,distributor_name parent_account_name ,customer_name name,'' product_series,p1.product_family_code product_type,product_family_name product_name +,1 count_qty,'Partner' source_channel,case when area_name in ('华南','华东') then 'SE' when area_name in ('华北') then 'NW' else area_name end area_id +,customer_name account_name,extended_price *p2.target_currency_value /p2.currency_value total_amount +,case when p6.account_name is not null then 1 else 0 end white_list_ind,coalesce(p6.sub_application,'') sub_application,coalesce(p6.industry,'') industry,coalesce(p6.sub_industry) sub_industry +from p20_pdm.t01_partner_pos p1 +left join p31_dim.d_currency p2 +on p2.currency_cd =p1.sales_trx_currency_code +and p2.target_currency_cd ='USD' +inner join p30_common.white_list p6 +--on p2.tk_week_end_date=p5.as_of_date::date +on p6.as_of_date::date='2026-01-09' +and p1.customer_name like '%'||p6.keys||'%' +left join ( +select p1.tk_ap,p1.standard_dt,p1.tk_year,p1.tk_ap_week,p1.tk_month,p1.tk_quarter,max(p2.standard_dt) tk_week_end_date from p31_dim.d_date p1 +left join p31_dim.d_date p2 +on p1.tk_year=p2.tk_year +and p1.tk_ap_week=p2.tk_ap_week +group by 1,2,3,4,5,6) p3 +on p1.pos_insert_date =p3.standard_dt +left join p20_pdm.t00_china_city_pnum_ai p5 +on p1.province=p5.prov_name +and case when coalesce(p5.district,'') <>'' then p5.district +else p5.city_name end like substring(p1.city,1,2)||'%' +left join p31_dim.d_sales_mapping p7 +on p5.saler_name=p7.sales_dw +inner join p31_dim.d_product_family_code p4 +on p1.product_family_code=p4.product_family_code +and p4.category ='Low Touch' +where extended_price <>0 and (lower(p6.industry)='auto'or (p6.sub_application is not null)) +union all +select p3.tk_week_end_date as_of_date,p3.tk_year,p3.tk_ap,p3.tk_quarter,p3.tk_ap_week +,p3.tk_month,id tek_opportunity_id +,coalesce(p7.sales_teams,'') account_manager,pos_insert_date status_last_update +,distributor_name parent_account_name ,customer_name name,'' product_series,p1.product_family_code product_type,product_family_name product_name +,1 count_qty,'Partner' source_channel,case when area_name in ('华南','华东') then 'SE' when area_name in ('华北') then 'NW' else area_name end area_id +,customer_name account_name,extended_price *p2.target_currency_value /p2.currency_value total_amount,case when p6.account_name is not null then 1 else 0 end white_list_ind,coalesce(p6.sub_application,'') sub_application,coalesce(p6.industry,'') industry,coalesce(p6.sub_industry) sub_industry + from p20_pdm.t01_partner_pos p1 +left join p31_dim.d_currency p2 +on p2.currency_cd =p1.sales_trx_currency_code +and p2.target_currency_cd ='USD' +inner join p30_common.white_list p6 +--on p2.tk_week_end_date=p5.as_of_date::date +on p6.as_of_date::date='2026-01-09' +and p1.customer_name like '%'||p6.keys||'%' +left join ( +select p1.tk_ap,p1.standard_dt,p1.tk_year,p1.tk_ap_week,p1.tk_month,p1.tk_quarter,max(p2.standard_dt) tk_week_end_date from p31_dim.d_date p1 +left join p31_dim.d_date p2 +on p1.tk_year=p2.tk_year +and p1.tk_ap_week=p2.tk_ap_week +group by 1,2,3,4,5,6) p3 +on p1.pos_insert_date =p3.standard_dt +left join p20_pdm.t00_china_city_pnum_ai p5 +on p1.province=p5.prov_name +and case when coalesce(p5.district,'') <>'' then p5.district +else p5.city_name end like substring(p1.city,1,2)||'%' +left join p31_dim.d_sales_mapping p7 +on p5.saler_name=p7.sales_dw +where extended_price <>0 and (lower(p6.industry) <>'auto' and (p6.sub_application is null)) +union ALL +select distinct on (salesorderdetailid) p3.tk_week_end_date as_of_date,p3.tk_year,p3.tk_ap,p3.tk_quarter,p3.tk_ap_week +,p3.tk_month,salesorderdetailid orderbumber +,coalesce(p2.sales_teams,''),tek_orderbookdate::date order_date +,tek_billtocompanyname,tek_contactcompanyname account_name,'',tek_productfamilycode product_type,tek_productgroup3name product_name +,p1.qty,'Order','',tek_contactcompanyname,extendedamount_base total_amount +,case when p5.account_name is not null then 1 else 0 end white_list_ind,coalesce(p5.sub_application,'') sub_application,coalesce(p5.industry,'') industry,coalesce(p5.sub_industry,'') sub_industry + from p20_pdm.t01_crm_order p1 +left join p31_dim.d_sales_mapping p2 +on p1.tek_accountmanagerid=p2.sales_teams +inner join p31_dim.d_product_family_code p4 +on p1.tek_productfamilycode=p4.product_family_code +and p4.category ='High Touch' +left join ( +select p1.tk_ap,p1.standard_dt,p1.tk_year,p1.tk_ap_week,p1.tk_month,p1.tk_quarter,max(p2.standard_dt) tk_week_end_date from p31_dim.d_date p1 +left join p31_dim.d_date p2 +on p1.tk_year=p2.tk_year +and p1.tk_ap_week=p2.tk_ap_week +group by 1,2,3,4,5,6) p3 +on p1.tek_orderbookdate::date =p3.standard_dt +inner join p30_common.white_list p5 +--on p2.tk_week_end_date=p5.as_of_date::date +on p5.as_of_date::date='2026-01-09' +and p1.tek_contactcompanyname like '%'||p5.keys||'%' +where (lower(p5.industry)='auto' or (p5.sub_application is not null)) +union ALL +select distinct on (salesorderdetailid) p3.tk_week_end_date as_of_date,p3.tk_year,p3.tk_ap,p3.tk_quarter,p3.tk_ap_week +,p3.tk_month,salesorderdetailid orderbumber +,coalesce(p2.sales_teams,''),tek_orderbookdate::date order_date +,tek_billtocompanyname,tek_contactcompanyname account_name,'',tek_productfamilycode product_type,tek_productgroup3name product_name +,p1.qty,'Order','',tek_contactcompanyname,extendedamount_base total_amount +,case when p5.account_name is not null then 1 else 0 end white_list_ind,coalesce(p5.sub_application,'') sub_application,coalesce(p5.industry,'') industry,coalesce(p5.sub_industry,'') sub_industry + from p20_pdm.t01_crm_order p1 +left join p31_dim.d_sales_mapping p2 +on p1.tek_accountmanagerid=p2.sales_teams +left join ( +select p1.tk_ap,p1.standard_dt,p1.tk_year,p1.tk_ap_week,p1.tk_month,p1.tk_quarter,max(p2.standard_dt) tk_week_end_date from p31_dim.d_date p1 +left join p31_dim.d_date p2 +on p1.tk_year=p2.tk_year +and p1.tk_ap_week=p2.tk_ap_week +group by 1,2,3,4,5,6) p3 +on p1.tek_orderbookdate::date =p3.standard_dt +inner join p30_common.white_list p5 +--on p2.tk_week_end_date=p5.as_of_date::date +on p5.as_of_date::date='2026-01-09' +and p1.tek_contactcompanyname like '%'||p5.keys||'%' +where (lower(p5.industry)<>'auto'and (p5.sub_application is null)) +; +insert into p60_mart.iirtnc_pos_detail +select distinct on (salesorderdetailid) p3.tk_week_end_date as_of_date,p3.tk_year,p3.tk_ap,p3.tk_quarter,p3.tk_ap_week +,p3.tk_month,salesorderdetailid orderbumber +,coalesce(p2.sales_teams,''),tek_orderbookdate::date order_date +,tek_billtocompanyname,tek_contactcompanyname account_name,'',tek_productfamilycode product_type,tek_productgroup3name product_name +,p1.qty,'Order','',tek_contactcompanyname,extendedamount_base total_amount +,case when p5.account_name is not null then 1 else 0 end white_list_ind,coalesce(p5.sub_application,'') sub_application,coalesce(p5.industry,'') industry,coalesce(p5.sub_industry,'') sub_industry + from p20_pdm.t01_crm_order p1 +left join p31_dim.d_sales_mapping p2 +on p1.tek_accountmanagerid=p2.sales_teams +left join ( +select p1.tk_ap,p1.standard_dt,p1.tk_year,p1.tk_ap_week,p1.tk_month,p1.tk_quarter,max(p2.standard_dt) tk_week_end_date from p31_dim.d_date p1 +left join p31_dim.d_date p2 +on p1.tk_year=p2.tk_year +and p1.tk_ap_week=p2.tk_ap_week +group by 1,2,3,4,5,6) p3 +on p1.tek_orderbookdate::date =p3.standard_dt +left join p30_common.white_list p5 +--on p2.tk_week_end_date=p5.as_of_date::date +on p5.as_of_date::date='2026-01-09' +and p1.tek_contactcompanyname like '%'||p5.keys||'%' +where p5.account_name is null +; + +insert into p60_mart.iirtnc_pos_detail +select p3.tk_week_end_date as_of_date,p3.tk_year,p3.tk_ap,p3.tk_quarter,p3.tk_ap_week +,p3.tk_month,id tek_opportunity_id +,coalesce(p7.sales_teams,'') account_manager,pos_insert_date status_last_update +,distributor_name parent_account_name ,customer_name name,'' product_series,p1.product_family_code product_type,product_family_name product_name +,1 count_qty,'Partner' source_channel,case when area_name in ('华南','华东') then 'SE' when area_name in ('华北') then 'NW' else area_name end area_id +,customer_name account_name,extended_price *p2.target_currency_value /p2.currency_value total_amount,case when p6.account_name is not null then 1 else 0 end white_list_ind,coalesce(p6.sub_application,'') sub_application,coalesce(p6.industry,'') industry,coalesce(p6.sub_industry) sub_industry + from p20_pdm.t01_partner_pos p1 +left join p31_dim.d_currency p2 +on p2.currency_cd =p1.sales_trx_currency_code +and p2.target_currency_cd ='USD' +left join p30_common.white_list p6 +--on p2.tk_week_end_date=p5.as_of_date::date +on p6.as_of_date::date='2026-01-09' +and p1.customer_name like '%'||p6.keys||'%' +left join ( +select p1.tk_ap,p1.standard_dt,p1.tk_year,p1.tk_ap_week,p1.tk_month,p1.tk_quarter,max(p2.standard_dt) tk_week_end_date from p31_dim.d_date p1 +left join p31_dim.d_date p2 +on p1.tk_year=p2.tk_year +and p1.tk_ap_week=p2.tk_ap_week +group by 1,2,3,4,5,6) p3 +on p1.pos_insert_date =p3.standard_dt +left join p20_pdm.t00_china_city_pnum_ai p5 +on p1.province=p5.prov_name +and case when coalesce(p5.district,'') <>'' then p5.district +else p5.city_name end like substring(p1.city,1,2)||'%' +left join p31_dim.d_sales_mapping p7 +on p5.saler_name=p7.sales_dw +where extended_price <>0 and p6.account_name is null; + +\q \ No newline at end of file diff --git a/dev/workflow/TK_Cust/iirtnc_data/white_list/dysql_white_list.sql b/dev/workflow/TK_Cust/iirtnc_data/white_list/dysql_white_list.sql new file mode 100644 index 0000000..c1ab8c4 --- /dev/null +++ b/dev/workflow/TK_Cust/iirtnc_data/white_list/dysql_white_list.sql @@ -0,0 +1,63 @@ +/********************************************************************************************/ +/*******Main Section**************************************************************************/ +\set ON_ERROR_STOP on +\set AUTOCOMMIT on +\timing on + +delete FROM p30_common.white_list +where as_of_date=current_date; +insert into p30_common.white_list +SELECT distinct current_date as_of_date,extract_date, account_name, keys, city, district, industry, sub_industry, tags, tsm, region, custom_type, url, market_capitalization, order_last_3y, pos_last_3y, total, open_funnel, contact, financing_round, open_lab_visit +,0 Etl_Batch_No + ,current_date Etl_First_Dt + ,'white_list' Etl_Job + ,current_timestamp(0) Etl_Proc_Dt + ,current_date Etl_Tx_Dt + ,Substr('white_list',1,3) Src_Sysname + ,'white_list' Src_Table + ,sub_application +FROM p70_ai_intelligence.t_white_list; + +delete from p60_mart.iirtnc_dashboard_data +where ind_cd='White List' and date_id>=date_trunc('month', current_date)::date; +; + +INSERT INTO p60_mart.iirtnc_dashboard_data +(date_id,year_id, quarter_id, tk_ap, month_id, week_id,industry,sub_industry,demo_type, market_area, ind_cd, value,application,value2 +, src_sysname, src_table, etl_job, etl_first_dt, etl_proc_dt, etl_tx_dt, etl_batch_no) +select +as_of_date, +tk_year, +tk_quarter, +tk_ap, +tk_month, +tk_ap_week, +industry, +sub_industry, +demo_type, +'' region_name, +'White List', +count(distinct p1.account_name), +sub_application, +0, +'com' src_sysname, +'white_list' src_table, +'tk_customer_visibility_t' etl_job, +current_timestamp(0) etl_first_dt, +current_timestamp(0) etl_proc_dt, +'2026-01-09' etl_tx_dt, +'0' etl_batch_no +from ( +select distinct p2.tk_week_end_date as_of_date,p2.tk_year,p2.tk_ap,p2.tk_quarter,p2.tk_ap_week,p2.tk_month,coalesce(p5.sub_application,'') sub_application,p5.industry,p5.sub_industry,'' demo_type,p5.account_name from p30_common.white_list p5 +inner join ( +select p1.tk_ap,p1.tk_year,p1.tk_ap_week,p1.tk_month,p1.tk_quarter,max(p2.standard_dt) tk_week_end_date from p31_dim.d_date p1 +left join p31_dim.d_date p2 +on p1.tk_year=p2.tk_year +and p1.tk_ap_week=p2.tk_ap_week +where (p1.tk_ap,p1.tk_ap_week) in (select tk_ap,min(tk_ap_week) from p31_dim.d_date group by 1) +group by 1,2,3,4,5) p2 +on p5.as_of_date =p2.tk_week_end_date)p1 +where as_of_date>=date_trunc('month', current_date)::date +group by 1,2,3,4,5,6,7,8,9,10,13; + +\q \ No newline at end of file