175 lines
5.8 KiB
SQL
175 lines
5.8 KiB
SQL
|
|
SELECT
|
|
B.hr_comm_name AS hr_comm_name -- 片区
|
|
,B.hr_organ_name AS hr_organ_name -- 项目
|
|
,SUM(A.bzs) AS bzs -- 编制数
|
|
,SUM(A.zzs) AS zzs -- 在职数
|
|
,SUM(C.full_rate_target) AS full_rate_target -- 满编率目标值
|
|
,SUM(C.avg_full_rate_target) AS avg_full_rate_target -- 月均满编率目标值
|
|
,CASE WHEN SUM(bzs) = 0 THEN 0 ELSE SUM(zzs) / SUM(bzs) END AS RATE -- 月均满编率
|
|
FROM
|
|
(
|
|
SELECT
|
|
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_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项目名称
|
|
,comm_id
|
|
,comm_name
|
|
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
|
|
,comm_id
|
|
,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项目名称
|
|
,'' AS comm_id
|
|
,'' AS comm_name
|
|
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 B.organ_code = C.organ_code
|
|
AND B.hr_comm_id = 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 |