From fb6a2b6da6efda6a29c87daa6a2c6daf5803c2c4 Mon Sep 17 00:00:00 2001 From: yangkunan Date: Tue, 10 Dec 2024 19:51:51 +0800 Subject: [PATCH] =?UTF-8?q?=E9=98=88=E5=80=BC=E5=A1=AB=E6=8A=A5+=E7=9C=8B?= =?UTF-8?q?=E6=9D=BF=E7=A6=BB=E8=81=8C=E7=8E=87=E5=8F=96=E6=95=B0=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/sqldialects.xml | 2 + finereport/kanban/mobile/人力_mobile.sql | 20 +- finereport/kanban/pc/人力.sql | 23 +- .../2_operation/住服比、接房率阈值填报.sql | 16 ++ .../xiazuan/5_manpower/3_员工离职率明细.sql | 17 +- .../xiazuan/5_manpower/5_在职人员明细.sql | 239 ------------------ 6 files changed, 56 insertions(+), 261 deletions(-) create mode 100644 finereport/tianbao/2_operation/住服比、接房率阈值填报.sql diff --git a/.idea/sqldialects.xml b/.idea/sqldialects.xml index 8d3f06c..cba18ae 100644 --- a/.idea/sqldialects.xml +++ b/.idea/sqldialects.xml @@ -32,6 +32,8 @@ + + \ No newline at end of file diff --git a/finereport/kanban/mobile/人力_mobile.sql b/finereport/kanban/mobile/人力_mobile.sql index 8806437..50ab8ca 100644 --- a/finereport/kanban/mobile/人力_mobile.sql +++ b/finereport/kanban/mobile/人力_mobile.sql @@ -309,7 +309,7 @@ CASE WHEN SUM(zzrs) = 0 THEN 0 FROM ( SELECT - SUM(A1.zzrs) AS zzrs + SUM(CASE WHEN A1.ny = '${p_ym}' THEN A1.zzrs ELSE 0 END) AS zzrs -- 在职人数 ,SUM(A1.zlzrs) AS zlzrs FROM ( @@ -447,7 +447,8 @@ FROM )T1 GROUP BY T1.ym )A1 - WHERE A1.ny = '${p_ym}' + WHERE left(A1.ny,4) = '${left(p_ym,4)}' + AND A1.ny <= '${p_ym}' )A UNION ALL SELECT @@ -475,7 +476,7 @@ FROM ( SELECT A1.pq AS pq - ,A1.zzrs AS zzrs + ,CASE WHEN A1.ny = '${p_ym}' THEN A1.zzrs ELSE 0 END AS zzrs -- 在职人数 ,A1.zlzrs AS zlzrs FROM ( @@ -601,7 +602,8 @@ FROM FROM ods_hr_history_erp_date) T1 GROUP BY T1.ym, T1.organ_code )A1 - WHERE A1.ny = '${p_ym}' + WHERE left(A1.ny,4) = '${left(p_ym,4)}' + AND A1.ny <= '${p_ym}' )A LEFT JOIN ( @@ -1418,7 +1420,7 @@ FROM SELECT T.pq as pq - ,SUM(T.zzrs) AS zzrs + ,SUM(CASE WHEN T.ym = '${p_ym}' THEN T.zzrs ELSE 0 END) AS zzrs -- 在职人数 ,SUM(T.zlzrs) AS zlzrs FROM ( @@ -1553,7 +1555,8 @@ FROM )T1 GROUP BY T1.organ_code ,T1.ym )T - WHERE LEFT(ym,7) = '${p_ym}' + WHERE left(T.ym,4) = '${left(p_ym,4)}' + AND T.ym <= '${p_ym}' AND pq not in('89','267') -- 排除了佳美、悦汇 group by T.pq )A @@ -1618,7 +1621,7 @@ FROM SELECT T.pq as pq ,T.xm AS xm - ,SUM(T.zzrs) AS zzrs + ,SUM(CASE WHEN T.ym = '${p_ym}' THEN T.zzrs ELSE 0 END) AS zzrs -- 在职人数 ,sum(T.zlzrs) AS zlzrs FROM ( @@ -1753,7 +1756,8 @@ FROM )T1 GROUP BY T1.organ_code, T1.comm_id ,T1.ym )T - WHERE LEFT(ym,7) = '${p_ym}' + WHERE left(T.ym,4) = '${left(p_ym,4)}' + AND T.ym <= '${p_ym}' AND pq not in('89','267') -- 排除了佳美、悦汇 AND (pq is NOT NULL OR xm IS NOT NULL ) group by T.pq,T.xm diff --git a/finereport/kanban/pc/人力.sql b/finereport/kanban/pc/人力.sql index 643b7a7..fcb1060 100644 --- a/finereport/kanban/pc/人力.sql +++ b/finereport/kanban/pc/人力.sql @@ -1553,7 +1553,7 @@ FROM ( SELECT T.pq as pq - ,SUM(T.zzrs) AS zzrs + ,SUM(CASE WHEN T.ym = '${p_ym}' THEN T.zzrs ELSE 0 END) AS zzrs -- 在职人数 ,SUM(T.zlzrs) AS zlzrs FROM ( @@ -1688,7 +1688,8 @@ FROM )T1 GROUP BY T1.organ_code ,T1.ym )T - WHERE LEFT(ym,7) = '${p_ym}' + WHERE left(T.ym,4) = '${left(p_ym,4)}' + AND T.ym <= '${p_ym}' AND pq not in('89','267') -- 排除了佳美、悦汇 group by T.pq )A @@ -1760,7 +1761,7 @@ FROM SELECT T.pq as pq ,T.xm AS xm - ,SUM(T.zzrs) AS zzrs + ,SUM(CASE WHEN T.ym = '${p_ym}' THEN T.zzrs ELSE 0 END) AS zzrs -- 在职人数 ,sum(T.zlzrs) AS zlzrs FROM ( @@ -1895,7 +1896,8 @@ FROM )T1 GROUP BY T1.organ_code, T1.comm_id ,T1.ym )T - WHERE LEFT(ym,7) = '${p_ym}' + WHERE left(T.ym,4) = '${left(p_ym,4)}' + AND T.ym <= '${p_ym}' AND pq not in('89','267') -- 排除了佳美、悦汇 AND (pq is NOT NULL OR xm IS NOT NULL ) group by T.pq,T.xm @@ -2214,7 +2216,7 @@ CASE WHEN SUM(zzrs) = 0 THEN 0 FROM ( SELECT - SUM(A1.zzrs) AS zzrs + SUM(CASE WHEN A1.ny = '${p_ym}' THEN A1.zzrs ELSE 0 END) AS zzrs -- 在职人数 ,SUM(A1.zlzrs) AS zlzrs FROM ( @@ -2348,7 +2350,8 @@ FROM )T1 GROUP BY T1.ym )A1 - WHERE A1.ny = '${p_ym}' + WHERE left(A1.ny,4) = '${left(p_ym,4)}' + AND A1.ny <= '${p_ym}' )A UNION ALL SELECT @@ -2376,8 +2379,8 @@ FROM ( SELECT A1.pq AS pq - ,A1.zzrs AS zzrs - ,A1.zlzrs AS zlzrs + ,SUM(CASE WHEN A1.ny = '${p_ym}' THEN A1.zzrs ELSE 0 END) AS zzrs -- 在职人数 + ,SUM(A1.zlzrs) AS zlzrs FROM ( SELECT @@ -2502,7 +2505,9 @@ FROM FROM ods_hr_history_erp_date) T1 GROUP BY T1.ym, T1.organ_code )A1 - WHERE A1.ny = '${p_ym}' + WHERE left(A1.ny,4) = '${left(p_ym,4)}' + AND A1.ny <= '${p_ym}' + group by A1.pq )A LEFT JOIN ( diff --git a/finereport/tianbao/2_operation/住服比、接房率阈值填报.sql b/finereport/tianbao/2_operation/住服比、接房率阈值填报.sql new file mode 100644 index 0000000..9736a3b --- /dev/null +++ b/finereport/tianbao/2_operation/住服比、接房率阈值填报.sql @@ -0,0 +1,16 @@ +DROP TABLE ods_operation_live_pick; +CREATE TABLE ods_operation_live_pick ( +exce_thrd_type varchar(50) COMMENT '异常阈值类型' +,outliers decimal(8,4) COMMENT '异常阈值' +,update_by varchar(50) COMMENT '数据更新人' +,update_time datetime COMMENT '数据更新时间' +-- ,PRIMARY KEY (contract_code) +) COMMENT='住服比接房率阈值填报'; + +select * from ods_operation_live_pick; + + +select exce_thrd_type,outliers from ods_operation_live_pick; + +SELECT outliers FROM ods_operation_live_pick WHERE exce_thrd_type = '住服比'; + diff --git a/finereport/xiazuan/5_manpower/3_员工离职率明细.sql b/finereport/xiazuan/5_manpower/3_员工离职率明细.sql index f5f2bc2..cd21fb5 100644 --- a/finereport/xiazuan/5_manpower/3_员工离职率明细.sql +++ b/finereport/xiazuan/5_manpower/3_员工离职率明细.sql @@ -12,16 +12,23 @@ ${IF(LEN(p_area)>0,"B.hr_comm_name", "hr_organ_name")} AS hr_organ_name ,SUM(A.StartOfmonth_zzrs) AS StartOfmonth_zzrs -- 月初在职人数 ,SUM(A.EndOfmonth_zsrs) AS EndOfmonth_zsrs -- 月末在职人数 ,sum(A.zdlzrs) AS zdlzrs -- 主动离职人数 -,CASE WHEN SUM(A.zzrs) = 0 THEN 0 ELSE sum(A.zdlzrs) / SUM(A.zzrs) END AS zdlz_rate +,CASE WHEN SUM(A.zzrs) = 0 THEN 0 ELSE sum(A.zdlzrs) / SUM(A.zzrs) END AS zdlz_rate -- 主动离职率 ,sum(A.bdlzrs) AS bdlzrs -- 当天被动离职人数 -,CASE WHEN SUM(A.zzrs) = 0 THEN 0 ELSE sum(A.bdlzrs) / SUM(A.zzrs) END AS bdlz_rate +,CASE WHEN SUM(A.zzrs) = 0 THEN 0 ELSE sum(A.bdlzrs) / SUM(A.zzrs) END AS bdlz_rate -- 被动离职率 ,SUM(A.zlzrs) AS zlzrs -- 总离职人数 -,CASE WHEN SUM(A.zzrs) = 0 THEN 0 ELSE sum(A.zlzrs) / SUM(A.zzrs) END AS lz_rate +,CASE WHEN SUM(A.zzrs) = 0 THEN 0 ELSE sum(A.zlzrs) / SUM(A.zzrs) END AS lz_rate -- 离职率 FROM ( SELECT - pq, xm, ym, StartOfmonth_zzrs, EndOfmonth_zsrs, zdlzrs, bdlzrs, zlzrs -,(StartOfmonth_zzrs + EndOfmonth_zsrs) / 2 AS zzrs + pq -- 片区 + ,xm -- 项目 + ,ym -- 年月 + ,StartOfmonth_zzrs -- 月初在职人数 + ,EndOfmonth_zsrs -- 月末在职人数 + ,zdlzrs -- 主动离职人数 + ,bdlzrs -- 被动离职人数 + ,zlzrs -- 总离职人数 + ,(StartOfmonth_zzrs + EndOfmonth_zsrs) / 2 AS zzrs -- 平均在职人数 FROM ( SELECT diff --git a/finereport/xiazuan/5_manpower/5_在职人员明细.sql b/finereport/xiazuan/5_manpower/5_在职人员明细.sql index 0a13177..be896d0 100644 --- a/finereport/xiazuan/5_manpower/5_在职人员明细.sql +++ b/finereport/xiazuan/5_manpower/5_在职人员明细.sql @@ -2,47 +2,6 @@ -- 年龄分布 -- ====================================== -SELECT -nld -,sum(sl) AS sl -FROM -( -SELECT -zb -- 总部 -,pq -- 片区 -,xm -- 项目 -,nld -- 年龄段 -,sl -- 数量 -FROM ods_hr_view_nld_d -)A -LEFT JOIN -( - SELECT - organ_code - ,hr_organ_id - ,hr_comm_id - FROM dim_organ_mapping - GROUP BY - organ_code - ,hr_organ_id - ,hr_comm_id - UNION ALL - SELECT - '0000' AS organ_code -- erp片区编码 - ,'153' AS hr_organ_id -- hr片区编码 - ,'153' AS hr_comm_id -- hr项目id - FROM dual - -)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,"','")+"')", "")} -GROUP BY nld - - - - -- 年龄分布 -- 年龄<30岁;30岁≤年龄<40岁;40岁≤年龄<50岁;50岁≤年龄<60岁;60岁≤年龄<65岁;年龄≥65岁; with one_to_many AS( @@ -127,44 +86,6 @@ GROUP BY -- 司龄分布 -- ====================================== -SELECT - sld - ,sum(sl) AS sl -FROM - ( - SELECT - zb -- 总部 - ,pq -- 片区 - ,xm -- 项目 - ,sld -- 司龄段 - ,sl -- 数量 - FROM ods_hr_view_sld_d - )A - LEFT JOIN - ( - SELECT - organ_code - ,hr_organ_id - ,hr_comm_id - FROM dim_organ_mapping - GROUP BY - organ_code - ,hr_organ_id - ,hr_comm_id - UNION ALL - SELECT - '0000' AS organ_code -- erp片区编码 - ,'153' AS hr_organ_id -- hr片区编码 - ,'153' AS hr_comm_id -- hr项目id - FROM dual - - )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,"','")+"')", "")} -GROUP BY sld - -- 司龄<3个月内;3个月≤司龄<1年;1年≤司龄<3年;3年≤司龄<5年;5年≤司龄<10年;10年≤司龄<15年;司龄≥15年; with one_to_many AS( SELECT @@ -250,47 +171,6 @@ GROUP BY -- 学历分布 -- ====================================== - -SELECT - xl - ,sum(sl) AS sl -FROM - ( - SELECT - zb -- 总部 - ,pq -- 片区 - ,xm -- 项目 - ,xl -- 学历 - ,sl -- 数量 - FROM ods_hr_view_xl_d - )A - LEFT JOIN - ( - SELECT - organ_code - ,hr_organ_id - ,hr_comm_id - FROM dim_organ_mapping - GROUP BY - organ_code - ,hr_organ_id - ,hr_comm_id - UNION ALL - SELECT - '0000' AS organ_code -- erp片区编码 - ,'153' AS hr_organ_id -- hr片区编码 - ,'153' AS hr_comm_id -- hr项目id - FROM dual - - )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,"','")+"')", "")} -GROUP BY xl - - - with one_to_many AS( SELECT a.username AS username -- 用户名 @@ -363,44 +243,6 @@ GROUP BY -- ====================================== -SELECT - zwje - ,sum(sl) AS sl -FROM - ( - SELECT - zb -- 总部 - ,pq -- 片区 - ,xm -- 项目 - ,zwje -- 职务角色 - ,sl -- 数量 - FROM dw.ods_hr_view_zwjs_d - )A - LEFT JOIN - ( - SELECT - organ_code - ,hr_organ_id - ,hr_comm_id - FROM dim_organ_mapping - GROUP BY - organ_code - ,hr_organ_id - ,hr_comm_id - UNION ALL - SELECT - '0000' AS organ_code -- erp片区编码 - ,'153' AS hr_organ_id -- hr片区编码 - ,'153' AS hr_comm_id -- hr项目id - FROM dual - - )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,"','")+"')", "")} -GROUP BY zwje - -- 总部职能中心/一级部门负责人及以上人员 -- 总部二级职能部门负责人 -- 片区负责人 @@ -484,46 +326,6 @@ GROUP BY -- 职务层级 -- ====================================== - -SELECT - swtx - ,sum(sl) AS sl -FROM - ( - SELECT - zb -- 总部 - ,pq -- 片区 - ,xm -- 项目 - ,swtx -- 职务层级 - ,sl -- 数量 - FROM dw.ods_hr_view_swtx_d - )A - LEFT JOIN - ( - SELECT - organ_code - ,hr_organ_id - ,hr_comm_id - FROM dim_organ_mapping - GROUP BY - organ_code - ,hr_organ_id - ,hr_comm_id - UNION ALL - SELECT - '0000' AS organ_code -- erp片区编码 - ,'153' AS hr_organ_id -- hr片区编码 - ,'153' AS hr_comm_id -- hr项目id - FROM dual - )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,"','")+"')", "")} -GROUP BY swtx - - - with one_to_many AS( SELECT a.username AS username -- 用户名 @@ -596,47 +398,6 @@ GROUP BY -- ====================================== -SELECT - zytx - ,sum(sl) AS sl -FROM - ( - SELECT - zb -- 总部 - ,pq -- 片区 - ,xm -- 项目 - ,zytx -- 一级专业条线 - ,sl -- 数量 - FROM dw.ods_hr_view_zytx_d - )A - LEFT JOIN - ( - SELECT - organ_code - ,hr_organ_id - ,hr_comm_id - FROM dim_organ_mapping - GROUP BY - organ_code - ,hr_organ_id - ,hr_comm_id - UNION ALL - SELECT - '0000' AS organ_code -- erp片区编码 - ,'153' AS hr_organ_id -- hr片区编码 - ,'153' AS hr_comm_id -- hr项目id - FROM dual - - )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,"','")+"')", "")} -GROUP BY zytx -; - - - with one_to_many AS(