满编率明细使用ERP提供的历史数据

This commit is contained in:
yangkunan 2024-11-06 17:36:33 +08:00
parent dc011cde90
commit 475f768118

View File

@ -9,61 +9,161 @@ SELECT
,CASE WHEN SUM(bzs) = 0 THEN 0 ELSE SUM(zzs) / SUM(bzs) END AS RATE -- 月均满编率 ,CASE WHEN SUM(bzs) = 0 THEN 0 ELSE SUM(zzs) / SUM(bzs) END AS RATE -- 月均满编率
FROM FROM
( (
SELECT SELECT
pq -- 片区 A1.pq AS pq
,xm -- 项目 ,A1.xm AS xm
,zzs -- 在职数 ,A1.zzs AS zzs
,bzs -- 编制数 ,A1.bzs AS bzs
FROM ods_hr_view_mbl_d FROM
WHERE ny >= '${p_startym}' (
AND ny <= '${p_ym}' SELECT
-- 注意 目前会有一个空的排名 是因为佳美物业未做映射 pq -- 片区
AND pq NOT IN('89','267') ,xm
)A ,ny
LEFT JOIN ,SUM(CASE WHEN ny >= '2024-10' THEN zzs ELSE 0 end) AS zzs -- 在职数
( ,SUM(bzs) AS bzs -- 编制数
SELECT FROM ods_hr_view_mbl_d
organ_code -- erp片区编码 WHERE pq NOT IN ('89','267') -- 这里剔除了佳美物业公司/悦汇发展公司
,organ_name -- erp片区名称 GROUP BY pq,ny,xm
,hr_organ_id -- hr片区编码 UNION ALL
,hr_organ_name -- hr片区名称 SELECT
,hr_comm_id -- hr项目id T1.organ_code AS pq
,hr_comm_name -- hr项目名称 ,T1.comm_id AS xm
FROM dim_organ_mapping ,T1.ym AS ny
WHERE length(hr_comm_id) > 0 ,SUM(T1.begin_num ) AS zzs-- 月初在职
GROUP BY ,0 AS bzs
organ_code FROM
,organ_name (
,hr_organ_id SELECT
,hr_organ_name organ_code
,hr_comm_id ,organ_name
,hr_comm_name ,comm_id
UNION ALL ,comm_name
SELECT ,'2024-01' AS ym
'0000' AS organ_code -- erp片区编码 ,COALESCE(jan_begin_num,0) AS begin_num -- 月初在职
,'' AS organ_name -- erp片区名称 FROM ods_hr_history_erp_date
,'153' AS hr_organ_id -- hr片区编码 UNION ALL
,'领悦集团总部' AS hr_organ_name -- hr片区名称 SELECT
,'153' AS hr_comm_id -- hr项目id organ_code
,'领悦集团总部' AS hr_comm_name -- hr项目名称 ,organ_name
FROM dual ,comm_id
)B ,comm_name
ON A.pq = B.hr_organ_id ,'2024-02' AS ym
and A.xm = B.hr_comm_id ,COALESCE(feb_begin_num,0) AS begin_num -- 月初在职
LEFT JOIN FROM ods_hr_history_erp_date
( UNION ALL
SELECT SELECT
comm_id organ_code
,organ_code ,organ_name
,full_rate_target -- 满编率目标 ,comm_id
,avg_full_rate_target -- 月均满编率目标 ,comm_name
FROM ods_hr_collection_target ,'2024-03' AS ym
WHERE ym = '${p_ym}' ,COALESCE(mar_begin_num,0) AS begin_num -- 月初在职
)C FROM ods_hr_history_erp_date
ON A.pq = C.organ_code UNION ALL
AND A.xm = C.comm_id SELECT
WHERE 1=1 organ_code
${IF(LEN(p_area)>0," AND B.organ_code IN ('" + p_area +"')", "")} ,organ_name
GROUP BY ,comm_id
B.hr_comm_name ,comm_name
,B.hr_organ_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_startym}'
AND A1.ny <= '${p_ym}'
)A
RIGHT 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
WHERE length(hr_comm_id) > 0
GROUP BY
organ_code
,organ_name
,hr_organ_id
,hr_organ_name
,hr_comm_id
,hr_comm_name
UNION ALL
SELECT
'0000' AS organ_code -- erp片区编码
,'' AS organ_name -- erp片区名称
,'153' AS hr_organ_id -- hr片区编码
,'领悦集团总部' AS hr_organ_name -- hr片区名称
,'153' AS hr_comm_id -- hr项目id
,'领悦集团总部' AS hr_comm_name -- hr项目名称
FROM dual
)B
ON A.pq = B.hr_organ_id
and A.xm = B.hr_comm_id
LEFT JOIN
(
SELECT
comm_id
,organ_code
,full_rate_target -- 满编率目标
,avg_full_rate_target -- 月均满编率目标
FROM ods_hr_collection_target
WHERE ym = '${p_ym}'
)C
ON A.pq = C.organ_code
AND A.xm = C.comm_id
WHERE 1=1
${IF(LEN(p_area)>0," AND B.organ_code IN ('" + p_area +"')", "")}
GROUP BY
B.hr_comm_name
,B.hr_organ_name