-- ====================================== -- report_市场费用_费用执行 -- ====================================== select '当期' time_type, ${IF(sPeriod=1,"to_char(stat_date,'yyyy-MM') AS stat_time,","")} ${IF(sPeriod=2,"CASE WHEN MONTH(stat_date)<=3 THEN concat(left(stat_date,4),'-1') WHEN MONTH(stat_date)<=6 AND MONTH(stat_date)>=4 THEN concat(left(stat_date,4),'-2') WHEN MONTH(stat_date)<=9 AND MONTH(stat_date)>=7 THEN concat(left(stat_date,4),'-3') WHEN MONTH(stat_date)<=12 AND MONTH(stat_date)>=10 THEN concat(left(stat_date,4),'-4') ELSE NULL END AS stat_time,","")} ${IF(sPeriod=3,"to_char(stat_date,'yyyy') AS stat_time,","")} bu_name, sum(amt) AS amt from dm.v_sal_market_indi_month a where (indi_type='费用核报') ${IF(LEN(sBu)=0,"","AND bu_code IN ('"+sBu+"')")} ${IF(LEN(sRegion)=0,"","AND region_code IN ('"+sRegion+"')")} AND to_char(stat_date,'yyyy-MM')>='${sStart_mon}' AND to_char(stat_date,'yyyy-MM')<='${sEnd_mon}' AND EXISTS ( SELECT 1 FROM dm.dm_bi_user_permisson WHERE bi_user = '${fine_username}' -- 替换为fine_username AND per_model IN ('all','sal','fim') AND ( is_all = 1 OR per_code = a.bu_code OR per_code = a.region_code OR per_code = a.office_code OR per_code = a.city_unit_code ) ) GROUP BY stat_time, bu_name UNION ALL select '同期' time_type, ${IF(sPeriod=1,"to_char(stat_date,'yyyy-MM') AS stat_time,","")} ${IF(sPeriod=2,"CASE WHEN MONTH(stat_date)<=3 THEN concat(left(stat_date,4),'-1') WHEN MONTH(stat_date)<=6 AND MONTH(stat_date)>=4 THEN concat(left(stat_date,4),'-2') WHEN MONTH(stat_date)<=9 AND MONTH(stat_date)>=7 THEN concat(left(stat_date,4),'-3') WHEN MONTH(stat_date)<=12 AND MONTH(stat_date)>=10 THEN concat(left(stat_date,4),'-4') ELSE NULL END AS stat_time,","")} ${IF(sPeriod=3,"to_char(stat_date,'yyyy') AS stat_time,","")} bu_name, sum(amt) AS amt from dm.v_sal_market_indi_month a where (indi_type='费用核报') ${IF(LEN(sBu)=0,"","AND bu_code IN ('"+sBu+"')")} ${IF(LEN(sRegion)=0,"","AND region_code IN ('"+sRegion+"')")} AND to_char(stat_date,'yyyy-MM')>='${pPrevious_s}' AND to_char(stat_date,'yyyy-MM')<='${pPrevious_e}' AND EXISTS ( SELECT 1 FROM dm.dm_bi_user_permisson WHERE bi_user = '${fine_username}' -- 替换为fine_username AND per_model IN ('all','sal','fim') AND ( is_all = 1 OR per_code = a.bu_code OR per_code = a.region_code OR per_code = a.office_code OR per_code = a.city_unit_code ) ) GROUP BY stat_time, bu_name -- ====================================== -- report_市场费用_费用预算 -- ====================================== select '当期' time_type, ${IF(sPeriod=1,"to_char(stat_date,'yyyy-MM') AS stat_time,","")} ${IF(sPeriod=2,"CASE WHEN MONTH(stat_date)<=3 THEN concat(left(stat_date,4),'-1') WHEN MONTH(stat_date)<=6 AND MONTH(stat_date)>=4 THEN concat(left(stat_date,4),'-2') WHEN MONTH(stat_date)<=9 AND MONTH(stat_date)>=7 THEN concat(left(stat_date,4),'-3') WHEN MONTH(stat_date)<=12 AND MONTH(stat_date)>=10 THEN concat(left(stat_date,4),'-4') ELSE NULL END AS stat_time,","")} ${IF(sPeriod=3,"to_char(stat_date,'yyyy') AS stat_time,","")} bu_name, sum(amt) AS amt from dm.v_sal_market_indi_month a where (indi_type='期初预算' OR indi_type='调整预算') ${IF(LEN(sBu)=0,"","AND bu_code IN ('"+sBu+"')")} ${IF(LEN(sRegion)=0,"","AND region_code IN ('"+sRegion+"')")} AND to_char(stat_date,'yyyy')='${YEAR(sEnd_mon)}' AND EXISTS ( SELECT 1 FROM dm.dm_bi_user_permisson WHERE bi_user = '${fine_username}' -- 替换为fine_username AND per_model IN ('all','sal','fim') AND ( is_all = 1 OR per_code = a.bu_code OR per_code = a.region_code OR per_code = a.office_code OR per_code = a.city_unit_code ) ) GROUP BY stat_time, bu_name UNION ALL select '同期' time_type, ${IF(sPeriod=1,"to_char(stat_date,'yyyy-MM') AS stat_time,","")} ${IF(sPeriod=2,"CASE WHEN MONTH(stat_date)<=3 THEN concat(left(stat_date,4),'-1') WHEN MONTH(stat_date)<=6 AND MONTH(stat_date)>=4 THEN concat(left(stat_date,4),'-2') WHEN MONTH(stat_date)<=9 AND MONTH(stat_date)>=7 THEN concat(left(stat_date,4),'-3') WHEN MONTH(stat_date)<=12 AND MONTH(stat_date)>=10 THEN concat(left(stat_date,4),'-4') ELSE NULL END AS stat_time,","")} ${IF(sPeriod=3,"to_char(stat_date,'yyyy') AS stat_time,","")} bu_name, sum(amt) AS amt from dm.v_sal_market_indi_month a where (indi_type='期初预算' OR indi_type='调整预算') ${IF(LEN(sBu)=0,"","AND bu_code IN ('"+sBu+"')")} ${IF(LEN(sRegion)=0,"","AND region_code IN ('"+sRegion+"')")} AND to_char(stat_date,'yyyy')='${YEAR(sEnd_mon)-1}' AND EXISTS ( SELECT 1 FROM dm.dm_bi_user_permisson WHERE bi_user = '${fine_username}' -- 替换为fine_username AND per_model IN ('all','sal','fim') AND ( is_all = 1 OR per_code = a.bu_code OR per_code = a.region_code OR per_code = a.office_code OR per_code = a.city_unit_code ) ) GROUP BY stat_time, bu_name -- ====================================== -- report_市场费用_方案规划 -- ====================================== select '当期' time_type, ${IF(sPeriod=1,"to_char(stat_date,'yyyy-MM') AS stat_time,","")} ${IF(sPeriod=2,"CASE WHEN MONTH(stat_date)<=3 THEN concat(left(stat_date,4),'-1') WHEN MONTH(stat_date)<=6 AND MONTH(stat_date)>=4 THEN concat(left(stat_date,4),'-2') WHEN MONTH(stat_date)<=9 AND MONTH(stat_date)>=7 THEN concat(left(stat_date,4),'-3') WHEN MONTH(stat_date)<=12 AND MONTH(stat_date)>=10 THEN concat(left(stat_date,4),'-4') ELSE NULL END AS stat_time,","")} ${IF(sPeriod=3,"to_char(stat_date,'yyyy') AS stat_time,","")} bu_name, sum(amt) AS amt from dm.v_sal_market_indi_month a where (indi_type='方案规划') ${IF(LEN(sBu)=0,"","AND bu_code IN ('"+sBu+"')")} ${IF(LEN(sRegion)=0,"","AND region_code IN ('"+sRegion+"')")} AND to_char(stat_date,'yyyy-MM')>='${sStart_mon}' AND to_char(stat_date,'yyyy-MM')<='${sEnd_mon}' AND EXISTS ( SELECT 1 FROM dm.dm_bi_user_permisson WHERE bi_user = '${fine_username}' -- 替换为fine_username AND per_model IN ('all','sal','fim') AND ( is_all = 1 OR per_code = a.bu_code OR per_code = a.region_code OR per_code = a.office_code OR per_code = a.city_unit_code ) ) GROUP BY stat_time, bu_name UNION ALL select '同期' time_type, ${IF(sPeriod=1,"to_char(stat_date,'yyyy-MM') AS stat_time,","")} ${IF(sPeriod=2,"CASE WHEN MONTH(stat_date)<=3 THEN concat(left(stat_date,4),'-1') WHEN MONTH(stat_date)<=6 AND MONTH(stat_date)>=4 THEN concat(left(stat_date,4),'-2') WHEN MONTH(stat_date)<=9 AND MONTH(stat_date)>=7 THEN concat(left(stat_date,4),'-3') WHEN MONTH(stat_date)<=12 AND MONTH(stat_date)>=10 THEN concat(left(stat_date,4),'-4') ELSE NULL END AS stat_time,","")} ${IF(sPeriod=3,"to_char(stat_date,'yyyy') AS stat_time,","")} bu_name, sum(amt) AS amt from dm.v_sal_market_indi_month a where (indi_type='方案规划') ${IF(LEN(sBu)=0,"","AND bu_code IN ('"+sBu+"')")} ${IF(LEN(sRegion)=0,"","AND region_code IN ('"+sRegion+"')")} AND to_char(stat_date,'yyyy-MM')>='${pPrevious_s}' AND to_char(stat_date,'yyyy-MM')<='${pPrevious_e}' AND EXISTS ( SELECT 1 FROM dm.dm_bi_user_permisson WHERE bi_user = '${fine_username}' -- 替换为fine_username AND per_model IN ('all','sal','fim') AND ( is_all = 1 OR per_code = a.bu_code OR per_code = a.region_code OR per_code = a.office_code OR per_code = a.city_unit_code ) ) GROUP BY stat_time, bu_name -- ====================================== -- report_市场费用_回款 -- ====================================== -- 事业部层级取数 ${if(sLevel=1,"","/*")} select '当期' time_type, ${IF(sPeriod=1,"to_char(stat_date,'yyyy-MM') AS stat_time,","")} ${IF(sPeriod=2,"CASE WHEN MONTH(stat_date)<=3 THEN concat(left(stat_date,4),'-1') WHEN MONTH(stat_date)<=6 AND MONTH(stat_date)>=4 THEN concat(left(stat_date,4),'-2') WHEN MONTH(stat_date)<=9 AND MONTH(stat_date)>=7 THEN concat(left(stat_date,4),'-3') WHEN MONTH(stat_date)<=12 AND MONTH(stat_date)>=10 THEN concat(left(stat_date,4),'-4') ELSE NULL END AS stat_time,","")} ${IF(sPeriod=3,"to_char(stat_date,'yyyy') AS stat_time,","")} replace(bu_name,'事业部','') AS bu_name, sum(amt_bu) AS amt from dm.v_sal_indicator_bu a where (indi_type='回款' OR indi_type='电商订单') ${IF(LEN(sBu)=0,"","AND bu_code IN ('"+sBu+"')")} AND to_char(stat_date,'yyyy-MM')>='${sStart_mon}' AND to_char(stat_date,'yyyy-MM')<='${sEnd_mon}' AND EXISTS ( SELECT 1 FROM dm.dm_bi_user_permisson WHERE bi_user = '${fine_username}' -- 替换为fine_username AND per_model IN ('all','sal','fim') AND ( is_all = 1 OR per_code = a.bu_code ) ) GROUP BY stat_time, bu_name --UNION ALL -- --select --'同期' time_type, --${IF(sPeriod=1,"to_char(stat_date,'yyyy-MM') AS stat_time,","")} --${IF(sPeriod=2,"CASE WHEN MONTH(stat_date)<=3 THEN concat(left(stat_date,4),'-1') --WHEN MONTH(stat_date)<=6 AND MONTH(stat_date)>=4 THEN concat(left(stat_date,4),'-2') --WHEN MONTH(stat_date)<=9 AND MONTH(stat_date)>=7 THEN concat(left(stat_date,4),'-3') --WHEN MONTH(stat_date)<=12 AND MONTH(stat_date)>=10 THEN concat(left(stat_date,4),'-4') --ELSE NULL --END AS stat_time,","")} --${IF(sPeriod=3,"to_char(stat_date,'yyyy') AS stat_time,","")} --replace(bu_name,'事业部','') AS bu_name, --sum(amt_bu) AS amt --from dm.v_sal_indicator_bu --where (indi_type='回款' OR indi_type='电商订单') --${IF(LEN(sBu)=0,"","AND bu_code IN ('"+sBu+"')")} --${IF(sPeriod=1,"AND stat_time>='"+pPrevious_s+"'","")} --${IF(sPeriod=1,"AND stat_time<='"+pPrevious_e+"'","")} --${IF(sPeriod=2,"AND stat_time>='"+pPrevious_s+"'","")} --${IF(sPeriod=2,"AND stat_time<='"+pPrevious_e+"'","")} --${IF(sPeriod=3,"AND stat_time>='"+pPrevious_s+"'","")} --${IF(sPeriod=3,"AND stat_time<='"+pPrevious_e+"'","")} --GROUP BY --stat_time, --bu_name ${if(sLevel=1,"","*/")} -- 事业部大区取数 ${if(sLevel=2,"","/*")} select '当期' time_type, ${IF(sPeriod=1,"to_char(stat_date,'yyyy-MM') AS stat_time,","")} ${IF(sPeriod=2,"CASE WHEN MONTH(stat_date)<=3 THEN concat(left(stat_date,4),'-1') WHEN MONTH(stat_date)<=6 AND MONTH(stat_date)>=4 THEN concat(left(stat_date,4),'-2') WHEN MONTH(stat_date)<=9 AND MONTH(stat_date)>=7 THEN concat(left(stat_date,4),'-3') WHEN MONTH(stat_date)<=12 AND MONTH(stat_date)>=10 THEN concat(left(stat_date,4),'-4') ELSE NULL END AS stat_time,","")} ${IF(sPeriod=3,"to_char(stat_date,'yyyy') AS stat_time,","")} replace(bu_name,'事业部','') AS bu_name, sum(amt_region) AS amt from dm.v_sal_indicator_region a where (indi_type='回款' OR indi_type='电商订单') AND to_char(stat_date,'yyyy-MM')>='${sStart_mon}' AND to_char(stat_date,'yyyy-MM')<='${sEnd_mon}' ${IF(LEN(sBu)=0,"","AND bu_code IN ('"+sBu+"')")} ${IF(LEN(sRegion)=0,"","AND region_code IN ('"+sRegion+"')")} AND EXISTS ( SELECT 1 FROM dm.dm_bi_user_permisson WHERE bi_user = '${fine_username}' -- 替换为fine_username AND per_model IN ('all','sal','fim') AND ( is_all = 1 OR per_code = a.bu_code ) ) GROUP BY stat_time, bu_name ${if(sLevel=2,"","*/")} -- ====================================== -- report_市场费用_出货 -- ====================================== -- 事业部层级取数 ${if(sLevel=1,"","/*")} select '当期' time_type, ${IF(sPeriod=1,"to_char(stat_date,'yyyy-MM') AS stat_time,","")} ${IF(sPeriod=2,"CASE WHEN MONTH(stat_date)<=3 THEN concat(left(stat_date,4),'-1') WHEN MONTH(stat_date)<=6 AND MONTH(stat_date)>=4 THEN concat(left(stat_date,4),'-2') WHEN MONTH(stat_date)<=9 AND MONTH(stat_date)>=7 THEN concat(left(stat_date,4),'-3') WHEN MONTH(stat_date)<=12 AND MONTH(stat_date)>=10 THEN concat(left(stat_date,4),'-4') ELSE NULL END AS stat_time,","")} ${IF(sPeriod=3,"to_char(stat_date,'yyyy') AS stat_time,","")} replace(bu_name,'事业部','') AS bu_name, sum(amt_bu) AS amt from dm.v_sal_indicator_bu a where (indi_type='出货' OR indi_type='电商订单') ${IF(LEN(sBu)=0,"","AND bu_code IN ('"+sBu+"')")} AND to_char(stat_date,'yyyy-MM')>='${sStart_mon}' AND to_char(stat_date,'yyyy-MM')<='${sEnd_mon}' AND EXISTS ( SELECT 1 FROM dm.dm_bi_user_permisson WHERE bi_user = '${fine_username}' -- 替换为fine_username AND per_model IN ('all','sal','fim') AND ( is_all = 1 OR per_code = a.bu_code ) ) GROUP BY stat_time, bu_name UNION ALL select '同期' time_type, ${IF(sPeriod=1,"to_char(stat_date,'yyyy-MM') AS stat_time,","")} ${IF(sPeriod=2,"CASE WHEN MONTH(stat_date)<=3 THEN concat(left(stat_date,4),'-1') WHEN MONTH(stat_date)<=6 AND MONTH(stat_date)>=4 THEN concat(left(stat_date,4),'-2') WHEN MONTH(stat_date)<=9 AND MONTH(stat_date)>=7 THEN concat(left(stat_date,4),'-3') WHEN MONTH(stat_date)<=12 AND MONTH(stat_date)>=10 THEN concat(left(stat_date,4),'-4') ELSE NULL END AS stat_time,","")} ${IF(sPeriod=3,"to_char(stat_date,'yyyy') AS stat_time,","")} replace(bu_name,'事业部','') AS bu_name, sum(amt_bu) AS amt from dm.v_sal_indicator_bu a where (indi_type='出货' OR indi_type='电商订单') ${IF(LEN(sBu)=0,"","AND bu_code IN ('"+sBu+"')")} AND to_char(stat_date,'yyyy-MM')>='${pPrevious_s}' AND to_char(stat_date,'yyyy-MM')<='${pPrevious_e}' AND EXISTS ( SELECT 1 FROM dm.dm_bi_user_permisson WHERE bi_user = '${fine_username}' -- 替换为fine_username AND per_model IN ('all','sal','fim') AND ( is_all = 1 OR per_code = a.bu_code ) ) GROUP BY stat_time, bu_name ${if(sLevel=1,"","*/")} -- 事业部大区取数 ${if(sLevel=2,"","/*")} select '当期' time_type, ${IF(sPeriod=1,"to_char(stat_date,'yyyy-MM') AS stat_time,","")} ${IF(sPeriod=2,"CASE WHEN MONTH(stat_date)<=3 THEN concat(left(stat_date,4),'-1') WHEN MONTH(stat_date)<=6 AND MONTH(stat_date)>=4 THEN concat(left(stat_date,4),'-2') WHEN MONTH(stat_date)<=9 AND MONTH(stat_date)>=7 THEN concat(left(stat_date,4),'-3') WHEN MONTH(stat_date)<=12 AND MONTH(stat_date)>=10 THEN concat(left(stat_date,4),'-4') ELSE NULL END AS stat_time,","")} ${IF(sPeriod=3,"to_char(stat_date,'yyyy') AS stat_time,","")} replace(bu_name,'事业部','') AS bu_name, sum(amt_region) AS amt from dm.v_sal_indicator_region a where (indi_type='出货' OR indi_type='电商订单') ${IF(LEN(sBu)=0,"","AND bu_code IN ('"+sBu+"')")} ${IF(LEN(sRegion)=0,"","AND region_code IN ('"+sRegion+"')")} AND to_char(stat_date,'yyyy-MM')>='${sStart_mon}' AND to_char(stat_date,'yyyy-MM')<='${sEnd_mon}' AND EXISTS ( SELECT 1 FROM dm.dm_bi_user_permisson WHERE bi_user = '${fine_username}' -- 替换为fine_username AND per_model IN ('all','sal','fim') AND ( is_all = 1 OR per_code = a.bu_code ) ) GROUP BY stat_time, bu_name UNION ALL select '同期' time_type, ${IF(sPeriod=1,"to_char(stat_date,'yyyy-MM') AS stat_time,","")} ${IF(sPeriod=2,"CASE WHEN MONTH(stat_date)<=3 THEN concat(left(stat_date,4),'-1') WHEN MONTH(stat_date)<=6 AND MONTH(stat_date)>=4 THEN concat(left(stat_date,4),'-2') WHEN MONTH(stat_date)<=9 AND MONTH(stat_date)>=7 THEN concat(left(stat_date,4),'-3') WHEN MONTH(stat_date)<=12 AND MONTH(stat_date)>=10 THEN concat(left(stat_date,4),'-4') ELSE NULL END AS stat_time,","")} ${IF(sPeriod=3,"to_char(stat_date,'yyyy') AS stat_time,","")} replace(bu_name,'事业部','') AS bu_name, sum(amt_region) AS amt from dm.v_sal_indicator_region a where (indi_type='出货' OR indi_type='电商订单') ${IF(LEN(sBu)=0,"","AND bu_code IN ('"+sBu+"')")} ${IF(LEN(sRegion)=0,"","AND region_code IN ('"+sRegion+"')")} AND to_char(stat_date,'yyyy-MM')>='${pPrevious_s}' AND to_char(stat_date,'yyyy-MM')<='${pPrevious_e}' AND EXISTS ( SELECT 1 FROM dm.dm_bi_user_permisson WHERE bi_user = '${fine_username}' -- 替换为fine_username AND per_model IN ('all','sal','fim') AND ( is_all = 1 OR per_code = a.bu_code ) ) GROUP BY stat_time, bu_name ${if(sLevel=2,"","*/")} -- ====================================== -- chart_市场费用_项目预算执行 -- ====================================== with tb as (select ${IF(sPeriod=1,"to_char(stat_date,'yyyy-MM') AS stat_time,","")} ${IF(sPeriod=2,"CASE WHEN MONTH(stat_date)<=3 THEN concat(left(stat_date,4),'-1') WHEN MONTH(stat_date)<=6 AND MONTH(stat_date)>=4 THEN concat(left(stat_date,4),'-2') WHEN MONTH(stat_date)<=9 AND MONTH(stat_date)>=7 THEN concat(left(stat_date,4),'-3') WHEN MONTH(stat_date)<=12 AND MONTH(stat_date)>=10 THEN concat(left(stat_date,4),'-4') ELSE NULL END AS stat_time,","")} ${IF(sPeriod=3,"to_char(stat_date,'yyyy') AS stat_time,","")} bu_name, fist_item, sum(amt) AS amt_ys, --预算金额 0 as amt_bx --执行金额 from dm.v_sal_market_indi_month a where (indi_type='期初预算' OR indi_type='调整预算') ${IF(LEN(sBu)=0,"","AND bu_code IN ('"+sBu+"')")} ${IF(LEN(sRegion)=0,"","AND region_code IN ('"+sRegion+"')")} AND to_char(stat_date,'yyyy')>='${YEAR(sEnd_mon)}' AND EXISTS ( SELECT 1 FROM dm.dm_bi_user_permisson WHERE bi_user = '${fine_username}' -- 替换为fine_username AND per_model IN ('all','sal','fim') AND ( is_all = 1 OR per_code = a.bu_code OR per_code = a.region_code OR per_code = a.office_code OR per_code = a.city_unit_code ) ) GROUP BY stat_time, bu_name, fist_item UNION ALL select ${IF(sPeriod=1,"to_char(stat_date,'yyyy-MM') AS stat_time,","")} ${IF(sPeriod=2,"CASE WHEN MONTH(stat_date)<=3 THEN concat(left(stat_date,4),'-1') WHEN MONTH(stat_date)<=6 AND MONTH(stat_date)>=4 THEN concat(left(stat_date,4),'-2') WHEN MONTH(stat_date)<=9 AND MONTH(stat_date)>=7 THEN concat(left(stat_date,4),'-3') WHEN MONTH(stat_date)<=12 AND MONTH(stat_date)>=10 THEN concat(left(stat_date,4),'-4') ELSE NULL END AS stat_time,","")} ${IF(sPeriod=3,"to_char(stat_date,'yyyy') AS stat_time,","")} bu_name, fist_item, 0 as amt_ys, --预算金额 sum(amt) AS amt_bx --执行金额 from dm.v_sal_market_indi_month a where (indi_type='费用核报') ${IF(LEN(sBu)=0,"","AND bu_code IN ('"+sBu+"')")} ${IF(LEN(sRegion)=0,"","AND region_code IN ('"+sRegion+"')")} AND to_char(stat_date,'yyyy-MM')>='${sStart_mon}' AND to_char(stat_date,'yyyy-MM')<='${sEnd_mon}' AND EXISTS ( SELECT 1 FROM dm.dm_bi_user_permisson WHERE bi_user = '${fine_username}' -- 替换为fine_username AND per_model IN ('all','sal','fim') AND ( is_all = 1 OR per_code = a.bu_code OR per_code = a.region_code OR per_code = a.office_code OR per_code = a.city_unit_code ) ) GROUP BY stat_time, bu_name, fist_item ) ,tb1 AS (select fist_item, sum(amt_ys) as sum_amt_ys, --预算金额 sum(amt_bx) AS sum_amt_bx --执行金额 from tb GROUP BY fist_item ) ,tb2 as (select sum(amt_ys) as amt_ys1 from tb ) select a.*, b.amt_ys1, ${if(pDim_market=1,"'执行率' AS type,","'占比' AS type,")} ${if(pDim_market=1,"case when a.sum_amt_ys = 0 THEN 0 else a.sum_amt_bx/a.sum_amt_ys end AS rate","CASE WHEN b.amt_ys1 = 0 THEN 0 ELSE a.sum_amt_ys/b.amt_ys1 END AS rate")} from tb1 a left join tb2 b ON 1=1 -- ====================================== -- chart_市场费用_三级项目预算执行top10 -- ====================================== with tb as (select ${IF(sPeriod=1,"to_char(stat_date,'yyyy-MM') AS stat_time,","")} ${IF(sPeriod=2,"CASE WHEN MONTH(stat_date)<=3 THEN concat(left(stat_date,4),'-1') WHEN MONTH(stat_date)<=6 AND MONTH(stat_date)>=4 THEN concat(left(stat_date,4),'-2') WHEN MONTH(stat_date)<=9 AND MONTH(stat_date)>=7 THEN concat(left(stat_date,4),'-3') WHEN MONTH(stat_date)<=12 AND MONTH(stat_date)>=10 THEN concat(left(stat_date,4),'-4') ELSE NULL END AS stat_time,","")} ${IF(sPeriod=3,"to_char(stat_date,'yyyy') AS stat_time,","")} bu_name, fist_item, cost_item, pay_way, sum(amt) AS amt_ys, --预算金额 0 as amt_bx --执行金额 from dm.v_sal_market_indi_month a where (indi_type='期初预算' OR indi_type='调整预算') ${IF(LEN(sBu)=0,"","AND bu_code IN ('"+sBu+"')")} ${IF(LEN(sRegion)=0,"","AND region_code IN ('"+sRegion+"')")} AND to_char(stat_date,'yyyy')='${YEAR(sEnd_mon)}' AND EXISTS ( SELECT 1 FROM dm.dm_bi_user_permisson WHERE bi_user = '${fine_username}' -- 替换为fine_username AND per_model IN ('all','sal','fim') AND ( is_all = 1 OR per_code = a.bu_code OR per_code = a.region_code OR per_code = a.office_code OR per_code = a.city_unit_code ) ) GROUP BY stat_time, bu_name, fist_item, cost_item, pay_way UNION ALL select ${IF(sPeriod=1,"to_char(stat_date,'yyyy-MM') AS stat_time,","")} ${IF(sPeriod=2,"CASE WHEN MONTH(stat_date)<=3 THEN concat(left(stat_date,4),'-1') WHEN MONTH(stat_date)<=6 AND MONTH(stat_date)>=4 THEN concat(left(stat_date,4),'-2') WHEN MONTH(stat_date)<=9 AND MONTH(stat_date)>=7 THEN concat(left(stat_date,4),'-3') WHEN MONTH(stat_date)<=12 AND MONTH(stat_date)>=10 THEN concat(left(stat_date,4),'-4') ELSE NULL END AS stat_time,","")} ${IF(sPeriod=3,"to_char(stat_date,'yyyy') AS stat_time,","")} bu_name, fist_item, cost_item, pay_way, 0 as amt_ys, --预算金额 sum(amt) AS amt_bx --执行金额 from dm.v_sal_market_indi_month a where (indi_type='费用核报') ${IF(LEN(sRegion)=0,"","AND region_code IN ('"+sRegion+"')")} ${IF(LEN(sBu)=0,"","AND bu_code IN ('"+sBu+"')")} AND to_char(stat_date,'yyyy-MM')>='${sStart_mon}' AND to_char(stat_date,'yyyy-MM')<='${sEnd_mon}' AND EXISTS ( SELECT 1 FROM dm.dm_bi_user_permisson WHERE bi_user = '${fine_username}' -- 替换为fine_username AND per_model IN ('all','sal','fim') AND ( is_all = 1 OR per_code = a.bu_code OR per_code = a.region_code OR per_code = a.office_code OR per_code = a.city_unit_code ) ) GROUP BY stat_time, bu_name, fist_item, cost_item, pay_way ) ,tb1 AS (select cost_item, sum(amt_ys) as sum_amt_ys, --预算金额 sum(amt_bx) AS sum_amt_bx --执行金额 from tb GROUP BY cost_item ) select * from tb1 ORDER BY sum_amt_bx desc limit 10 -- ====================================== -- chart_市场费用_支付方式占比 -- ====================================== with tb as ( --select --${IF(sPeriod=1,"to_char(stat_date,'yyyy-MM') AS stat_time,","")} --${IF(sPeriod=2,"CASE WHEN MONTH(stat_date)<=3 THEN concat(left(stat_date,4),'-1') --WHEN MONTH(stat_date)<=6 AND MONTH(stat_date)>=4 THEN concat(left(stat_date,4),'-2') --WHEN MONTH(stat_date)<=9 AND MONTH(stat_date)>=7 THEN concat(left(stat_date,4),'-3') --WHEN MONTH(stat_date)<=12 AND MONTH(stat_date)>=10 THEN concat(left(stat_date,4),'-4') --ELSE NULL --END AS stat_time,","")} --${IF(sPeriod=3,"to_char(stat_date,'yyyy') AS stat_time,","")} --bu_name, --fist_item, --cost_item, --pay_way, --sum(amt) AS amt_ys, --预算金额 --0 as amt_bx --执行金额 --from dm.v_sal_market_indi_month --where (indi_type='期初预算' OR indi_type='调整预算') --${IF(LEN(sBu)=0,"","AND bu_code IN ('"+sBu+"')")} --${IF(sPeriod=1,"AND stat_time>='"+sStart_ym+"'","")} --${IF(sPeriod=1,"AND stat_time<='"+sEnd_ym+"'","")} --${IF(sPeriod=2,"AND stat_time>='"+sStart_yq+"'","")} --${IF(sPeriod=2,"AND stat_time<='"+sEnd_yq+"'","")} --${IF(sPeriod=3,"AND stat_time>='"+sStart_yy+"'","")} --${IF(sPeriod=3,"AND stat_time<='"+sEnd_yy+"'","")} --GROUP BY --stat_time, --bu_name, --fist_item, --cost_item, --pay_way --UNION ALL select ${IF(sPeriod=1,"to_char(stat_date,'yyyy-MM') AS stat_time,","")} ${IF(sPeriod=2,"CASE WHEN MONTH(stat_date)<=3 THEN concat(left(stat_date,4),'-1') WHEN MONTH(stat_date)<=6 AND MONTH(stat_date)>=4 THEN concat(left(stat_date,4),'-2') WHEN MONTH(stat_date)<=9 AND MONTH(stat_date)>=7 THEN concat(left(stat_date,4),'-3') WHEN MONTH(stat_date)<=12 AND MONTH(stat_date)>=10 THEN concat(left(stat_date,4),'-4') ELSE NULL END AS stat_time,","")} ${IF(sPeriod=3,"to_char(stat_date,'yyyy') AS stat_time,","")} bu_name, fist_item, cost_item, pay_way, 0 as amt_ys, --预算金额 sum(amt) AS amt_bx --执行金额 from dm.v_sal_market_indi_month a where (indi_type='费用核报') ${IF(LEN(sBu)=0,"","AND bu_code IN ('"+sBu+"')")} ${IF(LEN(sRegion)=0,"","AND region_code IN ('"+sRegion+"')")} AND to_char(stat_date,'yyyy-MM')>='${sStart_mon}' AND to_char(stat_date,'yyyy-MM')<='${sEnd_mon}' AND EXISTS ( SELECT 1 FROM dm.dm_bi_user_permisson WHERE bi_user = '${fine_username}' -- 替换为fine_username AND per_model IN ('all','sal','fim') AND ( is_all = 1 OR per_code = a.bu_code OR per_code = a.region_code OR per_code = a.office_code OR per_code = a.city_unit_code ) ) GROUP BY stat_time, bu_name, fist_item, cost_item, pay_way ) select stat_time, bu_name, fist_item, cost_item, pay_way, sum(amt_ys) as sum_amt_ys, --预算金额 sum(amt_bx) AS sum_amt_bx --执行金额 from tb GROUP BY stat_time, bu_name, fist_item, cost_item, pay_way -- ====================================== -- chart_市场费用_费效比事业部 -- ====================================== -- 事业部层级取数 ${if(sLevel=1,"","/*")} with dda as ( select deal_code, bu_code, max(city_unit_code) as city_unit_code, max(deal_type) as deal_type, max(deal_star) as deal_star, min(is_new) as is_new, max(market_type) as market_type from dwr.dim_dealer_administer where enabled_status='1' and bu_code!='0202/0209' and city_unit_code!='0202/02123801001' group by deal_code,bu_code ),cop as ( select nvl(dm.fa_code,a.deal_code) as deal_code, a.bu_code, case when '在合作'=any(array_agg(distinct a.deal_status)) then '有效经销商' when '无往来'=any(array_agg(distinct a.deal_status)) then '休眠经销商' when '待终止'=any(array_agg(distinct a.deal_status)) then '待终止经销商' when '已终止'=any(array_agg(distinct a.deal_status)) then '已终止经销商' end as deal_status from dm.dm_cus_coop_info a left join sdi_hzg.dealer_mapping dm on a.deal_code = dm.code and a.bu_code = decode(dm.bu_code,'BU_ALL',a.bu_code,dm.bu_code) and dm.data_status = 1 where exists ( select 1 from ( select max(stat_date) as stat_date from dm.dm_cus_coop_info where to_char(stat_date,'yyyy')='${YEAR(sEnd_mon)}' group by to_char(stat_date,'yyyy') ) c where a.stat_date=c.stat_date ) group by nvl(dm.fa_code,a.deal_code), a.bu_code ),tmp as ( select a.indi_type, ${IF(sPeriod=1,"to_char(stat_date,'yyyy-MM') AS stat_time,","")} ${IF(sPeriod=2,"CASE WHEN MONTH(stat_date)<=3 THEN concat(left(stat_date,4),'-1') WHEN MONTH(stat_date)<=6 AND MONTH(stat_date)>=4 THEN concat(left(stat_date,4),'-2') WHEN MONTH(stat_date)<=9 AND MONTH(stat_date)>=7 THEN concat(left(stat_date,4),'-3') WHEN MONTH(stat_date)<=12 AND MONTH(stat_date)>=10 THEN concat(left(stat_date,4),'-4') ELSE NULL END AS stat_time,","")} ${IF(sPeriod=3,"to_char(stat_date,'yyyy') AS stat_time,","")} decode(a.deal_code,'555555',a.src_deal_code,a.deal_code) as deal_code, a.bu_code, replace(dep.dept_name,'事业部','') as bu_name, max(a.city_unit_code) as city_unit_code, sum(amt_dealer)/10000 as amt from dm.dm_sal_indicator_day a left join dwr.dim_department dep on a.bu_code=dep.dept_code where indi_type ='回款' and stat_date>=date'2024-01-01' and a.src_deal_code not in('271827','270335','618241') ${IF(LEN(sBu)=0,"","AND bu_code IN ('"+sBu+"')")} AND to_char(stat_date,'yyyy-MM')>='${sStart_mon}' AND to_char(stat_date,'yyyy-MM')<='${sEnd_mon}' AND EXISTS ( SELECT 1 FROM dm.dm_bi_user_permisson WHERE bi_user = '${fine_username}' -- 替换为fine_username AND per_model IN ('all','sal','fim') AND ( is_all = 1 OR per_code = a.bu_code OR per_code = a.region_code OR per_code = a.office_code OR per_code = a.city_unit_code ) ) group by a.indi_type, stat_time, decode(a.deal_code,'555555',a.src_deal_code,a.deal_code), a.bu_code, replace(dep.dept_name,'事业部','') union all SELECT '报销' as indi_type, ${IF(sPeriod=1,"to_char(stat_date,'yyyy-MM') AS stat_time,","")} ${IF(sPeriod=2,"CASE WHEN MONTH(stat_date)<=3 THEN concat(left(stat_date,4),'-1') WHEN MONTH(stat_date)<=6 AND MONTH(stat_date)>=4 THEN concat(left(stat_date,4),'-2') WHEN MONTH(stat_date)<=9 AND MONTH(stat_date)>=7 THEN concat(left(stat_date,4),'-3') WHEN MONTH(stat_date)<=12 AND MONTH(stat_date)>=10 THEN concat(left(stat_date,4),'-4') ELSE NULL END AS stat_time,","")} ${IF(sPeriod=3,"to_char(stat_date,'yyyy') AS stat_time,","")} nvl(d.deal_code,a.office_name) as deal_code, a.bu_code, replace(dep.dept_name,'事业部','') as bu_name, max(case when a.city_unit_code in ('0202/021244','0202/021228','0202/021230','0202/021229', '0202/0212','0202/021240','0202/02123801001') then '0202/0212000101' when a.city_unit_code in ('0202/022502','0202/022503','0202/022504','0202/022511','0202/0225') then '0202/0225090101' when a.city_unit_code in ('0202/021508','0202/021509','0202/021513','0202/022605', '0202/022602','0202/022603','0202/022604','0202/021626', '0202/021627','0202/021624','0202/0215','0202/0216','0202/0226') then '0202/0226110101' else a.city_unit_code end) as city_unit_code, sum(a.amt) as amt FROM dm.v_sal_market_indi_month a LEFT JOIN dwr.dim_department dep ON a.bu_code= dep.dept_code left join sdi_hzg.dealer_mapping dm on a.deal_code=dm.code and a.bu_code = decode(dm.bu_code,'BU_ALL',a.bu_code,dm.bu_code) and dm.data_status=1 and dm.fa_code!='555555' left join dwr.dim_dealer d on coalesce(dm.fa_code,a.deal_code)=d.deal_code WHERE a.indi_type = '费用核报' and to_char(a.stat_date,'yyyy')>='2024' AND to_char(stat_date,'yyyy-MM')>='${sStart_mon}' AND to_char(stat_date,'yyyy-MM')<='${sEnd_mon}' AND EXISTS ( SELECT 1 FROM dm.dm_bi_user_permisson WHERE bi_user = '${fine_username}' -- 替换为fine_username AND per_model IN ('all','sal','fim') AND ( is_all = 1 OR per_code = a.bu_code OR per_code = a.region_code OR per_code = a.office_code OR per_code = a.city_unit_code ) ) group by stat_time, nvl(d.deal_code,a.office_name), a.bu_code, replace(dep.dept_name,'事业部','') ) ,deal AS ( select indi_type, d.deal_code, COALESCE(d.deal_name,tmp.deal_code,dd.thrd_dept_name) as deal_name, dd.fist_dept_code as bu_code, tmp.bu_name, amt from tmp left join dda on tmp.deal_code=dda.deal_code and tmp.bu_code=dda.bu_code left join cop on tmp.deal_code=cop.deal_code and tmp.bu_code=cop.bu_code left join dwr.dim_dealer d on tmp.deal_code=d.deal_code left join dwr.dim_department dd on coalesce(dda.city_unit_code,tmp.city_unit_code)=dd.dept_code ) ,tb_sum AS (SELECT replace(bu_name,'推进部','') as bu_name, sum(amt) as amt_hk, 0 AS amt_bx from deal a where 1=1 AND bu_name!='公司总部' and indi_type='回款' ${if(len(sBu)=0,"","AND a.bu_code IN ('"+sBu+"')")} group by bu_name UNION ALL SELECT replace(bu_name,'推进部','') as bu_name, 0 AS amt_hk, sum(amt) as amt_bx from deal a where 1=1 and bu_name!='公司总部' and indi_type='报销' ${if(len(sBu)=0,"","AND a.bu_code IN ('"+sBu+"')")} group by bu_name ) select bu_name,sum(amt_hk) AS amt_huik,sum(amt_bx) AS amt_baox,sum(amt_bx)/sum(amt_hk) AS rate from tb_sum group by bu_name ${if(sLevel=1,"","*/")} -- 事业部大区层级 ${if(sLevel=2,"","/*")} with dda as ( select deal_code, bu_code, max(city_unit_code) as city_unit_code, max(deal_type) as deal_type, max(deal_star) as deal_star, min(is_new) as is_new, max(market_type) as market_type from dwr.dim_dealer_administer where enabled_status='1' and bu_code!='0202/0209' and city_unit_code!='0202/02123801001' group by deal_code,bu_code ),cop as ( select nvl(dm.fa_code,a.deal_code) as deal_code, a.bu_code, case when '在合作'=any(array_agg(distinct a.deal_status)) then '有效经销商' when '无往来'=any(array_agg(distinct a.deal_status)) then '休眠经销商' when '待终止'=any(array_agg(distinct a.deal_status)) then '待终止经销商' when '已终止'=any(array_agg(distinct a.deal_status)) then '已终止经销商' end as deal_status from dm.dm_cus_coop_info a left join sdi_hzg.dealer_mapping dm on a.deal_code = dm.code and a.bu_code = decode(dm.bu_code,'BU_ALL',a.bu_code,dm.bu_code) and dm.data_status = 1 where exists ( select 1 from ( select max(stat_date) as stat_date from dm.dm_cus_coop_info where to_char(stat_date,'yyyy')='${YEAR(sEnd_mon)}' group by to_char(stat_date,'yyyy') ) c where a.stat_date=c.stat_date ) group by nvl(dm.fa_code,a.deal_code), a.bu_code ),tmp as ( select a.indi_type, ${IF(sPeriod=1,"to_char(stat_date,'yyyy-MM') AS stat_time,","")} ${IF(sPeriod=2,"CASE WHEN MONTH(stat_date)<=3 THEN concat(left(stat_date,4),'-1') WHEN MONTH(stat_date)<=6 AND MONTH(stat_date)>=4 THEN concat(left(stat_date,4),'-2') WHEN MONTH(stat_date)<=9 AND MONTH(stat_date)>=7 THEN concat(left(stat_date,4),'-3') WHEN MONTH(stat_date)<=12 AND MONTH(stat_date)>=10 THEN concat(left(stat_date,4),'-4') ELSE NULL END AS stat_time,","")} ${IF(sPeriod=3,"to_char(stat_date,'yyyy') AS stat_time,","")} decode(a.deal_code,'555555',a.src_deal_code,a.deal_code) as deal_code, a.bu_code, replace(dep.dept_name,'事业部','') as bu_name, dep1.dept_name AS region_name, max(a.city_unit_code) as city_unit_code, sum(amt_dealer)/10000 as amt from dm.dm_sal_indicator_day a left join dwr.dim_department dep on a.bu_code=dep.dept_code left join dwr.dim_department dep1 on a.region_code=dep1.dept_code where indi_type ='回款' and stat_date>=date'2024-01-01' and a.src_deal_code not in('271827','270335','618241') ${IF(LEN(sBu)=0,"","AND bu_code IN ('"+sBu+"')")} AND to_char(stat_date,'yyyy-MM')>='${sStart_mon}' AND to_char(stat_date,'yyyy-MM')<='${sEnd_mon}' AND EXISTS ( SELECT 1 FROM dm.dm_bi_user_permisson WHERE bi_user = '${fine_username}' -- 替换为fine_username AND per_model IN ('all','sal','fim') AND ( is_all = 1 OR per_code = a.bu_code OR per_code = a.region_code OR per_code = a.office_code OR per_code = a.city_unit_code ) ) group by a.indi_type, stat_time, decode(a.deal_code,'555555',a.src_deal_code,a.deal_code), a.bu_code, replace(dep.dept_name,'事业部',''), dep1.dept_name union all SELECT '报销' as indi_type, ${IF(sPeriod=1,"to_char(stat_date,'yyyy-MM') AS stat_time,","")} ${IF(sPeriod=2,"CASE WHEN MONTH(stat_date)<=3 THEN concat(left(stat_date,4),'-1') WHEN MONTH(stat_date)<=6 AND MONTH(stat_date)>=4 THEN concat(left(stat_date,4),'-2') WHEN MONTH(stat_date)<=9 AND MONTH(stat_date)>=7 THEN concat(left(stat_date,4),'-3') WHEN MONTH(stat_date)<=12 AND MONTH(stat_date)>=10 THEN concat(left(stat_date,4),'-4') ELSE NULL END AS stat_time,","")} ${IF(sPeriod=3,"to_char(stat_date,'yyyy') AS stat_time,","")} nvl(d.deal_code,a.office_name) as deal_code, a.bu_code, replace(dep.dept_name,'事业部','') as bu_name, dep1.dept_name AS region_name, max(case when a.city_unit_code in ('0202/021244','0202/021228','0202/021230','0202/021229', '0202/0212','0202/021240','0202/02123801001') then '0202/0212000101' when a.city_unit_code in ('0202/022502','0202/022503','0202/022504','0202/022511','0202/0225') then '0202/0225090101' when a.city_unit_code in ('0202/021508','0202/021509','0202/021513','0202/022605', '0202/022602','0202/022603','0202/022604','0202/021626', '0202/021627','0202/021624','0202/0215','0202/0216','0202/0226') then '0202/0226110101' else a.city_unit_code end) as city_unit_code, sum(a.amt) as amt FROM dm.v_sal_market_indi_month a LEFT JOIN dwr.dim_department dep ON a.bu_code= dep.dept_code left join dwr.dim_department dep1 on a.region_code=dep1.dept_code left join sdi_hzg.dealer_mapping dm on a.deal_code=dm.code and a.bu_code = decode(dm.bu_code,'BU_ALL',a.bu_code,dm.bu_code) and dm.data_status=1 and dm.fa_code!='555555' left join dwr.dim_dealer d on coalesce(dm.fa_code,a.deal_code)=d.deal_code WHERE a.indi_type = '费用核报' and to_char(a.stat_date,'yyyy')>='2024' AND to_char(stat_date,'yyyy-MM')>='${sStart_mon}' AND to_char(stat_date,'yyyy-MM')<='${sEnd_mon}' AND EXISTS ( SELECT 1 FROM dm.dm_bi_user_permisson WHERE bi_user = '${fine_username}' -- 替换为fine_username AND per_model IN ('all','sal','fim') AND ( is_all = 1 OR per_code = a.bu_code OR per_code = a.region_code OR per_code = a.office_code OR per_code = a.city_unit_code ) ) group by stat_time, nvl(d.deal_code,a.office_name), a.bu_code, replace(dep.dept_name,'事业部',''), dep1.dept_name ) ,deal AS ( select indi_type, d.deal_code, COALESCE(d.deal_name,tmp.deal_code,dd.thrd_dept_name) as deal_name, dd.fist_dept_code as bu_code, tmp.bu_name, tmp.region_name, amt from tmp left join dda on tmp.deal_code=dda.deal_code and tmp.bu_code=dda.bu_code left join cop on tmp.deal_code=cop.deal_code and tmp.bu_code=cop.bu_code left join dwr.dim_dealer d on tmp.deal_code=d.deal_code left join dwr.dim_department dd on coalesce(dda.city_unit_code,tmp.city_unit_code)=dd.dept_code ) ,tb_sum AS (SELECT region_name as bu_name, sum(amt) as amt_hk, 0 AS amt_bx from deal a where 1=1 AND bu_name!='公司总部' and indi_type='回款' ${if(len(sBu)=0,"","AND a.bu_code IN ('"+sBu+"')")} group by region_name UNION ALL SELECT region_name as bu_name, 0 AS amt_hk, sum(amt) as amt_bx from deal a where 1=1 and bu_name!='公司总部' and indi_type='报销' ${if(len(sBu)=0,"","AND a.bu_code IN ('"+sBu+"')")} group by region_name ) select bu_name ,sum(amt_hk) AS amt_huik ,sum(amt_bx) AS amt_baox ,CASE WHEN sum(amt_hk) = 0 THEN 0 ELSE sum(amt_bx)/sum(amt_hk) END AS rate from tb_sum group by bu_name ${if(sLevel=2,"","*/")} -- ====================================== -- chart_市场费用_费效比经销商 -- ====================================== with dda as ( select deal_code, bu_code, max(city_unit_code) as city_unit_code, max(deal_type) as deal_type, max(deal_star) as deal_star, min(is_new) as is_new, max(market_type) as market_type from dwr.dim_dealer_administer where enabled_status='1' and bu_code!='0202/0209' and city_unit_code!='0202/02123801001' group by deal_code,bu_code ),cop as ( select nvl(dm.fa_code,a.deal_code) as deal_code, a.bu_code, case when '在合作'=any(array_agg(distinct a.deal_status)) then '有效经销商' when '无往来'=any(array_agg(distinct a.deal_status)) then '休眠经销商' when '待终止'=any(array_agg(distinct a.deal_status)) then '待终止经销商' when '已终止'=any(array_agg(distinct a.deal_status)) then '已终止经销商' end as deal_status from dm.dm_cus_coop_info a left join sdi_hzg.dealer_mapping dm on a.deal_code = dm.code and a.bu_code = decode(dm.bu_code,'BU_ALL',a.bu_code,dm.bu_code) and dm.data_status = 1 where exists ( select 1 from ( select max(stat_date) as stat_date from dm.dm_cus_coop_info where to_char(stat_date,'yyyy')='${YEAR(sEnd_mon)}' group by to_char(stat_date,'yyyy') ) c where a.stat_date=c.stat_date ) group by nvl(dm.fa_code,a.deal_code), a.bu_code ),tmp as ( select a.indi_type, ${IF(sPeriod=1,"to_char(stat_date,'yyyy-MM') AS stat_time,","")} ${IF(sPeriod=2,"CASE WHEN MONTH(stat_date)<=3 THEN concat(left(stat_date,4),'-1') WHEN MONTH(stat_date)<=6 AND MONTH(stat_date)>=4 THEN concat(left(stat_date,4),'-2') WHEN MONTH(stat_date)<=9 AND MONTH(stat_date)>=7 THEN concat(left(stat_date,4),'-3') WHEN MONTH(stat_date)<=12 AND MONTH(stat_date)>=10 THEN concat(left(stat_date,4),'-4') ELSE NULL END AS stat_time,","")} ${IF(sPeriod=3,"to_char(stat_date,'yyyy') AS stat_time,","")} decode(a.deal_code,'555555',a.src_deal_code,a.deal_code) as deal_code, a.bu_code, replace(dep.dept_name,'事业部','') as bu_name, max(a.city_unit_code) as city_unit_code, sum(amt_dealer)/10000 as amt from dm.dm_sal_indicator_day a left join dwr.dim_department dep on a.bu_code=dep.dept_code where indi_type ='回款' and stat_date>=date'2024-01-01' and a.src_deal_code not in('271827','270335','618241') ${IF(LEN(sBu)=0,"","AND bu_code IN ('"+sBu+"')")} ${IF(LEN(sRegion)=0,"","AND region_code IN ('"+sRegion+"')")} AND to_char(stat_date,'yyyy-MM')>='${sStart_mon}' AND to_char(stat_date,'yyyy-MM')<='${sEnd_mon}' AND EXISTS ( SELECT 1 FROM dm.dm_bi_user_permisson WHERE bi_user = '${fine_username}' -- 替换为fine_username AND per_model IN ('all','sal','fim') AND ( is_all = 1 OR per_code = a.bu_code OR per_code = a.region_code OR per_code = a.office_code OR per_code = a.city_unit_code ) ) group by a.indi_type, stat_time, decode(a.deal_code,'555555',a.src_deal_code,a.deal_code), a.bu_code, replace(dep.dept_name,'事业部','') union all SELECT '报销' as indi_type, ${IF(sPeriod=1,"to_char(stat_date,'yyyy-MM') AS stat_time,","")} ${IF(sPeriod=2,"CASE WHEN MONTH(stat_date)<=3 THEN concat(left(stat_date,4),'-1') WHEN MONTH(stat_date)<=6 AND MONTH(stat_date)>=4 THEN concat(left(stat_date,4),'-2') WHEN MONTH(stat_date)<=9 AND MONTH(stat_date)>=7 THEN concat(left(stat_date,4),'-3') WHEN MONTH(stat_date)<=12 AND MONTH(stat_date)>=10 THEN concat(left(stat_date,4),'-4') ELSE NULL END AS stat_time,","")} ${IF(sPeriod=3,"to_char(stat_date,'yyyy') AS stat_time,","")} nvl(d.deal_code,a.office_name) as deal_code, a.bu_code, replace(dep.dept_name,'事业部','') as bu_name, max(case when a.city_unit_code in ('0202/021244','0202/021228','0202/021230','0202/021229', '0202/0212','0202/021240','0202/02123801001') then '0202/0212000101' when a.city_unit_code in ('0202/022502','0202/022503','0202/022504','0202/022511','0202/0225') then '0202/0225090101' when a.city_unit_code in ('0202/021508','0202/021509','0202/021513','0202/022605', '0202/022602','0202/022603','0202/022604','0202/021626', '0202/021627','0202/021624','0202/0215','0202/0216','0202/0226') then '0202/0226110101' else a.city_unit_code end) as city_unit_code, sum(a.amt) as amt FROM dm.v_sal_market_indi_month a LEFT JOIN dwr.dim_department dep ON a.bu_code= dep.dept_code left join sdi_hzg.dealer_mapping dm on a.deal_code=dm.code and a.bu_code = decode(dm.bu_code,'BU_ALL',a.bu_code,dm.bu_code) and dm.data_status=1 and dm.fa_code!='555555' left join dwr.dim_dealer d on coalesce(dm.fa_code,a.deal_code)=d.deal_code WHERE a.indi_type = '费用核报' and to_char(a.stat_date,'yyyy')>='2024' AND to_char(stat_date,'yyyy-MM')>='${sStart_mon}' AND to_char(stat_date,'yyyy-MM')<='${sEnd_mon}' ${IF(LEN(sRegion)=0,"","AND region_code IN ('"+sRegion+"')")} AND EXISTS ( SELECT 1 FROM dm.dm_bi_user_permisson WHERE bi_user = '${fine_username}' -- 替换为fine_username AND per_model IN ('all','sal','fim') AND ( is_all = 1 OR per_code = a.bu_code OR per_code = a.region_code OR per_code = a.office_code OR per_code = a.city_unit_code ) ) group by stat_time, nvl(d.deal_code,a.office_name), a.bu_code, replace(dep.dept_name,'事业部','') ) ,deal AS ( select indi_type, d.deal_code, COALESCE(d.deal_name,tmp.deal_code,dd.thrd_dept_name) as deal_name, dd.fist_dept_code as bu_code, tmp.bu_name, amt from tmp left join dda on tmp.deal_code=dda.deal_code and tmp.bu_code=dda.bu_code left join cop on tmp.deal_code=cop.deal_code and tmp.bu_code=cop.bu_code left join dwr.dim_dealer d on tmp.deal_code=d.deal_code left join dwr.dim_department dd on coalesce(dda.city_unit_code,tmp.city_unit_code)=dd.dept_code ) ,tb_sum AS (SELECT deal_name, sum(amt) as amt_hk, 0 AS amt_bx from deal a where 1=1 AND bu_name!='公司总部' and indi_type='回款' ${if(len(sBu)=0,"","AND a.bu_code IN ('"+sBu+"')")} group by deal_name UNION ALL SELECT deal_name, 0 AS amt_hk, sum(amt) as amt_bx from deal a where 1=1 --and bu_name!='公司总部' and indi_type='报销' ${if(len(sBu)=0,"","AND a.bu_code IN ('"+sBu+"')")} group by deal_name ) ,tb_sum2 AS (select deal_name,sum(amt_hk) AS amt_huik,sum(amt_bx) AS amt_baox from tb_sum group by deal_name ) select *, if(amt_huik=0,0,amt_baox/amt_huik) AS rate from tb_sum2 --where amt_huik!=0 and amt_huik>1 order by rate desc -- ====================================== -- chart_市场费用_费效比趋势 -- ====================================== with dda as ( select deal_code, bu_code, max(city_unit_code) as city_unit_code, max(deal_type) as deal_type, max(deal_star) as deal_star, min(is_new) as is_new, max(market_type) as market_type from dwr.dim_dealer_administer where enabled_status='1' and bu_code!='0202/0209' and city_unit_code!='0202/02123801001' group by deal_code,bu_code ),cop as ( select nvl(dm.fa_code,a.deal_code) as deal_code, a.bu_code, case when '在合作'=any(array_agg(distinct a.deal_status)) then '有效经销商' when '无往来'=any(array_agg(distinct a.deal_status)) then '休眠经销商' when '待终止'=any(array_agg(distinct a.deal_status)) then '待终止经销商' when '已终止'=any(array_agg(distinct a.deal_status)) then '已终止经销商' end as deal_status from dm.dm_cus_coop_info a left join sdi_hzg.dealer_mapping dm on a.deal_code = dm.code and a.bu_code = decode(dm.bu_code,'BU_ALL',a.bu_code,dm.bu_code) and dm.data_status = 1 where exists ( select 1 from ( select max(stat_date) as stat_date from dm.dm_cus_coop_info where to_char(stat_date,'yyyy')='${YEAR(sEnd_mon)}' group by to_char(stat_date,'yyyy') ) c where a.stat_date=c.stat_date ) group by nvl(dm.fa_code,a.deal_code), a.bu_code ),tmp as ( select a.indi_type, ${IF(sPeriod=1,"to_char(stat_date,'yyyy-MM') AS stat_time,","")} ${IF(sPeriod=2,"CASE WHEN MONTH(stat_date)<=3 THEN concat(left(stat_date,4),'-1') WHEN MONTH(stat_date)<=6 AND MONTH(stat_date)>=4 THEN concat(left(stat_date,4),'-2') WHEN MONTH(stat_date)<=9 AND MONTH(stat_date)>=7 THEN concat(left(stat_date,4),'-3') WHEN MONTH(stat_date)<=12 AND MONTH(stat_date)>=10 THEN concat(left(stat_date,4),'-4') ELSE NULL END AS stat_time,","")} ${IF(sPeriod=3,"to_char(stat_date,'yyyy') AS stat_time,","")} decode(a.deal_code,'555555',a.src_deal_code,a.deal_code) as deal_code, a.bu_code, replace(dep.dept_name,'事业部','') as bu_name, max(a.city_unit_code) as city_unit_code, sum(amt_dealer)/10000 as amt from dm.dm_sal_indicator_day a left join dwr.dim_department dep on a.bu_code=dep.dept_code where indi_type ='回款' and stat_date>=date'2024-01-01' and a.src_deal_code not in('271827','270335','618241') ${IF(LEN(sBu)=0,"","AND bu_code IN ('"+sBu+"')")} ${IF(LEN(sRegion)=0,"","AND region_code IN ('"+sRegion+"')")} AND to_char(stat_date,'yyyy-MM')>='${sStart_mon}' AND to_char(stat_date,'yyyy-MM')<='${sEnd_mon}' AND EXISTS ( SELECT 1 FROM dm.dm_bi_user_permisson WHERE bi_user = '${fine_username}' -- 替换为fine_username AND per_model IN ('all','sal','fim') AND ( is_all = 1 OR per_code = a.bu_code OR per_code = a.region_code OR per_code = a.office_code OR per_code = a.city_unit_code ) ) group by a.indi_type, stat_time, decode(a.deal_code,'555555',a.src_deal_code,a.deal_code), a.bu_code, replace(dep.dept_name,'事业部','') union all SELECT '报销' as indi_type, ${IF(sPeriod=1,"to_char(stat_date,'yyyy-MM') AS stat_time,","")} ${IF(sPeriod=2,"CASE WHEN MONTH(stat_date)<=3 THEN concat(left(stat_date,4),'-1') WHEN MONTH(stat_date)<=6 AND MONTH(stat_date)>=4 THEN concat(left(stat_date,4),'-2') WHEN MONTH(stat_date)<=9 AND MONTH(stat_date)>=7 THEN concat(left(stat_date,4),'-3') WHEN MONTH(stat_date)<=12 AND MONTH(stat_date)>=10 THEN concat(left(stat_date,4),'-4') ELSE NULL END AS stat_time,","")} ${IF(sPeriod=3,"to_char(stat_date,'yyyy') AS stat_time,","")} nvl(d.deal_code,a.office_name) as deal_code, a.bu_code, replace(dep.dept_name,'事业部','') as bu_name, max(case when a.city_unit_code in ('0202/021244','0202/021228','0202/021230','0202/021229', '0202/0212','0202/021240','0202/02123801001') then '0202/0212000101' when a.city_unit_code in ('0202/022502','0202/022503','0202/022504','0202/022511','0202/0225') then '0202/0225090101' when a.city_unit_code in ('0202/021508','0202/021509','0202/021513','0202/022605', '0202/022602','0202/022603','0202/022604','0202/021626', '0202/021627','0202/021624','0202/0215','0202/0216','0202/0226') then '0202/0226110101' else a.city_unit_code end) as city_unit_code, sum(a.amt) as amt FROM dm.v_sal_market_indi_month a LEFT JOIN dwr.dim_department dep ON a.bu_code= dep.dept_code left join sdi_hzg.dealer_mapping dm on a.deal_code=dm.code and a.bu_code = decode(dm.bu_code,'BU_ALL',a.bu_code,dm.bu_code) and dm.data_status=1 and dm.fa_code!='555555' left join dwr.dim_dealer d on coalesce(dm.fa_code,a.deal_code)=d.deal_code WHERE a.indi_type = '费用核报' and to_char(a.stat_date,'yyyy')>='2024' AND to_char(stat_date,'yyyy-MM')>='${sStart_mon}' AND to_char(stat_date,'yyyy-MM')<='${sEnd_mon}' ${IF(LEN(sRegion)=0,"","AND region_code IN ('"+sRegion+"')")} AND EXISTS ( SELECT 1 FROM dm.dm_bi_user_permisson WHERE bi_user = '${fine_username}' -- 替换为fine_username AND per_model IN ('all','sal','fim') AND ( is_all = 1 OR per_code = a.bu_code OR per_code = a.region_code OR per_code = a.office_code OR per_code = a.city_unit_code ) ) group by stat_time, nvl(d.deal_code,a.office_name), a.bu_code, replace(dep.dept_name,'事业部','') ) ,deal AS ( select indi_type, stat_time, d.deal_code, COALESCE(d.deal_name,tmp.deal_code,dd.thrd_dept_name) as deal_name, dd.fist_dept_code as bu_code, tmp.bu_name, amt from tmp left join dda on tmp.deal_code=dda.deal_code and tmp.bu_code=dda.bu_code left join cop on tmp.deal_code=cop.deal_code and tmp.bu_code=cop.bu_code left join dwr.dim_dealer d on tmp.deal_code=d.deal_code left join dwr.dim_department dd on coalesce(dda.city_unit_code,tmp.city_unit_code)=dd.dept_code ) ,tb_sum AS (SELECT stat_time, sum(amt) as amt_hk, 0 AS amt_bx from deal a where 1=1 AND bu_name!='公司总部' and indi_type='回款' ${if(len(sBu)=0,"","AND a.bu_code IN ('"+sBu+"')")} group by stat_time UNION ALL SELECT stat_time, 0 AS amt_hk, sum(amt) as amt_bx from deal a where 1=1 and bu_name!='公司总部' and indi_type='报销' ${if(len(sBu)=0,"","AND a.bu_code IN ('"+sBu+"')")} group by stat_time ) ,tb_sum2 AS (select stat_time,sum(amt_hk) AS amt_huik,sum(amt_bx) AS amt_baox from tb_sum group by stat_time ) select * ,CASE WHEN amt_huik = 0 THEN 0 ELSE amt_baox/amt_huik END AS rate from tb_sum2 where amt_huik!=0 and amt_huik>1 order by stat_time -- ====================================== -- report_市场费用_事业部大区预算执行 -- ====================================== -- 事业部 ${if(sLevel=1,"","/*")} -- 费用执行 select ${IF(sPeriod=1,"to_char(stat_date,'yyyy-MM') AS stat_time,","")} ${IF(sPeriod=2,"CASE WHEN MONTH(stat_date)<=3 THEN concat(left(stat_date,4),'-1') WHEN MONTH(stat_date)<=6 AND MONTH(stat_date)>=4 THEN concat(left(stat_date,4),'-2') WHEN MONTH(stat_date)<=9 AND MONTH(stat_date)>=7 THEN concat(left(stat_date,4),'-3') WHEN MONTH(stat_date)<=12 AND MONTH(stat_date)>=10 THEN concat(left(stat_date,4),'-4') ELSE NULL END AS stat_time,","")} ${IF(sPeriod=3,"to_char(stat_date,'yyyy') AS stat_time,","")} bu_name, sum(amt) AS amt_ex, 0 AS amt_bug -- 预算 from dm.v_sal_market_indi_month a where (indi_type='费用核报') ${IF(LEN(sBu)=0,"","AND bu_code IN ('"+sBu+"')")} ${IF(LEN(sRegion)=0,"","AND region_code IN ('"+sRegion+"')")} AND to_char(stat_date,'yyyy-MM')>='${sStart_mon}' AND to_char(stat_date,'yyyy-MM')<='${sEnd_mon}' AND EXISTS ( SELECT 1 FROM dm.dm_bi_user_permisson WHERE bi_user = '${fine_username}' -- 替换为fine_username AND per_model IN ('all','sal','fim') AND ( is_all = 1 OR per_code = a.bu_code OR per_code = a.region_code OR per_code = a.office_code OR per_code = a.city_unit_code ) ) GROUP BY stat_time, bu_name UNION all -- 费用预算 select ${IF(sPeriod=1,"to_char(stat_date,'yyyy-MM') AS stat_time,","")} ${IF(sPeriod=2,"CASE WHEN MONTH(stat_date)<=3 THEN concat(left(stat_date,4),'-1') WHEN MONTH(stat_date)<=6 AND MONTH(stat_date)>=4 THEN concat(left(stat_date,4),'-2') WHEN MONTH(stat_date)<=9 AND MONTH(stat_date)>=7 THEN concat(left(stat_date,4),'-3') WHEN MONTH(stat_date)<=12 AND MONTH(stat_date)>=10 THEN concat(left(stat_date,4),'-4') ELSE NULL END AS stat_time,","")} ${IF(sPeriod=3,"to_char(stat_date,'yyyy') AS stat_time,","")} bu_name, 0 AS amt_ex, sum(amt) AS amt_bug from dm.v_sal_market_indi_month a where (indi_type='期初预算' OR indi_type='调整预算') ${IF(LEN(sBu)=0,"","AND bu_code IN ('"+sBu+"')")} ${IF(LEN(sRegion)=0,"","AND region_code IN ('"+sRegion+"')")} AND to_char(stat_date,'yyyy')='${YEAR(sEnd_mon)}' AND EXISTS ( SELECT 1 FROM dm.dm_bi_user_permisson WHERE bi_user = '${fine_username}' -- 替换为fine_username AND per_model IN ('all','sal','fim') AND ( is_all = 1 OR per_code = a.bu_code OR per_code = a.region_code OR per_code = a.office_code OR per_code = a.city_unit_code ) ) GROUP BY stat_time, bu_name ${if(sLevel=1,"","*/")} -- 事业部大区 ${if(sLevel=2,"","/*")} -- 费用执行 select ${IF(sPeriod=1,"to_char(stat_date,'yyyy-MM') AS stat_time,","")} ${IF(sPeriod=2,"CASE WHEN MONTH(stat_date)<=3 THEN concat(left(stat_date,4),'-1') WHEN MONTH(stat_date)<=6 AND MONTH(stat_date)>=4 THEN concat(left(stat_date,4),'-2') WHEN MONTH(stat_date)<=9 AND MONTH(stat_date)>=7 THEN concat(left(stat_date,4),'-3') WHEN MONTH(stat_date)<=12 AND MONTH(stat_date)>=10 THEN concat(left(stat_date,4),'-4') ELSE NULL END AS stat_time,","")} ${IF(sPeriod=3,"to_char(stat_date,'yyyy') AS stat_time,","")} region_name AS bu_name, sum(amt) AS amt_ex, 0 AS amt_bug -- 预算 from dm.v_sal_market_indi_month a where (indi_type='费用核报') ${IF(LEN(sBu)=0,"","AND bu_code IN ('"+sBu+"')")} ${IF(LEN(sRegion)=0,"","AND region_code IN ('"+sRegion+"')")} AND to_char(stat_date,'yyyy-MM')>='${sStart_mon}' AND to_char(stat_date,'yyyy-MM')<='${sEnd_mon}' AND EXISTS ( SELECT 1 FROM dm.dm_bi_user_permisson WHERE bi_user = '${fine_username}' -- 替换为fine_username AND per_model IN ('all','sal','fim') AND ( is_all = 1 OR per_code = a.bu_code OR per_code = a.region_code OR per_code = a.office_code OR per_code = a.city_unit_code ) ) GROUP BY stat_time, region_name UNION all -- 费用预算 select ${IF(sPeriod=1,"to_char(stat_date,'yyyy-MM') AS stat_time,","")} ${IF(sPeriod=2,"CASE WHEN MONTH(stat_date)<=3 THEN concat(left(stat_date,4),'-1') WHEN MONTH(stat_date)<=6 AND MONTH(stat_date)>=4 THEN concat(left(stat_date,4),'-2') WHEN MONTH(stat_date)<=9 AND MONTH(stat_date)>=7 THEN concat(left(stat_date,4),'-3') WHEN MONTH(stat_date)<=12 AND MONTH(stat_date)>=10 THEN concat(left(stat_date,4),'-4') ELSE NULL END AS stat_time,","")} ${IF(sPeriod=3,"to_char(stat_date,'yyyy') AS stat_time,","")} region_name bu_name, 0 AS amt_ex, sum(amt) AS amt_bug from dm.v_sal_market_indi_month a where (indi_type='期初预算' OR indi_type='调整预算') ${IF(LEN(sBu)=0,"","AND bu_code IN ('"+sBu+"')")} ${IF(LEN(sRegion)=0,"","AND region_code IN ('"+sRegion+"')")} AND to_char(stat_date,'yyyy')='${YEAR(sEnd_mon)}' AND EXISTS ( SELECT 1 FROM dm.dm_bi_user_permisson WHERE bi_user = '${fine_username}' -- 替换为fine_username AND per_model IN ('all','sal','fim') AND ( is_all = 1 OR per_code = a.bu_code OR per_code = a.region_code OR per_code = a.office_code OR per_code = a.city_unit_code ) ) GROUP BY stat_time, region_name ${if(sLevel=2,"","*/")}