select a.prov_nm, --省份 f.year_trade_amt, ---年交易额 a.year_fee_amt, ---年收入 f.bm_trade_amt/e.before_month_days bm_avg_amt, --上月日均交易额 a.bm_fee_amt/e.before_month_days bm_avg_fee,--上月日均收入 f.day_trade_amt,a.day_fee_amt, a.day_ysr_trade_amt, a.bm_ysr_trade_amt/e.before_month_days bm_ysr_avg_amt, b.bm_equity_amt/e.before_month_days bm_avg_equity_amt, c.day_equity_amt, d.yj_cnt, e.day_new_cnt, e.new30_cnt, e.new30_trans_cnt from (SELECT b.prov_nm, --sum(a.year_trade_amt)/1000000.000 year_trade_amt,--单位:万元 sum(a.year_fee_amt)/1060000.0000 year_fee_amt, --sum(a.bm_trade_amt)/1000000.000 bm_trade_amt, sum(a.bm_fee_amt)/1060000.0000 bm_fee_amt, --sum(a.day_trade_amt)/1000000.000 day_trade_amt, sum(a.day_fee_amt)/1060000.0000 day_fee_amt, sum(a.day_ysr_trade_amt)/1000000.0000 day_ysr_trade_amt, sum(a.bm_ysr_trade_amt)/1000000.0000 bm_ysr_trade_amt FROM (SELECT fee_party, --sum(cast(t.trade_amt AS bigint)) year_trade_amt, sum(cast(t.fee_amt AS bigint)) year_fee_amt, --sum(case when substr(cast(t.bdpms_etl_time as varchar),1,6)=regexp_replace(substr(cast(date_add('month',-1,current_date) as varchar),1,7),'-','') then cast(trade_amt as bigint) end) bm_trade_amt, sum(case when substr(cast(t.bdpms_etl_time as varchar),1,6)=regexp_replace(substr(cast(date_add('month',-1,date_add('day',-1,current_date)) as varchar),1,7),'-','') then cast(fee_amt as bigint) end) bm_fee_amt, --sum(case when substr(cast(t.bdpms_etl_time as varchar),1,8)=regexp_replace(substr(cast(date_add('day',-1,current_date) as varchar),1,10),'-','') then cast(trade_amt as bigint) end) day_trade_amt, sum(case when substr(cast(t.bdpms_etl_time as varchar),1,8)=regexp_replace(substr(cast(date_add('day',-1,current_date) as varchar),1,10),'-','') then cast(fee_amt as bigint) end) day_fee_amt, sum(case when substr(cast(t.bdpms_etl_time as varchar),1,8)=regexp_replace(substr(cast(date_add('day',-1,current_date) as varchar),1,10),'-','') and FEE_amt<>'0' then cast(trade_amt as bigint) end) day_ysr_trade_amt, sum(case when substr(cast(t.bdpms_etl_time as varchar),1,6)=regexp_replace(substr(cast(date_add('month',-1,date_add('day',-1,current_date)) as varchar),1,7),'-','') and FEE_amt<>'0' then cast(trade_amt as bigint) end) bm_ysr_trade_amt FROM ods_feecr_bdpms.t_fee_calculation_zengliang t WHERE t.bdpms_etl_time >= 20210101000000 AND t.bdpms_etl_time < 20220101000000 AND t.incr_col='UPDATED_AT' AND t.fee_flag = 'SUCCESS' AND t.usable_flag = 'USABLE' AND t.solution_no IN ( 'PS1' , 'PS11018' , 'PS11210' , 'PS11666' , 'PS11286' , 'PS11208' , 'PS10602' , 'PS10404' , 'PS10402' , 'PS11700' , 'PS11256' , 'PS11024' , 'PS10418' , 'PS11850' , 'PS11848') GROUP BY fee_party) a LEFT JOIN (SELECT distinct merchant_id, prov_nm FROM cdm_dsj.dim_merchant_basic_info_df WHERE day_id=cast(date_add('day',-1,current_date) as varchar)) b ON a.fee_party=b.merchant_id GROUP BY b.prov_nm) a left join (select b.prov_nm,sum(a.equity_use_amt)/1000000.0000 bm_equity_amt from (select merchant_id,sum(equity_use_amt) equity_use_amt from cdm_dsj.dwd_marketing_use_di where substr(day_id,1,7)=substr(cast(date_add('month',-1,date_add('day',-1,current_date)) as varchar),1,7) --and dept_cd='20022' AND solution_cd in ('PS1' , 'PS11018' , 'PS11210' , 'PS11666' , 'PS11286' , 'PS11208' , 'PS10602' , 'PS10404' , 'PS10402' , 'PS11700' , 'PS11256' , 'PS11024' , 'PS10418' , 'PS11850' , 'PS11848') GROUP BY merchant_id) a LEFT JOIN (SELECT merchant_id, prov_nm FROM cdm_dsj.dim_merchant_basic_info_df WHERE day_id=cast(date_add('day',-1,current_date) as varchar)) b on a.merchant_id=b.merchant_id GROUP BY b.prov_nm) b on a.prov_nm=b.prov_nm left join (select b.prov_nm,sum(a.equity_use_amt)/1000000.0000 day_equity_amt from (select merchant_id,sum(equity_use_amt) equity_use_amt from cdm_dsj.dwd_marketing_use_di where day_id=cast(date_add('day',-1,current_date) as varchar) --and dept_cd='20022' AND solution_cd in ('PS1' , 'PS11018' , 'PS11210' , 'PS11666' , 'PS11286' , 'PS11208' , 'PS10602' , 'PS10404' , 'PS10402' , 'PS11700' , 'PS11256' , 'PS11024' , 'PS10418' , 'PS11850' , 'PS11848') GROUP BY merchant_id) a LEFT JOIN (SELECT merchant_id, prov_nm FROM cdm_dsj.dim_merchant_basic_info_df WHERE day_id=cast(date_add('day',-1,current_date) as varchar)) b on a.merchant_id=b.merchant_id GROUP BY b.prov_nm) c on a.prov_nm=c.prov_nm left join (select prov_nm, count(distinct fee_party) yj_cnt from (select b.prov_nm,a.fee_party from (SELECT fee_party, sum(cast(t.trade_amt AS bigint)) year_trade_amt FROM ods_feecr_bdpms.t_fee_calculation_zengliang t WHERE t.bdpms_etl_time >=20210101000000 AND t.incr_col='UPDATED_AT' AND t.fee_flag = 'SUCCESS' AND t.usable_flag = 'USABLE' AND t.solution_no IN ( 'PS1' , 'PS11018' , 'PS11210' , 'PS11666' , 'PS11286' , 'PS11208' , 'PS10602' , 'PS10404' , 'PS10402' , 'PS11700' , 'PS11256' , 'PS11024' , 'PS10418' , 'PS11850' , 'PS11848' ) GROUP BY fee_party order by year_trade_amt desc limit 10000) a LEFT JOIN (SELECT merchant_id, prov_nm FROM cdm_dsj.dim_merchant_basic_info_df WHERE day_id=cast(date_add('day',-1,current_date) as varchar)) b on a.fee_party=b.merchant_id where a.fee_party not in (SELECT fee_party FROM ods_feecr_bdpms.t_fee_calculation_zengliang t WHERE t.bdpms_etl_time =cast(concat(regexp_replace(cast(date_add('day',-1,CURRENT_DATE) as varchar),'-',''),'000000') as bigint) AND t.incr_col='UPDATED_AT' AND t.fee_flag = 'SUCCESS' AND t.usable_flag = 'USABLE' AND t.solution_no IN ( 'PS1' , 'PS11018' , 'PS11210' , 'PS11666' , 'PS11286' , 'PS11208' , 'PS10602' , 'PS10404' , 'PS10402' , 'PS11700' , 'PS11256' , 'PS11024' , 'PS10418' , 'PS11850' , 'PS11848' ) ) ) group by prov_nm ) d on a.prov_nm=d.prov_nm left join (SELECT A.prov_nm, cast(substr(cast(date_add('day',-1,cast(concat(substr(cast(date_add('day',-1,current_date) as varchar),1,7),'-01')as date))as varchar),9,10)as bigint) before_month_days, count(DISTINCT a.merchant_id) new30_cnt, count(DISTINCT b.merchant_id) new30_trans_cnt, count( case when create_tm=cast(date_add('day',-1,current_date) as varchar) then A.merchant_id end ) day_new_cnt FROM (SELECT prov_nm, merchant_id, substr(cast(create_tm as varchar),1,10) create_tm FROM cdm_dsj.dim_merchant_basic_info_df WHERE create_tm>=cast(date_add('day',-30,current_date) as varchar) AND day_id=cast(date_add('day',-1,current_date) as varchar) and stat_nm='可用' and owned_group_cd='11006' and merchant_id in (select distinct merchant_id from cdm_dsj.dwd_merchant_stock_agmt_df where day_id=cast(date_add('day',-1,current_date)as varchar) and solution_cd in('PS1', 'PS11018', 'PS11210', 'PS11666', 'PS11286', 'PS11208', 'PS10602', 'PS10404', 'PS10402', 'PS11700', 'PS11256', 'PS11024', 'PS10418', 'PS11850', 'PS11848' )) ) a LEFT JOIN (SELECT DISTINCT merchant_id FROM dm_o2o_bdpms.pmt_merchant_tran_o2o WHERE day_id>=cast(date_add('day',-30,CURRENT_DATE)AS varchar)) b ON a.merchant_id=b.merchant_id GROUP BY prov_nm ) e on a.prov_nm=e.prov_nm left join (select prov_nm, sum(a.year_trade_amt)/1000000.0000 year_trade_amt, sum(a.bm_trade_amt)/1000000.0000 bm_trade_amt, sum(a.day_trade_amt)/1000000.0000 day_trade_amt from (select merchant_id, sum(case when substr(day_id,1,4)='2021' then trans_amt end) year_trade_amt, sum(case when substr(day_id,1,7)=substr(cast(date_add('month',-1,date_add('day',-1,current_date))as varchar),1,7) then trans_amt end) bm_trade_amt, sum(case when day_id=cast(date_add('day',-1,current_date)as varchar) then trans_amt end) day_trade_amt from dm_o2o_bdpms.pmt_merchant_tran_o2o where day_id>='2021-01-01' group by merchant_id) a left join (select merchant_id,prov_nm from cdm_dsj.dim_merchant_basic_info_df where day_id=cast(date_add('day',-1,current_date)as varchar))b on a.merchant_id=b.merchant_id group by b.prov_nm) f on a.prov_nm=f.prov_nm