From 1bcba21c50654df9f2e9b9e15d949d53ba262821 Mon Sep 17 00:00:00 2001 From: yangkunan Date: Fri, 25 Oct 2024 18:05:24 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=BA=E5=8A=9B=E7=9C=8B=E6=9D=BF=E6=8C=87?= =?UTF-8?q?=E6=A0=87=E7=AC=AC=E4=BA=8C=E7=89=88:=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E7=BB=84=E7=BB=87=E6=98=A0=E5=B0=84=E8=A1=A8=E5=85=B3=E8=81=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/sqldialects.xml | 4 + dw/dwd/dwd_cost_budget_data_d.sql | 4 +- dw/dws/dws_cost_ac_summary_d.sql | 40 ++-- dw/ods/ods_cost_adjust_data_d.sql | 30 +-- dw/ods/ods_cost_budget_data_d.sql | 24 +- finereport/kanban/pc/人力.sql | 368 ++++++++++++++++-------------- 6 files changed, 238 insertions(+), 232 deletions(-) diff --git a/.idea/sqldialects.xml b/.idea/sqldialects.xml index 98b3673..18e797f 100644 --- a/.idea/sqldialects.xml +++ b/.idea/sqldialects.xml @@ -19,6 +19,8 @@ + + @@ -28,10 +30,12 @@ + + diff --git a/dw/dwd/dwd_cost_budget_data_d.sql b/dw/dwd/dwd_cost_budget_data_d.sql index 590a42c..8f6e229 100644 --- a/dw/dwd/dwd_cost_budget_data_d.sql +++ b/dw/dwd/dwd_cost_budget_data_d.sql @@ -17,9 +17,9 @@ CREATE TABLE IF NOT EXISTS dw.dwd_cost_budget_data_d ( ,budgetfee_rate VARCHAR(50) COMMENT '预算执行率' )COMMENT = '费控预算金额明细表' -------------------------------------- +-- ----------------------------------- -- 费控预算金额明细表转换 -------------------------------------- +-- ----------------------------------- INSERT INTO dw.dwd_cost_budget_data_d select dimaccountcode -- 预算科目编码 diff --git a/dw/dws/dws_cost_ac_summary_d.sql b/dw/dws/dws_cost_ac_summary_d.sql index 616c92f..71b4368 100644 --- a/dw/dws/dws_cost_ac_summary_d.sql +++ b/dw/dws/dws_cost_ac_summary_d.sql @@ -1,25 +1,25 @@ DROP TABLE IF EXISTS dw.dws_cost_ac_summary_d; CREATE TABLE IF NOT EXISTS dw.dws_cost_ac_summary_d ( - yearname VARCHAR(50) COMMENT '年' -,monthname VARCHAR(50) COMMENT '月' -,organ_code VARCHAR(255) COMMENT '片区ID' -,organ_name VARCHAR(255) COMMENT '片区名称' -,dimsubjectcode VARCHAR(255) COMMENT '组织机构编码' -,dimsubjectname VARCHAR(255) COMMENT '组织机构名称' -,office_rent VARCHAR(255) COMMENT '办公室租金' -,office_repair_fee VARCHAR(255) COMMENT '办公维修费' -,office_fee VARCHAR(255) COMMENT '办公费' -,travel_fee VARCHAR(255) COMMENT '差旅费' -,phone_fee VARCHAR(255) COMMENT '电话费' -,ad_fee VARCHAR(255) COMMENT '广告宣传费' -,business_fee VARCHAR(255) COMMENT '业务接待费' -,water_power_fee VARCHAR(255) COMMENT '水电费' -,management_fee VARCHAR(255) COMMENT '物管费' -,book_fee VARCHAR(255) COMMENT '书报资料费' -,other_fee VARCHAR(255) COMMENT '其他费用' -,total_fee VARCHAR(255) COMMENT '当期小计' -,fee_type VARCHAR(50) COMMENT '费用类型' -)COMMENT = '费控人力成本科目汇总表' + yearname VARCHAR(50) COMMENT '年' +,monthname VARCHAR(50) COMMENT '月' +,organ_code VARCHAR(100) COMMENT '片区ID' +,organ_name VARCHAR(100) COMMENT '片区名称' +,dimsubjectcode VARCHAR(100) COMMENT '组织机构编码' +,dimsubjectname VARCHAR(100) COMMENT '组织机构名称' +,salary_fee VARCHAR(100) COMMENT '工资' +,year_performance_fee VARCHAR(100) COMMENT '季度/年终绩效' +,social_insur_fee VARCHAR(100) COMMENT '社会保险' +,accumu_fund_fee VARCHAR(100) COMMENT '公积金' +,liab_insur_fee VARCHAR(100) COMMENT '雇主责任险' +,smock_fee VARCHAR(100) COMMENT '工作服' +,train_fee VARCHAR(100) COMMENT '培训' +,recr_fee VARCHAR(100) COMMENT '招聘' +,emp_bene_fee VARCHAR(100) COMMENT '员工福利' +,laborrela_fee VARCHAR(100) COMMENT '劳动关系成本' +,other_fee VARCHAR(100) COMMENT '其他费用' +,total_fee VARCHAR(100) COMMENT '当期小计' +,fee_type VARCHAR(100) COMMENT '费用类型' +)COMMENT = '费控人力成本科目汇总表'; diff --git a/dw/ods/ods_cost_adjust_data_d.sql b/dw/ods/ods_cost_adjust_data_d.sql index 4397526..80d85b3 100644 --- a/dw/ods/ods_cost_adjust_data_d.sql +++ b/dw/ods/ods_cost_adjust_data_d.sql @@ -1,7 +1,7 @@ drop table if exists dw.ods_cost_adjust_data_d; CREATE TABLE IF NOT EXISTS dw.ods_cost_adjust_data_d ( - originalcurrency VARCHAR(255) COMMENT '调整金额' + originalcurrency VARCHAR(255) COMMENT '调整金额' ,dimaccountcode VARCHAR(255) COMMENT '调整预算科目编码' ,dimaccountname VARCHAR(255) COMMENT '调整预算科目名称' ,dimsubjectcode VARCHAR(255) COMMENT '调整组织机构编码' @@ -12,13 +12,13 @@ CREATE TABLE IF NOT EXISTS dw.ods_cost_adjust_data_d ( select - sum(originalcurrency) as originalcurrency --调整金额 - ,dimaccountcode as dimaccountcode --调整预算科目编码 - ,dimaccountname as dimaccountname --调整预算科目名称 - ,DimSubjectcode as DimSubjectcode --调整组织机构编码 - ,DimSubjectname as DimSubjectname --调整组织结构名称 - ,year as year --年 - ,month as month --月 + sum(originalcurrency) as originalcurrency -- 调整金额 + ,dimaccountcode as dimaccountcode -- 调整预算科目编码 + ,dimaccountname as dimaccountname -- 调整预算科目名称 + ,DimSubjectcode as DimSubjectcode -- 调整组织机构编码 + ,DimSubjectname as DimSubjectname -- 调整组织结构名称 + ,year as year -- 年 + ,month as month -- 月 from ( select @@ -30,7 +30,7 @@ from ,substr(d.budgetdetaildate,0,4)as year ,substr(d.budgetdetaildate,6,7)as month ,d.originalcurrency - from e7fssc_ld.t_cc_billmaindata m + from(SELECT * FROM e7fssc_ld.t_cc_billmaindata where billtype=6 and currentstate=21) m left join e7fssc_ld.t_cc_billdetaildata d on d.billmaindataid=d.billmaindataid left join e7fssc_ld.t_cc_object o on o.objectid=d.dimaccount left join e7fssc_ld.t_cc_object o1 on o1.objectid=d.dimsubject @@ -39,12 +39,12 @@ from and budgetdetaildate is not null ) a where 1=1 - ---根据实际业务需求去添加 start --- and a.dimaccountcode='' --调整预算科目编码,如果查该组织机构下所有的科目,把该条件注释掉即可 ---and a.DimSubjectcode='010201011105' --调整预算组织名称 -and a.year='2024' --调整年 ---and a.month='01' --调整月 ----根据实际业务需求去添加 end +-- 根据实际业务需求去添加 start +-- and a.dimaccountcode='' -- 调整预算科目编码,如果查该组织机构下所有的科目,把该条件注释掉即可 +-- and a.DimSubjectcode='010201011105' -- 调整预算组织名称 +and a.year='2024' --调整年 +-- and a.month='01' --调整月 +-- 根据实际业务需求去添加 end group by dimaccountcode ,dimaccountname diff --git a/dw/ods/ods_cost_budget_data_d.sql b/dw/ods/ods_cost_budget_data_d.sql index be57104..4d65ff3 100644 --- a/dw/ods/ods_cost_budget_data_d.sql +++ b/dw/ods/ods_cost_budget_data_d.sql @@ -70,40 +70,33 @@ CREATE TABLE IF NOT EXISTS dw.ods_cost_budget_data_d( ,decbudgetrate VARCHAR(100) COMMENT '12月预算执行率' )COMMENT = '费控预算数据' - +; select - dimaccountcode as dimaccountcode --预算科目编码 + dimaccountcode as dimaccountcode --预算科目编码 ,dimaccountname as dimaccountname --预算科目名称 ,DimSubjectcode as DimSubjectcode --组织机构编码 ,DimSubjectname as DimSubjectname --组织机构名称 ,yearname as yearname --年 ,totalcode as totalcode --组织机构层级编码 - - ,z.Janbuget as Janbuget --1月预算金额 ,z.Janocc as Janocc --1月已占用金额 ,z.Janreal as Janreal --1月已使用金额 ,z.Janbuget-z.Janocc-z.Janreal as Janavailable --1月剩余可用金额 ,case when z.Janbuget<> 0 then (round(((z.Janocc+z.Janreal)/z.Janbuget)*100,2) ||'%') else '0%' end as Janbugetrate --1月预算执行率 - - ,z.Febbudget as Febbudget --2月预算金额 ,z.Febocc as Febocc --2月已占用金额 ,z.Febreal as Febreal --2月已使用金额 ,z.Febbudget-z.Febocc-z.Febreal as Febavailable --2月剩余可用金额 ,case when z.Febbudget<> 0 then (round(((z.Febocc+z.Febreal)/z.Febbudget)*100,2) ||'%') else '0%' end as Febbudgetrate --2月预算执行率 - ,z.Marbudget as Marbudget --3月预算金额 ,z.Marocc as Marocc --3月已占用金额 ,z.Marreal as Marreal --3月已使用金额 ,z.Marbudget-z.Marocc-z.Marreal as Maravailable -- 3月剩余可用金额 ,case when z.Marbudget<> 0 then (round(((z.Marocc+z.Marreal)/z.Marbudget)*100,2) ||'%') else '0%' end as Marbudgetrate --3月预算执行率 - - ,z.Aprilbudget as Aprilbudget --4月预算金额 ,z.Aprilocc as Aprilocc --4月已占用金额 ,z.Aprilreal as Aprilreal --4月已使用金额 @@ -117,50 +110,42 @@ select ,z.Maybudget-z.Mayocc-z.Mayreal as Mayavailable --5月剩余可用金额 ,case when z.Maybudget<> 0 then (round(((z.Mayocc+z.Mayreal)/z.Maybudget)*100,2) ||'%') else '0%' end as Maybudgetrate --5月预算执行率 - ,z.Junebudget as Junebudget --6月预算金额 ,z.Juneocc as Juneocc --6月已占用金额 ,z.Junereal as Junereal --6月已使用金额 ,z.Junebudget-z.Juneocc-z.Junereal as Juneavailable --6月剩余可用金额 ,case when z.Junebudget<> 0 then (round(((z.Juneocc+z.Junereal)/z.Junebudget)*100,2) ||'%') else '0%' end as Junebudgetrate --6月预算执行率 - ,z.Julybudget as Julybudget --7月预算金额 ,z.Julyocc as Julyocc --7月已占用金额 ,z.Julyreal as Julyreal --7月已使用金额 ,z.Julybudget-z.Julyocc-z.Julyreal as Julyavailable --7月剩余可用金额 ,case when z.Julybudget<> 0 then (round(((z.Julyocc+z.Julyreal)/z.Julybudget)*100,2) ||'%') else '0%' end as Julybudgetrate --7月预算执行率 - ,z.Augbudget as Augbudget --8月预算金额 ,z.Augocc as Augocc --8月已占用金额 ,z.Augreal as Augreal --8月已使用金额 ,z.Augbudget-z.Augocc-z.Augreal as Augavailable -- 8月剩余可用金额 ,case when z.Augbudget<> 0 then (round(((z.Augocc+z.Augreal)/z.Augbudget)*100,2) ||'%') else '0%' end as Augbudgetrate --8月预算执行率 - - ,z.Sepbudget as Sepbudget --9月预算金额 ,z.Sepocc as Sepocc --9月已占用金额 ,z.Sepreal as Sepreal --9月已使用金额 ,z.Sepbudget-z.Sepocc-z.Sepreal as Sepavailable --9月剩余可用金额 ,case when z.Sepbudget<> 0 then (round(((z.Sepocc+z.Sepreal)/z.Sepbudget)*100,2) ||'%') else '0%' end as Sepbudgetrate --9月预算执行率 - ,z.Octbudget as Octbudget --10月预算金额 ,z.Octocc as Octocc --10月已占用金额 ,z.Octreal as Octreal --10月已使用金额 ,z.Octbudget-z.Octocc-z.Octreal as Octavailable --10月剩余可用金额 ,case when z.Octbudget<> 0 then (round(((z.Octocc+z.Octreal)/z.Octbudget)*100,2) ||'%') else '0%' end as Octbudgetrate --10月预算执行率 - ,z.Novbudget as Novbudget --11月预算金额 ,z.Novocc as Novocc --11月已占用金额 ,z.Novreal as Novreal --11月已使用金额 ,z.Novbudget-z.Novocc-z.Novreal as Novavailable --11月剩余可用金额 ,case when z.Novbudget<> 0 then (round(((z.Novocc+z.Novreal)/z.Novbudget)*100,2) ||'%') else '0%' end as Novbudgetrate --11月预算执行率 - ,z.Decbudget as Decbudget --12月预算金额 ,z.DecOcc as DecOcc --12月已占用金额 ,z.Decreal as Decreal --12月已使用金额 @@ -299,7 +284,8 @@ from ,totalcode )z -- where条件需要根据实际业务需求去添加 -where z.yearname='2024' +where 1 = 1 +-- AND z.yearname='2024' -- and z.dimsubjectcode='010201011105' and totalcode like '0001,1001,2002,3000%' --注意该条件,本次项目只需要该条件即可 -order by totalcode +-- order by totalcode diff --git a/finereport/kanban/pc/人力.sql b/finereport/kanban/pc/人力.sql index 14dec1e..a415032 100644 --- a/finereport/kanban/pc/人力.sql +++ b/finereport/kanban/pc/人力.sql @@ -67,33 +67,43 @@ FROM third_department -- ====================================== SELECT - SUM(sl) AS SL + SUM(zzs) AS SL FROM ( SELECT - pq - ,zb - ,xm - ,sl - FROM ods_hr_view_zaizhi_all_d -- 在职人数 - WHERE 1=1 - ${IF(LEN(p_area)>0," AND pq IN ('"+JOINARRAY(p_area,"','")+"')", "")} - + pq -- 片区 + ,xm -- 项目 + ,zzs -- 在职人数 + FROM ods_hr_view_mbl_d -- 在职与编制人数 + WHERE left(rq,7) = '${p_ym}' )A - JOIN + LEFT JOIN ( SELECT - * - FROM ods_hr_hrmsubcompany_d + organ_code + ,organ_name + ,comm_id + ,comm_name + ,hr_organ_id + ,hr_organ_name + ,hr_comm_id + ,hr_comm_name + FROM dim_organ_mapping_kunan_tmp + + GROUP BY + organ_code + ,organ_name + ,comm_id + ,comm_name + ,hr_organ_id + ,hr_organ_name + ,hr_comm_id + ,hr_comm_name )B - ON A.pq = B.id - JOIN - ( - SELECT - * - FROM ods_hr_hrmsubcompany_d - )C - ON A.xm = C.id + ON A.pq = B.hr_organ_id + and A.xm = b.hr_comm_id +where 1 = 1 +${IF(LEN(p_area)>0," AND B.organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")} -- ====================================== -- 指标卡_离职人数 @@ -104,106 +114,83 @@ SELECT FROM ( SELECT - pq - ,zb - ,xm - ,lzrs - ,concat(nd,'-',yd) AS YM + pq -- 片区 + ,xm -- 项目 + ,lzrs -- 离职人数 + ,concat(nd,'-',yd) AS YM -- 年月 FROM ods_hr_view_lzrs_d -- 离职人数 - WHERE concat(nd,'-',yd) = '${p_ym}' - ${IF(LEN(p_area)>0," AND pq IN ('"+JOINARRAY(p_area,"','")+"')", "")} + WHERE left(rq,7) = '${p_ym}' )A - JOIN - ( - SELECT - * - FROM ods_hr_hrmsubcompany_d + LEFT JOIN + ( + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,hr_organ_id + ,hr_organ_name + ,hr_comm_id + ,hr_comm_name + FROM dim_organ_mapping_kunan_tmp + GROUP BY + organ_code + ,organ_name + ,comm_id + ,comm_name + ,hr_organ_id + ,hr_organ_name + ,hr_comm_id + ,hr_comm_name )B - ON A.pq = B.id - JOIN - ( - SELECT - * - FROM ods_hr_hrmsubcompany_d - )C - ON A.xm = C.id + ON A.pq = B.hr_organ_id + and A.xm = B.hr_comm_id +where 1 = 1 + ${IF(LEN(p_area)>0," AND B.organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")} -- ====================================== -- 指标卡_人力成本 -- ====================================== - - SELECT - sum(A.total_fee) AS total_fee -FROM - ( - select - organ_name - ,sum(total_fee) AS total_fee - from dw.dws_cost_lc_summary_d - WHERE fee_type = '实际值' - AND concat(yearname,'-',monthname) = '${p_ym}' - GROUP BY - organ_name - )A - LEFT JOIN - ( - SELECT - id - ,subcompanyname - FROM ods_hr_hrmsubcompany_d - WHERE tlevel = '2' - GROUP BY - id - ,subcompanyname - )B - ON A.organ_name = B.subcompanyname -WHERE 1 = 1 - ${IF(LEN(p_area)>0," AND B.id IN ('"+JOINARRAY(p_area,"','")+"')", "")} +sum(total_fee) AS total_fee +from dw.dws_cost_lc_summary_d -- 人力成本实际值 +WHERE fee_type = '实际值' +AND concat(yearname,'-',monthname) = '${p_ym}' +${IF(LEN(p_area)>0," AND organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")} -- ====================================== -- 指标卡_行政成本 -- ====================================== - SELECT - sum(A.total_fee) AS total_fee -FROM - ( - select - organ_name - ,sum(total_fee) AS total_fee - from dw.dws_cost_ac_summary_d - WHERE fee_type = '实际值' - AND concat(yearname,'-',monthname) = '${p_ym}' - GROUP BY - organ_name - )A - LEFT JOIN - ( - SELECT - id - ,subcompanyname - FROM ods_hr_hrmsubcompany_d - WHERE tlevel = '2' - GROUP BY - id - ,subcompanyname - )B - ON A.organ_name = B.subcompanyname -WHERE 1 = 1 - ${IF(LEN(p_area)>0," AND B.id IN ('"+JOINARRAY(p_area,"','")+"')", "")} +sum(total_fee) AS total_fee +FROM dw.dws_cost_ac_summary_d -- 费控行政成本实际值 +WHERE fee_type = '实际值' +AND concat(yearname,'-',monthname) = '${p_ym}' +${IF(LEN(p_area)>0," AND organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")} -- ====================================== -- 员工满编率柱状图 -- ====================================== + SELECT - nd -- 年度 - ,jd -- 季度 - ,yd -- 月度 - ,rq -- 日期 - ,zb -- 总部 + A.yd AS yd -- 月度 + ,A.pq AS pq -- 片区 + ,A.xm AS xm -- 项目 + ,A.zzs AS zzs -- 在职数 + ,A.bzs AS bzs -- 编制数 +,A.datedif AS datedif -- 结束日期--开始日期 +,A.total_zzs AS total_zzs -- 累计在职人数 +,A.total_bzs AS total_bzs -- 累计编制人数 +,A.avg_zzs AS avg_zzs -- 平均在职人数 +,A.avg_bzs AS avg_bzs -- 平均编制人数 +,A.rate AS rate -- 满编率 +FROM +( + SELECT + + yd -- 月度 ,pq -- 片区 ,xm -- 项目 ,zzs -- 在职数 @@ -216,29 +203,51 @@ SELECT ,CASE WHEN sum(bzs) over(PARTITION BY rq,pq,xm) / datediff(current_date(),rq) = 0 THEN 0 ELSE (sum(zzs) over(PARTITION BY rq,pq,xm) / datediff(current_date(),rq)) / (sum(bzs) over(PARTITION BY rq,pq,xm) / datediff(current_date(),rq)) END as rate -FROM ods_hr_view_mbl_d -WHERE 1 = 1 - ${IF(LEN(p_area)>0," AND pq IN ('"+JOINARRAY(p_area,"','")+"')", "")} + FROM ods_hr_view_mbl_d +)A +LEFT JOIN +( + SELECT + organ_code -- erp片区编码 + ,organ_name -- erp片区名称 + ,hr_organ_id -- hr片区编码 + ,hr_organ_name -- hr片区名称 + ,hr_comm_id -- hr项目id + ,hr_comm_name -- hr项目名称 + FROM dim_organ_mapping_kunan_tmp + GROUP BY + organ_code + ,organ_name + ,hr_organ_id + ,hr_organ_name + ,hr_comm_id + ,hr_comm_name +)B +ON A.pq = B.hr_organ_id +and A.xm = b.hr_comm_id +where 1 = 1 + ${IF(LEN(p_area)>0," AND B.organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")} -- ====================================== -- 员工满编率排名 -- ====================================== +-- 注意 目前会有一个空的排名 是因为佳美物业未做映射 + SELECT - T.subcompanyname AS subcompanyname - ,ROW_NUMBER() OVER(ORDER BY T.RATE DESC) 排名 - ,T.RATE - ,'0' AS TARGET_RATE + T1.organ_comm AS organ_comm + ,ROW_NUMBER() OVER(ORDER BY T1.RATE DESC) 排名 + ,T1.rate + ,'0' AS target_rate FROM - ( +( SELECT - ${IF(LEN(p_area)>0,"c.subcompanyname", "b.subcompanyname")} + ${IF(LEN(p_area)>0,"B.hr_comm_name", "B.hr_organ_name")} AS organ_comm ,CASE WHEN SUM(avg_bzs) = 0 THEN 0 ELSE SUM(avg_zzs) / SUM(avg_bzs) END AS RATE FROM - ( + ( SELECT - pq -- 片区 ,xm -- 项目 ,zzs -- 在职数 @@ -251,26 +260,34 @@ FROM ,sum(bzs) over(PARTITION BY rq,pq,xm) / datediff(current_date(),rq) AS avg_bzs -- 平均编制人数 FROM ods_hr_view_mbl_d WHERE CONCAT(nd,'-',yd) = '${p_ym}' - ${IF(LEN(p_area)>0," AND pq IN ('"+JOINARRAY(p_area,"','")+"')", "")} + -- 注意 目前会有一个空的排名 是因为佳美物业未做映射 + AND pq <> '89' )A - LEFT JOIN + LEFT JOIN ( SELECT - id - ,subcompanyname - FROM ods_hr_hrmsubcompany_d + organ_code -- erp片区编码 + ,organ_name -- erp片区名称 + ,hr_organ_id -- hr片区编码 + ,hr_organ_name -- hr片区名称 + ,hr_comm_id -- hr项目id + ,hr_comm_name -- hr项目名称 + FROM dim_organ_mapping_kunan_tmp + WHERE hr_organ_name IS NOT NULL + GROUP BY + organ_code + ,organ_name + ,hr_organ_id + ,hr_organ_name + ,hr_comm_id + ,hr_comm_name )B - ON A.pq = B.id - LEFT JOIN - ( - SELECT - id - ,subcompanyname - FROM ods_hr_hrmsubcompany_d - )C - ON A.xm = C.id - GROUP BY ${IF(LEN(p_area)>0,"c.subcompanyname", "b.subcompanyname")} - )T + ON A.pq = B.hr_organ_id + and A.xm = B.hr_comm_id + ${IF(LEN(p_area)>0," AND B.organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")} + + GROUP BY ${IF(LEN(p_area)>0,"B.hr_comm_name", "B.hr_organ_name")} +)T1 -- ====================================== @@ -278,22 +295,46 @@ FROM -- ====================================== SELECT - nd -- 年度 - ,jd -- 季度 - ,yd -- 月度 - ,rq -- 日期 - ,zb -- 总部 - ,pq -- 片区 +A.lzlx AS lzlx -- 离职类型id +,A.lzlxname AS lzlxname -- 离职类型名称 +,A.lzyy AS lzyy -- 离职原因id +,A.lzyyname AS lzyyname -- 离职原因名称 +,A.lzrs AS lzrs -- 离职人数 +FROM +( + SELECT + pq -- 片区 ,xm -- 项目 ,lzlx -- 离职类型id ,lzlxname -- 离职类型名称 ,lzyy -- 离职原因id ,lzyyname -- 离职原因名称 ,lzrs -- 离职人数 -FROM ods_hr_view_lzrs_fl_d -WHERE LEFT(rq,7) = '${p_ym}' - ${IF(LEN(p_area)>0," AND pq IN ('"+JOINARRAY(p_area,"','")+"')", "")} - + FROM ods_hr_view_lzrs_fl_d + WHERE LEFT(rq,7) = '${p_ym}' +)A +LEFT JOIN +( + SELECT + organ_code -- erp片区编码 + ,organ_name -- erp片区名称 + ,hr_organ_id -- hr片区编码 + ,hr_organ_name -- hr片区名称 + ,hr_comm_id -- hr项目id + ,hr_comm_name -- hr项目名称 + FROM dim_organ_mapping_kunan_tmp + GROUP BY + organ_code + ,organ_name + ,hr_organ_id + ,hr_organ_name + ,hr_comm_id + ,hr_comm_name +)B +ON A.pq = B.hr_organ_id +and A.xm = B.hr_comm_id +where 1 = 1 +${IF(LEN(p_area)>0," AND B.organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")} -- ====================================== -- 人力行政成本费率柱状图 @@ -318,42 +359,29 @@ FROM ( -- 费控人力成本科目汇总表 SELECT - organ_name + organ_code ,CONCAT(yearname,'-',monthname) AS yr_month ,SUM(CASE WHEN fee_type IN('实际值','目标值') THEN total_fee ELSE 0 END) / 10000 AS actual_cost -- 人力成本 from dw.dws_cost_ac_summary_d WHERE yearname = left('${p_ym}',4) AND CONCAT(yearname,'-',monthname) < '${p_ym}' - GROUP BY CONCAT(yearname,'-',monthname),organ_name + GROUP BY CONCAT(yearname,'-',monthname),organ_code )A LEFT JOIN (-- 公司实际收入 SELECT yr_month - ,organ_name + ,organ_code ,SUM(index_income_fact) AS index_income_fact -- 实际收入 FROM ods_caiwu_feecollection WHERE category = '物业' AND LEFT(yr_month,4) = left('${p_ym}',4) - GROUP BY yr_month,organ_name + GROUP BY yr_month,organ_code )B ON A.yr_month = B.yr_month - AND A.organ_name = B.organ_name - LEFT JOIN - ( - SELECT - id - ,subcompanyname - FROM ods_hr_hrmsubcompany_d - WHERE tlevel = '2' - GROUP BY - id - ,subcompanyname - )C - ON A.organ_name = C.subcompanyname - WHERE 1=1 - ${IF(LEN(p_area)>0," AND C.id IN ('"+JOINARRAY(p_area,"','")+"')", "")} - + AND A.organ_code = B.organ_code + WHERE 1 = 1 + ${IF(LEN(p_area)>0," AND A.organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")} )T1 ORDER BY T1.yr_month ${if(p_type='人力',"","*/")} @@ -378,44 +406,32 @@ FROM ( -- 费控人力成本科目汇总表 SELECT - organ_name + organ_code ,CONCAT(yearname, '-', monthname) AS yr_month ,SUM(CASE WHEN fee_type IN ('实际值', '目标值') THEN total_fee ELSE 0 END) / 10000 AS actual_cost -- 人力成本 FROM dw.dws_cost_lc_summary_d WHERE yearname = LEFT('${p_ym}', 4) AND CONCAT(yearname, '-', monthname) < '${p_ym}' - GROUP BY CONCAT(yearname, '-', monthname),organ_name + GROUP BY CONCAT(yearname, '-', monthname),organ_code ) A LEFT JOIN (-- 公司实际收入 SELECT yr_month - ,organ_name + ,organ_code , SUM(index_income_fact) AS index_income_fact -- 实际收入 FROM ods_caiwu_feecollection WHERE category = '物业' AND LEFT(yr_month, 4) = LEFT('${p_ym}', 4) - GROUP BY yr_month,organ_name + GROUP BY yr_month,organ_code )B ON A.yr_month = B.yr_month - AND A.organ_name = B.organ_name - LEFT JOIN - ( - SELECT - id - ,subcompanyname - FROM ods_hr_hrmsubcompany_d - WHERE tlevel = '2' - GROUP BY - id - ,subcompanyname - )C - ON A.organ_name = C.subcompanyname + AND A.organ_code = B.organ_code WHERE 1=1 - ${IF(LEN(p_area)>0," AND C.id IN ('"+JOINARRAY(p_area,"','")+"')", "")} + ${IF(LEN(p_area)>0," AND B.organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")} + )T1 ORDER BY T1.yr_month - ${if(p_type='行政',"","*/")}