diff --git a/finereport/kanban/pc/人力.sql b/finereport/kanban/pc/人力.sql index 22461bb..402d4e0 100644 --- a/finereport/kanban/pc/人力.sql +++ b/finereport/kanban/pc/人力.sql @@ -69,13 +69,115 @@ FROM third_department SELECT SUM(zzs) AS SL FROM +( + SELECT + A1.pq + ,A1.xm + ,SUM(A1.zzs) as zzs + FROM ( - SELECT - pq -- 片区 - ,xm -- 项目 - ,zzs -- 在职人数 - FROM ods_hr_view_mbl_d -- 在职与编制人数 - WHERE ny = '${p_ym}' + SELECT + + pq -- 片区 + ,xm -- 项目 + ,ny AS ym + ,zzs -- 在职人数 + FROM ods_hr_view_mbl_d -- + WHERE ny >= '2024-10' + -- 新增历史数据 + UNION ALL + SELECT + T1.organ_code AS pq + ,T1.comm_id AS xm + ,T1.ym AS ym + ,SUM(T1.begin_num ) AS zzrs-- 月初在职 + FROM + ( + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-01' AS ym + ,COALESCE(jan_begin_num,0) AS begin_num -- 月初在职 + FROM ods_hr_history_erp_date + UNION ALL + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-02' AS ym + ,COALESCE(feb_begin_num,0) AS begin_num -- 月初在职 + FROM ods_hr_history_erp_date + UNION ALL + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-03' AS ym + ,COALESCE(mar_begin_num,0) AS begin_num -- 月初在职 + FROM ods_hr_history_erp_date + UNION ALL + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-04' AS ym + ,COALESCE(apr_begin_num,0) AS begin_num -- 月初在职 + FROM ods_hr_history_erp_date + UNION ALL + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-05' AS ym + ,COALESCE(may_begin_num,0) AS begin_num -- 月初在职 + FROM ods_hr_history_erp_date + UNION ALL + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-06' AS ym + ,COALESCE(jun_begin_num,0) AS begin_num -- 月初在职 + FROM ods_hr_history_erp_date + UNION ALL + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-07' AS ym + ,COALESCE(jul_begin_num,0) AS begin_num -- 月初在职 + FROM ods_hr_history_erp_date + UNION ALL + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-08' AS ym + ,COALESCE(aug_begin_num,0) AS begin_num -- 月初在职 + FROM ods_hr_history_erp_date + UNION ALL + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-09' AS ym + ,COALESCE(sep_begin_num,0) AS begin_num -- 月初在职 + FROM ods_hr_history_erp_date + )T1 + GROUP BY T1.organ_code, T1.comm_id ,T1.ym + )A1 + WHERE A1.ym = '${p_ym}' + GROUP BY A1.pq,A1.xm )A LEFT JOIN ( @@ -107,7 +209,6 @@ FROM and A.xm = b.hr_comm_id where 1 = 1 ${IF(LEN(p_area)>0," AND B.organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")} - -- ====================================== -- 指标卡_离职人数 -- ====================================== @@ -115,16 +216,125 @@ ${IF(LEN(p_area)>0," AND B.organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")} SELECT SUM(lzrs) AS SL FROM +( + SELECT + A1.pq AS pq + ,A1.xm AS xm + ,SUM(A1.lzrs) AS lzrs + FROM ( - SELECT - pq -- 片区 - ,xm -- 项目 - ,lzrs -- 离职人数 - ,concat(nd,'-',yd) AS YM -- 年月 + SELECT pq -- 片区 + , xm -- 项目 + , CONCAT(nd, '-', yd) AS ym -- 年月 + , lzrs -- 离职人数 FROM ods_hr_view_lzrs_d -- 离职人数 - WHERE left(rq,4) = left('${p_ym}',4) -- 取累计值 - AND left(rq,7) <= '${p_ym}' + WHERE LEFT(rq, 7) >= '2024-10' -- 取累计值 10月以后取HR系统 + UNION ALL + SELECT + T1.organ_code AS pq + ,T1.comm_id AS xm + ,T1.ym AS ym + ,SUM(T1.active_quit) + SUM(T1.pass_quit ) AS lzrs + FROM + ( + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-01' AS ym + ,COALESCE(jan_active_quit,0) AS active_quit -- 主动离职人数 + ,COALESCE(jan_pass_quit,0) AS pass_quit -- 被动离职人数 + FROM ods_hr_history_erp_date + UNION ALL + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-02' AS ym + ,COALESCE(feb_active_quit,0) AS active_quit -- 主动离职人数 + ,COALESCE(feb_pass_quit,0) AS pass_quit -- 被动离职人数 + FROM ods_hr_history_erp_date + UNION ALL + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-03' AS ym + ,COALESCE(mar_active_quit,0) AS active_quit -- 主动离职人数 + ,COALESCE(mar_pass_quit,0) AS pass_quit -- 被动离职人数 + FROM ods_hr_history_erp_date + UNION ALL + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-04' AS ym + + ,COALESCE(apr_active_quit,0) AS active_quit -- 主动离职人数 + ,COALESCE(apr_pass_quit,0) AS pass_quit -- 被动离职人数 + FROM ods_hr_history_erp_date + UNION ALL + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-05' AS ym + + ,COALESCE(may_active_quit,0) AS active_quit -- 主动离职人数 + ,COALESCE(may_pass_quit,0) AS pass_quit -- 被动离职人数 + FROM ods_hr_history_erp_date + UNION ALL + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-06' AS ym + ,COALESCE(jun_active_quit,0) AS active_quit -- 主动离职人数 + ,COALESCE(jun_pass_quit,0) AS pass_quit -- 被动离职人数 + FROM ods_hr_history_erp_date + UNION ALL + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-07' AS ym + ,COALESCE(jul_active_quit,0) AS active_quit -- 主动离职人数 + ,COALESCE(jul_pass_quit,0) AS pass_quit -- 被动离职人数 + FROM ods_hr_history_erp_date + UNION ALL + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-08' AS ym + ,COALESCE(aug_active_quit,0) AS active_quit -- 主动离职人数 + ,COALESCE(aug_pass_quit,0) AS pass_quit -- 被动离职人数 + FROM ods_hr_history_erp_date + UNION ALL + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-09' AS ym + ,COALESCE(sep_active_quit,0) AS active_quit -- 主动离职人数 + ,COALESCE(sep_pass_quit,0) AS pass_quit -- 被动离职人数 + FROM ods_hr_history_erp_date + )T1 + GROUP BY T1.organ_code, T1.comm_id ,T1.ym + )A1 + WHERE left(A1.ym,4) =left('${p_ym}',4) + AND left(A1.ym,7) <= '${p_ym}' AND pq not in('89','267') -- 排除了佳美、悦汇 + GROUP BY A1.pq,A1.xm )A LEFT JOIN ( @@ -184,15 +394,120 @@ SELECT FROM ( SELECT + A1.yd -- 月度 + ,A1.ny + ,A1.pq -- 片区 + ,A1.xm -- 项目 + ,A1.zzs -- 在职数 + ,A1.bzs -- 编制数 + FROM + ( + SELECT + right(ny,2) AS yd -- 月度 + ,ny + ,pq -- 片区 + ,xm -- 项目 + ,CASE WHEN ny >= '2024-10' THEN zzs ELSE 0 end AS zzs-- 在职数 + ,bzs -- 编制数 + FROM ods_hr_view_mbl_d + WHERE left(ny,4) = LEFT('${p_ym}', 4) + AND pq NOT IN ('89', '267') -- 排除了佳美、悦汇 + UNION ALL + SELECT + right(T1.ym,2) AS yd + ,T1.ym AS ny + ,T1.organ_code AS pq + ,T1.comm_id AS xm + ,SUM(T1.begin_num ) AS zzs-- 月初在职 + ,0 AS bzs + FROM + ( + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-01' AS ym + ,COALESCE(jan_begin_num,0) AS begin_num -- 月初在职 + + FROM ods_hr_history_erp_date + UNION ALL + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-02' AS ym + ,COALESCE(feb_begin_num,0) AS begin_num -- 月初在职 + FROM ods_hr_history_erp_date + UNION ALL + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-03' AS ym + ,COALESCE(mar_begin_num,0) AS begin_num -- 月初在职 + FROM ods_hr_history_erp_date + UNION ALL + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-04' AS ym + ,COALESCE(apr_begin_num,0) AS begin_num -- 月初在职 + FROM ods_hr_history_erp_date + UNION ALL + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-05' AS ym + ,COALESCE(may_begin_num,0) AS begin_num -- 月初在职 + FROM ods_hr_history_erp_date + UNION ALL + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-06' AS ym + ,COALESCE(jun_begin_num,0) AS begin_num -- 月初在职 + FROM ods_hr_history_erp_date + UNION ALL + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-07' AS ym + ,COALESCE(jul_begin_num,0) AS begin_num -- 月初在职 + FROM ods_hr_history_erp_date + UNION ALL + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-08' AS ym + ,COALESCE(aug_begin_num,0) AS begin_num -- 月初在职 + FROM ods_hr_history_erp_date + UNION ALL + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-09' AS ym + ,COALESCE(sep_begin_num,0) AS begin_num -- 月初在职 + FROM ods_hr_history_erp_date + )T1 + GROUP BY T1.organ_code, T1.comm_id ,T1.ym + )A1 + WHERE left(A1.ny,4) = LEFT('${p_ym}', 4) - yd -- 月度 - ,pq -- 片区 - ,xm -- 项目 - ,zzs -- 在职数 - ,bzs -- 编制数 - FROM ods_hr_view_mbl_d - where nd = left('${p_ym}',4) - AND pq not in('89','267') -- 排除了佳美、悦汇 )A LEFT JOIN ( @@ -246,15 +561,114 @@ FROM ,CASE WHEN SUM(bzs) = 0 THEN 0 ELSE SUM(A.zzs) / SUM(A.bzs) END AS RATE ,SUM(C.full_rate_target) AS full_rate_target FROM - ( + ( SELECT - pq -- 片区 - ,SUM(zzs) AS zzs -- 在职数 - ,SUM(bzs) AS bzs -- 编制数 - FROM ods_hr_view_mbl_d - WHERE ny = '${p_ym}' - AND pq NOT IN ('89','267') -- 这里剔除了佳美物业公司/悦汇发展公司 - GROUP BY pq + A1.pq AS pq + ,A1.zzs AS zzs + ,A1.bzs AS bzs + FROM + ( + SELECT + pq -- 片区 + ,ny + ,SUM(CASE WHEN ny >= '2024-10' THEN zzs ELSE 0 end) AS zzs -- 在职数 + ,SUM(bzs) AS bzs -- 编制数 + FROM ods_hr_view_mbl_d + WHERE pq NOT IN ('89','267') -- 这里剔除了佳美物业公司/悦汇发展公司 + GROUP BY pq,ny + UNION ALL + SELECT + T1.organ_code AS pq + ,T1.ym AS ny + ,SUM(T1.begin_num ) AS zzs-- 月初在职 + ,0 AS bzs + FROM + ( + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-01' AS ym + ,COALESCE(jan_begin_num,0) AS begin_num -- 月初在职 + + FROM ods_hr_history_erp_date + UNION ALL + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-02' AS ym + ,COALESCE(feb_begin_num,0) AS begin_num -- 月初在职 + FROM ods_hr_history_erp_date + UNION ALL + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-03' AS ym + ,COALESCE(mar_begin_num,0) AS begin_num -- 月初在职 + FROM ods_hr_history_erp_date + UNION ALL + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-04' AS ym + ,COALESCE(apr_begin_num,0) AS begin_num -- 月初在职 + FROM ods_hr_history_erp_date + UNION ALL + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-05' AS ym + ,COALESCE(may_begin_num,0) AS begin_num -- 月初在职 + FROM ods_hr_history_erp_date + UNION ALL + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-06' AS ym + ,COALESCE(jun_begin_num,0) AS begin_num -- 月初在职 + FROM ods_hr_history_erp_date + UNION ALL + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-07' AS ym + ,COALESCE(jul_begin_num,0) AS begin_num -- 月初在职 + FROM ods_hr_history_erp_date + UNION ALL + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-08' AS ym + ,COALESCE(aug_begin_num,0) AS begin_num -- 月初在职 + FROM ods_hr_history_erp_date + UNION ALL + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-09' AS ym + ,COALESCE(sep_begin_num,0) AS begin_num -- 月初在职 + FROM ods_hr_history_erp_date + )T1 + GROUP BY T1.ym,T1.organ_code + )A1 + WHERE A1.ny = '${p_ym}' )A LEFT JOIN ( @@ -309,14 +723,114 @@ FROM FROM ( SELECT - pq -- 片区 - ,xm -- 项目 - ,SUM(zzs) AS zzs -- 在职数 - ,SUM(bzs) AS bzs -- 编制数 - FROM ods_hr_view_mbl_d - WHERE ny = '${p_ym}' - AND pq NOT IN ('89','267') -- 这里剔除了佳美物业公司/悦汇发展公司 - GROUP BY pq, xm + A1.pq AS pq + ,A1.xm AS xm + ,A1.zzs AS zzs + ,A1.bzs AS bzs + FROM + ( + SELECT + pq -- 片区 + ,xm + ,ny + ,SUM(CASE WHEN ny >= '2024-10' THEN zzs ELSE 0 end) AS zzs -- 在职数 + ,SUM(bzs) AS bzs -- 编制数 + FROM ods_hr_view_mbl_d + WHERE pq NOT IN ('89','267') -- 这里剔除了佳美物业公司/悦汇发展公司 + GROUP BY pq,ny,xm + UNION ALL + SELECT + T1.organ_code AS pq + ,T1.comm_id AS xm + ,T1.ym AS ny + ,SUM(T1.begin_num ) AS zzs-- 月初在职 + ,0 AS bzs + FROM + ( + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-01' AS ym + ,COALESCE(jan_begin_num,0) AS begin_num -- 月初在职 + FROM ods_hr_history_erp_date + UNION ALL + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-02' AS ym + ,COALESCE(feb_begin_num,0) AS begin_num -- 月初在职 + FROM ods_hr_history_erp_date + UNION ALL + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-03' AS ym + ,COALESCE(mar_begin_num,0) AS begin_num -- 月初在职 + FROM ods_hr_history_erp_date + UNION ALL + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-04' AS ym + ,COALESCE(apr_begin_num,0) AS begin_num -- 月初在职 + FROM ods_hr_history_erp_date + UNION ALL + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-05' AS ym + ,COALESCE(may_begin_num,0) AS begin_num -- 月初在职 + FROM ods_hr_history_erp_date + UNION ALL + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-06' AS ym + ,COALESCE(jun_begin_num,0) AS begin_num -- 月初在职 + FROM ods_hr_history_erp_date + UNION ALL + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-07' AS ym + ,COALESCE(jul_begin_num,0) AS begin_num -- 月初在职 + FROM ods_hr_history_erp_date + UNION ALL + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-08' AS ym + ,COALESCE(aug_begin_num,0) AS begin_num -- 月初在职 + FROM ods_hr_history_erp_date + UNION ALL + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-09' AS ym + ,COALESCE(sep_begin_num,0) AS begin_num -- 月初在职 + FROM ods_hr_history_erp_date + )T1 + GROUP BY T1.ym,T1.organ_code,T1.comm_id + )A1 + WHERE A1.ny = '${p_ym}' )A LEFT JOIN ( @@ -1039,11 +1553,108 @@ CASE WHEN SUM(bzs) = 0 THEN 0 ELSE SUM(zzs) / SUM(bzs) END AS full_rate -- 满 FROM ( SELECT - zzs -- 在职数 - ,bzs -- 编制数 - FROM ods_hr_view_mbl_d - WHERE ny = '${p_ym}' - AND pq not in('89','267') -- 排除了佳美、悦汇 + SUM(A1.bzs) AS bzs + ,SUM(A1.zzs) AS zzs + FROM + ( + SELECT + ny + ,CASE WHEN ny >= '2024-10' THEN zzs ELSE 0 end AS zzs-- 在职数 + ,bzs -- 编制数 + FROM ods_hr_view_mbl_d + WHERE pq NOT IN ('89', '267') -- 排除了佳美、悦汇 + UNION ALL + SELECT + T1.ym AS ny + ,SUM(T1.begin_num ) AS zzs-- 月初在职 + ,0 AS bzs + FROM + ( + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-01' AS ym + ,COALESCE(jan_begin_num,0) AS begin_num -- 月初在职 + + FROM ods_hr_history_erp_date + UNION ALL + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-02' AS ym + ,COALESCE(feb_begin_num,0) AS begin_num -- 月初在职 + FROM ods_hr_history_erp_date + UNION ALL + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-03' AS ym + ,COALESCE(mar_begin_num,0) AS begin_num -- 月初在职 + FROM ods_hr_history_erp_date + UNION ALL + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-04' AS ym + ,COALESCE(apr_begin_num,0) AS begin_num -- 月初在职 + FROM ods_hr_history_erp_date + UNION ALL + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-05' AS ym + ,COALESCE(may_begin_num,0) AS begin_num -- 月初在职 + FROM ods_hr_history_erp_date + UNION ALL + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-06' AS ym + ,COALESCE(jun_begin_num,0) AS begin_num -- 月初在职 + FROM ods_hr_history_erp_date + UNION ALL + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-07' AS ym + ,COALESCE(jul_begin_num,0) AS begin_num -- 月初在职 + FROM ods_hr_history_erp_date + UNION ALL + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-08' AS ym + ,COALESCE(aug_begin_num,0) AS begin_num -- 月初在职 + FROM ods_hr_history_erp_date + UNION ALL + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-09' AS ym + ,COALESCE(sep_begin_num,0) AS begin_num -- 月初在职 + FROM ods_hr_history_erp_date + )T1 + GROUP BY T1.ym + )A1 + WHERE A1.ny = '${p_ym}' )A UNION ALL SELECT @@ -1067,18 +1678,118 @@ CASE WHEN SUM(A.bzs) = 0 THEN 0 ELSE SUM(A.zzs) / SUM(A.bzs) END AS full_rate -- ,CASE WHEN (SUM(A.bzs) = 0 OR coalesce(SUM(C.full_rate_target) ,0) = 0)THEN 0 ELSE (SUM(A.zzs) / SUM(A.bzs)) / SUM(C.full_rate_target) END AS target_rate -- 满编率目标占比 FROM +( + SELECT + A1.ny AS ny + ,A1.pq AS pq + ,A1.zzs AS zzs + ,A1.bzs AS bzs + FROM ( SELECT pq -- 片区 - ,SUM(zzs) AS zzs -- 在职数 - ,SUM(bzs) AS bzs -- 编制数 - FROM ods_hr_view_mbl_d - WHERE yd = '${p_ym}' - AND pq not in('89','267') -- 排除了佳美、悦汇 - GROUP BY pq - )A - LEFT JOIN - ( + ,ny + ,SUM(CASE WHEN ny >= '2024-10' THEN zzs ELSE 0 end) AS zzs -- 在职数 + ,SUM(bzs) AS bzs -- 编制数 + FROM ods_hr_view_mbl_d + WHERE pq not in('89','267') -- 排除了佳美、悦汇 + GROUP BY pq,ny + UNION ALL + SELECT + T1.organ_code AS pq + ,T1.ym AS ny + ,SUM(T1.begin_num ) AS zzs-- 月初在职 + ,0 AS bzs + FROM + ( + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-01' AS ym + ,COALESCE(jan_begin_num,0) AS begin_num -- 月初在职 + + FROM ods_hr_history_erp_date + UNION ALL + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-02' AS ym + ,COALESCE(feb_begin_num,0) AS begin_num -- 月初在职 + FROM ods_hr_history_erp_date + UNION ALL + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-03' AS ym + ,COALESCE(mar_begin_num,0) AS begin_num -- 月初在职 + FROM ods_hr_history_erp_date + UNION ALL + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-04' AS ym + ,COALESCE(apr_begin_num,0) AS begin_num -- 月初在职 + FROM ods_hr_history_erp_date + UNION ALL + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-05' AS ym + ,COALESCE(may_begin_num,0) AS begin_num -- 月初在职 + FROM ods_hr_history_erp_date + UNION ALL + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-06' AS ym + ,COALESCE(jun_begin_num,0) AS begin_num -- 月初在职 + FROM ods_hr_history_erp_date + UNION ALL + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-07' AS ym + ,COALESCE(jul_begin_num,0) AS begin_num -- 月初在职 + FROM ods_hr_history_erp_date + UNION ALL + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-08' AS ym + ,COALESCE(aug_begin_num,0) AS begin_num -- 月初在职 + FROM ods_hr_history_erp_date + UNION ALL + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-09' AS ym + ,COALESCE(sep_begin_num,0) AS begin_num -- 月初在职 + FROM ods_hr_history_erp_date + )T1 + GROUP BY T1.ym,T1.organ_code + )A1 + WHERE A1.ny = '${p_ym}' +)A +LEFT JOIN +( SELECT organ_code -- erp片区编码 ,organ_name -- erp片区名称 @@ -1139,12 +1850,129 @@ CASE WHEN SUM(zzrs) = 0 THEN 0 FROM ( SELECT - zzrs -- 当天在职人数 - ,zlzrs -- 当天总离职人数 - FROM ods_hr_view_lzbl_d - WHERE LEFT(rq,4) = left('${p_ym}',4) - AND LEFT(rq,7) <= '${p_ym}' - AND pq not in('89','267') -- 排除了佳美、悦汇 + SUM(A1.zzrs) AS zzrs + ,SUM(A1.zlzrs) AS zlzrs + FROM + ( + SELECT + LEFT(rq,7) AS ny + ,zzrs -- 当天在职人数 + ,zlzrs -- 当天总离职人数 + FROM ods_hr_view_lzbl_d + WHERE LEFT(rq,7) >= '2024-10' + AND pq not in('89','267') -- 排除了佳美、悦汇 + UNION ALL + SELECT + T1.ym AS ny + ,SUM(T1.begin_num) AS zzrs + ,SUM(T1.active_quit) + SUM(T1.pass_quit ) AS zlzrs + FROM + ( + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-01' AS ym + ,COALESCE(jan_active_quit,0) AS active_quit -- 主动离职人数 + ,COALESCE(jan_pass_quit,0) AS pass_quit -- 被动离职人数 + ,COALESCE(sep_begin_num,0) AS begin_num -- 月初在职 + FROM ods_hr_history_erp_date + UNION ALL + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-02' AS ym + ,COALESCE(feb_active_quit,0) AS active_quit -- 主动离职人数 + ,COALESCE(feb_pass_quit,0) AS pass_quit -- 被动离职人数 + ,COALESCE(sep_begin_num,0) AS begin_num -- 月初在职 + FROM ods_hr_history_erp_date + UNION ALL + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-03' AS ym + ,COALESCE(mar_active_quit,0) AS active_quit -- 主动离职人数 + ,COALESCE(mar_pass_quit,0) AS pass_quit -- 被动离职人数 + ,COALESCE(sep_begin_num,0) AS begin_num -- 月初在职 + FROM ods_hr_history_erp_date + UNION ALL + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-04' AS ym + + ,COALESCE(apr_active_quit,0) AS active_quit -- 主动离职人数 + ,COALESCE(apr_pass_quit,0) AS pass_quit -- 被动离职人数 + ,COALESCE(sep_begin_num,0) AS begin_num -- 月初在职 + FROM ods_hr_history_erp_date + UNION ALL + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-05' AS ym + + ,COALESCE(may_active_quit,0) AS active_quit -- 主动离职人数 + ,COALESCE(may_pass_quit,0) AS pass_quit -- 被动离职人数 + ,COALESCE(sep_begin_num,0) AS begin_num -- 月初在职 + FROM ods_hr_history_erp_date + UNION ALL + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-06' AS ym + ,COALESCE(jun_active_quit,0) AS active_quit -- 主动离职人数 + ,COALESCE(jun_pass_quit,0) AS pass_quit -- 被动离职人数 + ,COALESCE(sep_begin_num,0) AS begin_num -- 月初在职 + FROM ods_hr_history_erp_date + UNION ALL + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-07' AS ym + ,COALESCE(jul_active_quit,0) AS active_quit -- 主动离职人数 + ,COALESCE(jul_pass_quit,0) AS pass_quit -- 被动离职人数 + ,COALESCE(sep_begin_num,0) AS begin_num -- 月初在职 + FROM ods_hr_history_erp_date + UNION ALL + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-08' AS ym + ,COALESCE(aug_active_quit,0) AS active_quit -- 主动离职人数 + ,COALESCE(aug_pass_quit,0) AS pass_quit -- 被动离职人数 + ,COALESCE(sep_begin_num,0) AS begin_num -- 月初在职 + FROM ods_hr_history_erp_date + UNION ALL + SELECT + organ_code + ,organ_name + ,comm_id + ,comm_name + ,'2024-09' AS ym + ,COALESCE(sep_active_quit,0) AS active_quit -- 主动离职人数 + ,COALESCE(sep_pass_quit,0) AS pass_quit -- 被动离职人数 + ,COALESCE(sep_begin_num,0) AS begin_num -- 月初在职 + FROM ods_hr_history_erp_date + )T1 + GROUP BY T1.ym + )A1 + WHERE left(A1.ny,4) = left('${p_ym}',4) + AND A1.ny <= '${p_ym}' )A UNION ALL SELECT @@ -1169,19 +1997,126 @@ SELECT ELSE (SUM(zlzrs) / sum(zzrs)) / sum(lz_rate_target) END AS target_rate FROM - ( - SELECT - pq -- 片区 - ,SUM(zzrs) AS zzrs-- 当天在职人数 - ,sum(zlzrs) AS zlzrs -- 当天总离职人数 - FROM ods_hr_view_lzbl_d - WHERE LEFT(rq,7) = '${p_ym}' - AND pq not in('89','267') -- 排除了佳美、悦汇 - -- 排除了: - -- 89:佳美物业公司 - -- 153:领悦集团总部 - -- 267:悦汇发展公司 - GROUP BY pq +( + SELECT + A1.pq AS pq + ,A1.zzrs AS zzrs + ,A1.zlzrs AS zlzrs + FROM + ( + SELECT + LEFT(rq, 7) AS ny + , pq -- 片区 + , SUM(zzrs) AS zzrs-- 当天在职人数 + , SUM(zlzrs) AS zlzrs -- 当天总离职人数 + FROM ods_hr_view_lzbl_d + WHERE LEFT(rq, 7) >= '2024-10' + AND pq NOT IN ('89', '267') -- 排除了佳美、悦汇 + -- 排除了: + -- 89:佳美物业公司 + -- 153:领悦集团总部 + -- 267:悦汇发展公司 + GROUP BY pq,LEFT(rq, 7) + UNION ALL + SELECT T1.ym AS ny + , T1.organ_code AS pq + , SUM(T1.begin_num) AS zzrs + , SUM(T1.active_quit) + SUM(T1.pass_quit) AS zlzrs + FROM (SELECT organ_code + , organ_name + , comm_id + , comm_name + , '2024-01' AS ym + , COALESCE(jan_active_quit, 0) AS active_quit -- 主动离职人数 + , COALESCE(jan_pass_quit, 0) AS pass_quit -- 被动离职人数 + , COALESCE(sep_begin_num, 0) AS begin_num -- 月初在职 + FROM ods_hr_history_erp_date + UNION ALL + SELECT organ_code + , organ_name + , comm_id + , comm_name + , '2024-02' AS ym + , COALESCE(feb_active_quit, 0) AS active_quit -- 主动离职人数 + , COALESCE(feb_pass_quit, 0) AS pass_quit -- 被动离职人数 + , COALESCE(sep_begin_num, 0) AS begin_num -- 月初在职 + FROM ods_hr_history_erp_date + UNION ALL + SELECT organ_code + , organ_name + , comm_id + , comm_name + , '2024-03' AS ym + , COALESCE(mar_active_quit, 0) AS active_quit -- 主动离职人数 + , COALESCE(mar_pass_quit, 0) AS pass_quit -- 被动离职人数 + , COALESCE(sep_begin_num, 0) AS begin_num -- 月初在职 + FROM ods_hr_history_erp_date + UNION ALL + SELECT organ_code + , organ_name + , comm_id + , comm_name + , '2024-04' AS ym + + , COALESCE(apr_active_quit, 0) AS active_quit -- 主动离职人数 + , COALESCE(apr_pass_quit, 0) AS pass_quit -- 被动离职人数 + , COALESCE(sep_begin_num, 0) AS begin_num -- 月初在职 + FROM ods_hr_history_erp_date + UNION ALL + SELECT organ_code + , organ_name + , comm_id + , comm_name + , '2024-05' AS ym + + , COALESCE(may_active_quit, 0) AS active_quit -- 主动离职人数 + , COALESCE(may_pass_quit, 0) AS pass_quit -- 被动离职人数 + , COALESCE(sep_begin_num, 0) AS begin_num -- 月初在职 + FROM ods_hr_history_erp_date + UNION ALL + SELECT organ_code + , organ_name + , comm_id + , comm_name + , '2024-06' AS ym + , COALESCE(jun_active_quit, 0) AS active_quit -- 主动离职人数 + , COALESCE(jun_pass_quit, 0) AS pass_quit -- 被动离职人数 + , COALESCE(sep_begin_num, 0) AS begin_num -- 月初在职 + FROM ods_hr_history_erp_date + UNION ALL + SELECT organ_code + , organ_name + , comm_id + , comm_name + , '2024-07' AS ym + , COALESCE(jul_active_quit, 0) AS active_quit -- 主动离职人数 + , COALESCE(jul_pass_quit, 0) AS pass_quit -- 被动离职人数 + , COALESCE(sep_begin_num, 0) AS begin_num -- 月初在职 + FROM ods_hr_history_erp_date + UNION ALL + SELECT organ_code + , organ_name + , comm_id + , comm_name + , '2024-08' AS ym + , COALESCE(aug_active_quit, 0) AS active_quit -- 主动离职人数 + , COALESCE(aug_pass_quit, 0) AS pass_quit -- 被动离职人数 + , COALESCE(sep_begin_num, 0) AS begin_num -- 月初在职 + FROM ods_hr_history_erp_date + UNION ALL + SELECT organ_code + , organ_name + , comm_id + , comm_name + , '2024-09' AS ym + , COALESCE(sep_active_quit, 0) AS active_quit -- 主动离职人数 + , COALESCE(sep_pass_quit, 0) AS pass_quit -- 被动离职人数 + , COALESCE(sep_begin_num, 0) AS begin_num -- 月初在职 + FROM ods_hr_history_erp_date) T1 + GROUP BY T1.ym, T1.organ_code + )A1 + WHERE left(A1.ny,4) = left('${p_ym}',4) + AND A1.ny <= '${p_ym}' )A LEFT JOIN (