-- ====================================== -- 销售指标月度汇总 -- ====================================== select to_char(a.stat_date,'yyyy') as year, -- 年度 to_char(a.stat_date,'mm') as month, -- 月度 case when day(a.stat_date)>=1 and day(a.stat_date)<=10 then '上旬' when day(a.stat_date)>=10 and day(a.stat_date)<=20 then '中旬' else '下旬' end as ten_day, -- 旬 a.indi_type, -- 指标类型 a.bu_code, -- 事业部编码 bu.dept_name as bu_name, -- 事业部名称 a.region_code, -- 大区编码 dmd.secd_dept_name as region_name, -- 大区名称 a.office_code, -- 办事处编码 dmd.thrd_dept_name as office_name, -- 办事处名称 a.city_unit_code, -- 城市单元编码 dmd.dept_name as city_unit_name, -- 城市单元名称 max(pv.town_name) as province_name, -- 省 max(cit.town_name) as city_name, -- 市 a.deal_code, -- 主经销商编码 deal.deal_name, -- 主经销商名称 a.src_deal_code, -- 子经销商编码 sd.deal_name as src_deal_name, -- 子经销商名称 a.product_code, -- 产品编码 p.product_name, -- 产品名称 p.pl_code, -- 产品线编码 p.pl_name, -- 产品线名称 p.pi_code, -- 品项编码 p.pi_name, -- 品项名称 p.pr_code, -- 产品系列编码 p.pr_name, -- 产品系列名称 p.report_pi_name, -- 报表品项 p.bu_code as p_bu_code, -- 产品所属事业部编码 d.dept_name as p_bu_name, -- 产品所属事业部名称 p.spec, -- 规格 p.aroma_type, -- 香型 sum(a.num_bu) as num_bu, -- 计事业部数量 sum(a.num_region) as num_region, -- 计大区数量 sum(a.num_office) as num_office, -- 计办事处数量 sum(a.num_city_unit) as num_city_unit, -- 计城市单元数量 sum(a.num_dealer) as num_dealer, -- 计经销商数量 round(sum(a.num_bu/p.pack_base_num),4) as pack_bu, -- 计事业部件数 round(sum(a.num_region/p.pack_base_num),4) as pack_region, -- 计大区件数 round(sum(a.num_office/p.pack_base_num),4) as pack_office, -- 计办事处件数 round(sum(a.num_city_unit/p.pack_base_num),4) as pack_city_unit, -- 计城市单元件数 round(sum(a.num_dealer/p.pack_base_num),4) as pack_dealer, -- 计经销商件数 round(sum(a.num_bu * to_number(p.spec) / 1000000),4) as ton_bu, -- 计事业部吨数 round(sum(a.num_region * to_number(p.spec) / 1000000),4) as ton_region, -- 计大区吨数 round(sum(a.num_office * to_number(p.spec) / 1000000),4) as ton_office, -- 计办事处吨数 round(sum(a.num_city_unit * to_number(p.spec) / 1000000),4) as ton_city_unit, -- 计城市单元吨数 round(sum(a.num_dealer * to_number(p.spec) / 1000000),4) as ton_dealer, -- 计经销商吨数 sum(amt_bu) / 10000 as amt_bu, -- 计事业部金额 sum(amt_region) / 10000 as amt_region, -- 计大区金额 sum(amt_office) / 10000 as amt_office, -- 计办事处金额 sum(amt_city_unit) / 10000 as amt_city_unit, -- 计城市单元金额 sum(amt_dealer) / 10000 as amt_dealer -- 计经销商金额 from ( SELECT * FROM dm.dm_sal_indicator_day WHERE stat_date >= '${CONCATENATE(sStart_mon,"-01 00:00:00")}' AND stat_date <= '${CONCATENATE(ENDOFMONTH(CONCATENATE(sStart_mon,"-01"))," 00:00:00")}' ${if(len(sIndex) == 0,"","and indi_type IN ('"+sIndex+"')")} -- 事业部 ${if(len(sBu) == 0,"","and bu_code IN ('"+sBu+"')")} -- 大区 ${if(len(sRegion) == 0,"","and region_code IN ('"+ sRegion+"')")} -- 办事处 ${if(len(sOffice) == 0,"","and office_code IN ('"+ sOffice+"')")} -- 城市单元 ${if(len(sCu) == 0,"","and city_unit_code IN ('"+sCu+"')")} -- 产品 ${if(len(sProduct) == 0,"","and product_code IN ('"+ sProduct +"')")} -- 子主经销商 ${if(sIs_srcdeal == '2',if(len(sDeal) == 0,"","and deal_code IN ('"+ sDeal+"')"),if(len(sDeal) == 0,"","and src_deal_code IN ('"+ sDeal +"')"))} )a left join dwr.dim_product p on a.product_code=p.product_code left join dwr.dim_department dmd on a.city_unit_code=dmd.dept_code left join dwr.dim_department bu on a.bu_code=bu.dept_code left join dwr.dim_department d on p.bu_code=d.dept_code left join dwr.dim_dealer deal on a.deal_code=deal.deal_code left join dwr.dim_dealer sd on a.src_deal_code=sd.deal_code left join dwr.dim_area pv on a.province_code=pv.town_code left join dwr.dim_area cit on a.city_code=cit.town_code where 1 = 1 -- 产品线 ${if(len(sPl_name) == 0,"","and p.pl_name IN ('"+ sPl_name +"')")} group by to_char(a.stat_date,'yyyy'), to_char(a.stat_date,'mm'), case when day(a.stat_date)>=1 and day(a.stat_date)<=10 then '上旬' when day(a.stat_date)>=10 and day(a.stat_date)<=20 then '中旬' else '下旬' end, a.indi_type, a.bu_code, bu.dept_name, a.region_code, dmd.secd_dept_name, a.office_code, dmd.thrd_dept_name, a.city_unit_code, dmd.dept_name, a.deal_code, deal.deal_name, a.src_deal_code, sd.deal_name, a.product_code, p.product_name, p.pl_code, p.pl_name, p.pi_code, p.pi_name, p.pr_code, p.pr_name, p.report_pi_name, p.bu_code, d.dept_name, p.spec, p.aroma_type SELECT CONCAT('数据更新日期:',LEFT(MAX(update_time),19)) AS update_time FROM dm.dm_sal_indicator_day