From bd5308476ce658a72579095a6bbf0dcc6e6635ef Mon Sep 17 00:00:00 2001 From: yangkunan Date: Sat, 26 Oct 2024 23:41:12 +0800 Subject: [PATCH] =?UTF-8?q?=E5=91=98=E5=B7=A5=E6=BB=A1=E7=BC=96=E7=8E=87?= =?UTF-8?q?=E6=8E=92=E5=90=8D=E6=8C=89=E7=89=87=E5=8C=BA=E5=B1=95=E7=A4=BA?= =?UTF-8?q?=EF=BC=8C=E4=B8=8D=E6=8C=89=E9=A1=B9=E7=9B=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- finereport/kanban/pc/人力.sql | 170 ++++++++++++++++++++++++++-------- 1 file changed, 133 insertions(+), 37 deletions(-) diff --git a/finereport/kanban/pc/人力.sql b/finereport/kanban/pc/人力.sql index a415032..234636a 100644 --- a/finereport/kanban/pc/人力.sql +++ b/finereport/kanban/pc/人力.sql @@ -233,7 +233,7 @@ where 1 = 1 -- 员工满编率排名 -- ====================================== --- 注意 目前会有一个空的排名 是因为佳美物业未做映射 +-- 注意 目前会有空的排名 是因为佳美物业未做映射 SELECT T1.organ_comm AS organ_comm @@ -438,12 +438,11 @@ ${if(p_type='行政',"","*/")} -- ====================================== -- 人力行政成本费率排名 -- ====================================== +-- 这里无法筛选片区时展示对应片区下项目费率的排名 +-- 原因: 费控成本均在各片区智能下,普通项目没有费用,可使用如下sql查询: - - -${if(p_type='人力',"","/*")} - - SELECT +/* +SELECT A.organ_comm_name AS organ_comm_name ,A.actual_cost AS actual_cost -- 成本 ,B.index_income_fact AS index_income_fact -- 实际收入 @@ -454,7 +453,9 @@ ${if(p_type='人力',"","/*")} ( -- 费控人力成本科目汇总表 SELECT - ${IF(LEN(p_area)>0,"dimsubjectname", "organ_name")} AS organ_comm_name + A2.comm_name AS organ_comm_name + ,A2.comm_id AS organ_comm_code + ,A2.cost_comm_name AS cost_comm_name ,SUM(CASE WHEN fee_type IN('实际值','目标值') THEN total_fee ELSE 0 END) / 10000 AS actual_cost -- 人力成本 ,SUM(CASE WHEN fee_type = '目标值' THEN total_fee ELSE 0 END) / 10000 AS budget_actual_cost -- 人力成本预算值 @@ -463,38 +464,117 @@ ${if(p_type='人力',"","/*")} SELECT * FROM dw.dws_cost_ac_summary_d - WHERE CONCAT(yearname,'-',monthname) = '${LEFT(MONTHDELTA(p_ym,-1),7)}' + WHERE CONCAT(yearname,'-',monthname) = '2024-09' )A1 - LEFT JOIN + LEFT JOIN ( SELECT - id - ,subcompanyname - FROM ods_hr_hrmsubcompany_d - WHERE tlevel = '2' + organ_code -- erp片区编码 + ,organ_name -- erp片区名称 + ,comm_id + ,comm_name + ,cost_comm_id -- 费控项目id + ,cost_comm_name -- 费控项目名称 + FROM dim_organ_mapping_kunan_tmp GROUP BY - id - ,subcompanyname + organ_code -- erp片区编码 + ,organ_name -- erp片区名称 + ,comm_id + ,comm_name + ,cost_comm_id -- 费控项目id + ,cost_comm_name -- 费控项目名称 )A2 - ON A1.organ_name = A2.subcompanyname + ON A1.organ_code = A2.organ_code + AND A1.dimsubjectcode = A2.cost_comm_id WHERE 1=1 - ${IF(LEN(p_area)>0," AND A2.id IN ('"+JOINARRAY(p_area,"','")+"')", "")} + -- AND A2.organ_code IN ('0102') GROUP BY - ${IF(LEN(p_area)>0,"dimsubjectname", "organ_name")} + A2.comm_name + ,A2.comm_id + ,A2.cost_comm_name )A LEFT JOIN (-- 公司实际收入 SELECT - ${IF(LEN(p_area)>0,"comm_name", "organ_name")} AS organ_comm_name + comm_name AS organ_comm_name + ,comm_id AS organ_comm_code + ,SUM(index_income_fact) AS index_income_fact -- 实际收入 + ,SUM(index_income_target) AS index_income_target -- 收入目标 + FROM ods_caiwu_feecollection + WHERE category = '物业' + AND yr_month = '2024-09' + GROUP BY + comm_name + ,comm_id + )B + ON A.organ_comm_code = B.organ_comm_code + */ + + + +${if(p_type='人力',"","/*")} + + SELECT + A.organ_name AS organ_comm_name + ,A.actual_cost AS actual_cost -- 成本 + ,B.index_income_fact AS index_income_fact -- 实际收入 + ,ROW_NUMBER() OVER (ORDER BY A.actual_cost / B.index_income_fact DESC ) AS 排名 -- 费率排名 + ,A.actual_cost / B.index_income_fact AS fee_rate -- 费率 + ,A.budget_actual_cost / B.index_income_target AS target_fee_rate -- 费率目标 + FROM + ( +-- 费控人力成本科目汇总表 + SELECT + A1.organ_code + ,A1.organ_name + -- ${IF(LEN(p_area)>0,"dimsubjectname", "organ_name")} AS organ_comm_name + ,SUM(CASE WHEN fee_type IN('实际值','目标值') THEN total_fee ELSE 0 END) / 10000 AS actual_cost -- 人力成本 + ,SUM(CASE WHEN fee_type = '目标值' THEN total_fee ELSE 0 END) / 10000 AS budget_actual_cost -- 人力成本预算值 + FROM + ( + SELECT + * + FROM dw.dws_cost_ac_summary_d -- 费控人力成本科目汇总表 + WHERE CONCAT(yearname,'-',monthname) = '${LEFT(MONTHDELTA(p_ym,-1),7)}' -- 取上月数据 + )A1 + LEFT JOIN + ( + SELECT + organ_code -- erp片区编码 + ,organ_name -- erp片区名称 + ,cost_comm_id + ,cost_comm_name + FROM dim_organ_mapping_kunan_tmp + GROUP BY + organ_code + ,organ_name + ,cost_comm_id + ,cost_comm_name + )A2 + ON A1.organ_code = A2.organ_code + -- AND A1.dimsubjectcode = A2.cost_comm_id + WHERE 1=1 + -- ${IF(LEN(p_area)>0," AND A2.id IN ('"+JOINARRAY(p_area,"','")+"')", "")} + GROUP BY + A1.organ_code + ,A1.organ_name + -- ${IF(LEN(p_area)>0,"dimsubjectname", "organ_name")} + )A + LEFT JOIN + (-- 公司实际收入 + SELECT + -- ${IF(LEN(p_area)>0,"comm_name", "organ_name")} AS organ_comm_name + organ_code ,SUM(index_income_fact) AS index_income_fact -- 实际收入 ,SUM(index_income_target) AS index_income_target -- 收入目标 FROM ods_caiwu_feecollection WHERE category = '物业' AND yr_month = '${LEFT(MONTHDELTA(p_ym,-1),7)}' GROUP BY - ${IF(LEN(p_area)>0,"comm_name", "organ_name")} + -- ${IF(LEN(p_area)>0,"comm_name", "organ_name")} + organ_code )B - ON A.organ_comm_name = B.organ_comm_name + ON A.organ_code = B.organ_code ${if(p_type='人力',"","*/")} @@ -503,7 +583,7 @@ ${if(p_type='行政',"","/*")} SELECT - A.organ_comm_name AS organ_comm_name + A.organ_name AS organ_comm_name ,A.actual_cost AS actual_cost -- 成本 ,B.index_income_fact AS index_income_fact -- 实际收入 ,ROW_NUMBER() OVER (ORDER BY A.actual_cost / B.index_income_fact DESC ) AS 排名 -- 费率排名 @@ -513,7 +593,10 @@ FROM ( -- 费控人力成本科目汇总表 SELECT - ${IF(LEN(p_area)>0,"dimsubjectname", "organ_name")} AS organ_comm_name + -- ${IF(LEN(p_area)>0,"A2.comm_name", "A1.organ_name")} AS organ_comm_name + -- ${IF(LEN(p_area)>0,",A2.comm_id", ",A1.organ_code")} AS organ_comm_code + A1.organ_code + ,A1.organ_name ,SUM(CASE WHEN fee_type IN('实际值','目标值') THEN total_fee ELSE 0 END) / 10000 AS actual_cost -- 人力成本 ,SUM(CASE WHEN fee_type = '目标值' THEN total_fee ELSE 0 END) / 10000 AS budget_actual_cost -- 人力成本预算值 @@ -524,35 +607,48 @@ FROM FROM dw.dws_cost_lc_summary_d WHERE CONCAT(yearname,'-',monthname) = '${LEFT(MONTHDELTA(p_ym,-1),7)}' )A1 - LEFT JOIN + LEFT JOIN ( SELECT - id - ,subcompanyname - FROM ods_hr_hrmsubcompany_d - WHERE tlevel = '2' + organ_code -- erp片区编码 + ,organ_name -- erp片区名称 + ,comm_id + ,comm_name + ,cost_comm_id + ,cost_comm_name + FROM dim_organ_mapping_kunan_tmp GROUP BY - id - ,subcompanyname + organ_code + ,organ_name + ,comm_id + ,comm_name + ,cost_comm_id + ,cost_comm_name )A2 - ON A1.organ_name = A2.subcompanyname + ON A1.organ_code = A2.organ_code + -- AND A1.dimsubjectcode = A2.cost_comm_id WHERE 1=1 - ${IF(LEN(p_area)>0," AND A2.id IN ('"+JOINARRAY(p_area,"','")+"')", "")} + -- ${IF(LEN(p_area)>0," AND A2.organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")} GROUP BY - ${IF(LEN(p_area)>0,"dimsubjectname", "organ_name")} + A1.organ_code + ,A1.organ_name + -- ${IF(LEN(p_area)>0,"A2.comm_name", "A1.organ_name")} + -- ${IF(LEN(p_area)>0,",A2.comm_id", ",A1.organ_code")} )A LEFT JOIN (-- 公司实际收入 SELECT - ${IF(LEN(p_area)>0,"comm_name", "organ_name")} AS organ_comm_name + -- ${IF(LEN(p_area)>0,"comm_id", "organ_code")} AS organ_comm_code + organ_code ,SUM(index_income_fact) AS index_income_fact -- 实际收入 ,SUM(index_income_target) AS index_income_target -- 收入目标 FROM ods_caiwu_feecollection WHERE category = '物业' AND yr_month = '${LEFT(MONTHDELTA(p_ym,-1),7)}' GROUP BY - ${IF(LEN(p_area)>0,"comm_name", "organ_name")} + organ_code + -- ${IF(LEN(p_area)>0,"comm_id", "organ_code")} )B - ON A.organ_comm_name = B.organ_comm_name + ON A.organ_code = B.organ_code - ${if(p_type='行政',"","*/")} \ No newline at end of file + ${if(p_type='行政',"","*/")}