离职人数历史数据补齐、权限bug修复、财务取数口径优化
This commit is contained in:
parent
6f1b07e6e0
commit
24fd7ea032
2318
finereport/kanban/mobile/人力_mobile.sql
Normal file
2318
finereport/kanban/mobile/人力_mobile.sql
Normal file
File diff suppressed because it is too large
Load Diff
@ -452,7 +452,7 @@ FROM
|
|||||||
,'领悦集团总部' AS hr_comm_name -- hr项目名称
|
,'领悦集团总部' AS hr_comm_name -- hr项目名称
|
||||||
,'' AS comm_name
|
,'' AS comm_name
|
||||||
)B
|
)B
|
||||||
ON A.organ_code = B.hr_organ_id
|
ON A.organ_code = B.organ_code
|
||||||
and A.comm_id = B.hr_comm_id
|
and A.comm_id = B.hr_comm_id
|
||||||
WHERE 1 = 1
|
WHERE 1 = 1
|
||||||
${IF(LEN(p_area)>0," AND B.organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")}
|
${IF(LEN(p_area)>0," AND B.organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")}
|
||||||
@ -805,7 +805,7 @@ FROM
|
|||||||
FROM ods_hr_collection_target_organ
|
FROM ods_hr_collection_target_organ
|
||||||
WHERE ym = '${p_ym}'
|
WHERE ym = '${p_ym}'
|
||||||
)C
|
)C
|
||||||
ON A.pq = C.organ_code
|
ON B.organ_code = C.organ_code
|
||||||
where 1 = 1
|
where 1 = 1
|
||||||
${IF(LEN(p_area)>0," AND B.organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")}
|
${IF(LEN(p_area)>0," AND B.organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")}
|
||||||
GROUP BY
|
GROUP BY
|
||||||
@ -988,8 +988,8 @@ FROM
|
|||||||
FROM ods_hr_collection_target
|
FROM ods_hr_collection_target
|
||||||
WHERE ym = '${p_ym}'
|
WHERE ym = '${p_ym}'
|
||||||
)C
|
)C
|
||||||
ON A.pq = C.organ_code
|
ON B.organ_code = C.organ_code
|
||||||
AND A.xm = C.comm_id
|
AND B.hr_comm_id = C.comm_id
|
||||||
WHERE 1=1
|
WHERE 1=1
|
||||||
${IF(LEN(p_area)>0," AND B.organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")}
|
${IF(LEN(p_area)>0," AND B.organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")}
|
||||||
AND CASE WHEN (SELECT mang_project FROM ods_one_to_many_perm WHERE username = '${fine_username}' AND mang_organ IS NULL) IS NOT NULL
|
AND CASE WHEN (SELECT mang_project FROM ods_one_to_many_perm WHERE username = '${fine_username}' AND mang_organ IS NULL) IS NOT NULL
|
||||||
@ -1325,8 +1325,7 @@ SELECT
|
|||||||
,SUM(index_income_target) AS index_income_target -- 收入目标
|
,SUM(index_income_target) AS index_income_target -- 收入目标
|
||||||
FROM ods_caiwu_feecollection
|
FROM ods_caiwu_feecollection
|
||||||
WHERE category = '物业'
|
WHERE category = '物业'
|
||||||
AND left(yr_month,4) = left('${p_ym}',4)
|
AND yr_month = '${p_ym}'
|
||||||
AND yr_month < '${p_ym}'
|
|
||||||
GROUP BY
|
GROUP BY
|
||||||
organ_code
|
organ_code
|
||||||
)B
|
)B
|
||||||
@ -1342,7 +1341,7 @@ SELECT
|
|||||||
)C
|
)C
|
||||||
ON A.organ_code = C.organ_code
|
ON A.organ_code = C.organ_code
|
||||||
|
|
||||||
${if(and(len(p_area)=0,p_type='人力')," -- 片区排名开始", "*/")}
|
${if(and(len(p_area)=0,p_type='人力')," -- 片区排名开始", "*/")}
|
||||||
|
|
||||||
|
|
||||||
${if(and(len(p_area)=0,p_type='行政')," -- 片区排名开始", "/*")}
|
${if(and(len(p_area)=0,p_type='行政')," -- 片区排名开始", "/*")}
|
||||||
@ -1359,7 +1358,7 @@ SELECT
|
|||||||
A.organ_name AS organ_comm_name
|
A.organ_name AS organ_comm_name
|
||||||
,A.ac_total_fee AS actual_cost -- 成本
|
,A.ac_total_fee AS actual_cost -- 成本
|
||||||
,B.index_income_fact AS index_income_fact -- 实际收入
|
,B.index_income_fact AS index_income_fact -- 实际收入
|
||||||
,ROW_NUMBER() OVER (ORDER BY A.lc_total_fee / B.index_income_fact DESC ) AS 排名 -- 费率排名
|
,ROW_NUMBER() OVER (ORDER BY A.ac_total_fee / B.index_income_fact DESC ) AS 排名 -- 费率排名
|
||||||
,A.lc_total_fee / B.index_income_fact AS fee_rate -- 行政成本费率
|
,A.lc_total_fee / B.index_income_fact AS fee_rate -- 行政成本费率
|
||||||
,C.ac_fee_rate_target AS target_fee_rate -- 费率目标
|
,C.ac_fee_rate_target AS target_fee_rate -- 费率目标
|
||||||
FROM
|
FROM
|
||||||
@ -1382,8 +1381,7 @@ SELECT
|
|||||||
,SUM(index_income_fact) AS index_income_fact -- 实际收入
|
,SUM(index_income_fact) AS index_income_fact -- 实际收入
|
||||||
FROM ods_caiwu_feecollection
|
FROM ods_caiwu_feecollection
|
||||||
WHERE category = '物业'
|
WHERE category = '物业'
|
||||||
AND LEFT(yr_month,4) = left('${p_ym}',4)
|
AND yr_month = '${p_ym}'
|
||||||
AND yr_month <= '${p_ym}'
|
|
||||||
GROUP BY
|
GROUP BY
|
||||||
organ_code
|
organ_code
|
||||||
)B
|
)B
|
||||||
@ -1502,13 +1500,12 @@ FROM
|
|||||||
,SUM(index_income_fact) AS index_income_fact -- 实际收入
|
,SUM(index_income_fact) AS index_income_fact -- 实际收入
|
||||||
FROM ods_caiwu_feecollection
|
FROM ods_caiwu_feecollection
|
||||||
WHERE category = '物业'
|
WHERE category = '物业'
|
||||||
AND LEFT(yr_month,4) = left('${p_ym}',4)
|
AND yr_month = '${p_ym}'
|
||||||
AND yr_month <= '${p_ym}'
|
|
||||||
GROUP BY
|
GROUP BY
|
||||||
organ_code,comm_id
|
organ_code,comm_id
|
||||||
)B
|
)B
|
||||||
ON A.organ_code = B.organ_code
|
ON A.organ_code = B.organ_code
|
||||||
AND A.comm_id = B.comm_id
|
AND A.erp_comm_id = B.comm_id
|
||||||
LEFT JOIN
|
LEFT JOIN
|
||||||
(
|
(
|
||||||
SELECT
|
SELECT
|
||||||
@ -1626,13 +1623,12 @@ FROM
|
|||||||
,SUM(index_income_fact) AS index_income_fact -- 实际收入
|
,SUM(index_income_fact) AS index_income_fact -- 实际收入
|
||||||
FROM ods_caiwu_feecollection
|
FROM ods_caiwu_feecollection
|
||||||
WHERE category = '物业'
|
WHERE category = '物业'
|
||||||
AND LEFT(yr_month,4) = left('${p_ym}',4)
|
AND yr_month = '${p_ym}'
|
||||||
AND yr_month <= '${p_ym}'
|
|
||||||
GROUP BY
|
GROUP BY
|
||||||
organ_code,comm_id
|
organ_code,comm_id
|
||||||
)B
|
)B
|
||||||
ON A.organ_code = B.organ_code
|
ON A.organ_code = B.organ_code
|
||||||
AND A.comm_id = B.comm_id
|
AND A.erp_comm_id = B.comm_id
|
||||||
LEFT JOIN
|
LEFT JOIN
|
||||||
(
|
(
|
||||||
SELECT
|
SELECT
|
||||||
@ -1669,30 +1665,158 @@ with one_to_many AS(
|
|||||||
WHERE a.username = '${fine_username}'
|
WHERE a.username = '${fine_username}'
|
||||||
)
|
)
|
||||||
SELECT
|
SELECT
|
||||||
T.hr_organ_name AS hr_organ_name
|
T.hr_organ_name AS hr_organ_name
|
||||||
,T.lz_rate AS lz_rate
|
,T.lz_rate AS lz_rate
|
||||||
,T.lz_rate_target AS lz_rate_target
|
,T.lz_rate_target AS lz_rate_target
|
||||||
,ROW_NUMBER() OVER(ORDER BY T.lz_rate desc) AS 排名
|
,ROW_NUMBER() OVER(ORDER BY T.lz_rate desc) AS 排名
|
||||||
FROM
|
FROM
|
||||||
|
(
|
||||||
|
SELECT
|
||||||
|
B.hr_organ_name AS hr_organ_name
|
||||||
|
,CASE WHEN sum(A.zzrs) = 0 THEN 0
|
||||||
|
ELSE SUM(A.zlzrs) / sum(zzrs)
|
||||||
|
END AS lz_rate -- 离职率
|
||||||
|
,SUM(C.lz_rate_target) AS lz_rate_target
|
||||||
|
FROM
|
||||||
(
|
(
|
||||||
SELECT
|
SELECT
|
||||||
B.hr_organ_name AS hr_organ_name
|
T.pq as pq
|
||||||
,CASE WHEN sum(A.zzrs) = 0 THEN 0
|
,SUM(T.zzrs) AS zzrs
|
||||||
ELSE SUM(A.zlzrs) / sum(zzrs)
|
,SUM(T.zlzrs) AS zlzrs
|
||||||
END AS lz_rate -- 离职率
|
|
||||||
,SUM(C.lz_rate_target) AS lz_rate_target
|
|
||||||
FROM
|
FROM
|
||||||
(
|
(
|
||||||
SELECT
|
SELECT
|
||||||
pq -- 片区
|
pq -- 片区
|
||||||
,xm -- 项目
|
,LEFT(rq,7) AS ym
|
||||||
,SUM(zzrs) AS zzrs -- 当天在职人数
|
,SUM(CASE WHEN rq = CONCAT('${p_ym}','-01') THEN zzrs ELSE 0 END) AS zzrs -- 在职人数
|
||||||
,SUM(zlzrs) AS zlzrs -- 当天总离职人数
|
,SUM(zlzrs) AS zlzrs -- 当天总离职人数
|
||||||
FROM ods_hr_view_lzbl_d
|
FROM ods_hr_view_lzbl_d
|
||||||
WHERE LEFT(rq,4) = left('${p_ym}',4)
|
-- 排除了:
|
||||||
AND LEFT(rq,7) <= '${p_ym}'
|
-- 89:佳美物业公司
|
||||||
AND pq not in('89','267') -- 排除了佳美、悦汇
|
-- 267:悦汇发展公司
|
||||||
GROUP BY pq, xm
|
GROUP BY pq,LEFT(rq,7)
|
||||||
|
UNION ALL
|
||||||
|
SELECT
|
||||||
|
T1.organ_code AS pq
|
||||||
|
,T1.ym AS ym
|
||||||
|
,(SUM(T1.begin_num ) + SUM(T1.end_num)) / 2 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_begin_num,0) AS begin_num -- 月初在职
|
||||||
|
,COALESCE(jan_end_num,0) AS end_num -- 月末在职
|
||||||
|
,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_begin_num,0) AS begin_num -- 月初在职
|
||||||
|
,COALESCE(feb_end_num,0) AS end_num -- 月末在职
|
||||||
|
,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_begin_num,0) AS begin_num -- 月初在职
|
||||||
|
,COALESCE(mar_end_num,0) AS end_num -- 月末在职
|
||||||
|
,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_begin_num,0) AS begin_num -- 月初在职
|
||||||
|
,COALESCE(apr_end_num,0) AS end_num -- 月末在职
|
||||||
|
,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_begin_num,0) AS begin_num -- 月初在职
|
||||||
|
,COALESCE(may_end_num,0) AS end_num -- 月末在职
|
||||||
|
,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_begin_num,0) AS begin_num -- 月初在职
|
||||||
|
,COALESCE(jun_end_num,0) AS end_num -- 月末在职
|
||||||
|
,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_begin_num,0) AS begin_num -- 月初在职
|
||||||
|
,COALESCE(jul_end_num,0) AS end_num -- 月末在职
|
||||||
|
,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_begin_num,0) AS begin_num -- 月初在职
|
||||||
|
,COALESCE(aug_end_num,0) AS end_num -- 月末在职
|
||||||
|
,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_begin_num,0) AS begin_num -- 月初在职
|
||||||
|
,COALESCE(sep_end_num,0) AS end_num -- 月末在职
|
||||||
|
,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.ym
|
||||||
|
)T
|
||||||
|
WHERE LEFT(ym,4) = left('${p_ym}',4)
|
||||||
|
AND LEFT(ym,7) <= '${p_ym}'
|
||||||
|
AND pq not in('89','267') -- 排除了佳美、悦汇
|
||||||
|
group by T.pq
|
||||||
)A
|
)A
|
||||||
LEFT JOIN
|
LEFT JOIN
|
||||||
(
|
(
|
||||||
@ -1724,13 +1848,12 @@ FROM
|
|||||||
FROM ods_hr_collection_target_organ
|
FROM ods_hr_collection_target_organ
|
||||||
WHERE ym = '${p_ym}'
|
WHERE ym = '${p_ym}'
|
||||||
)C
|
)C
|
||||||
ON A.pq = C.organ_code
|
ON B.organ_code = C.organ_code
|
||||||
where 1 = 1
|
where 1 = 1
|
||||||
${IF(LEN(p_area)>0," AND B.organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")}
|
${IF(LEN(p_area)>0," AND B.organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")}
|
||||||
|
|
||||||
GROUP BY
|
GROUP BY
|
||||||
B.hr_organ_name
|
B.hr_organ_name
|
||||||
)T
|
)T
|
||||||
${IF(LEN(p_area)=0,"", "*/")}
|
${IF(LEN(p_area)=0,"", "*/")}
|
||||||
|
|
||||||
|
|
||||||
@ -1758,19 +1881,148 @@ FROM
|
|||||||
ELSE SUM(A.zlzrs) / SUM(A.zzrs)
|
ELSE SUM(A.zlzrs) / SUM(A.zzrs)
|
||||||
END AS lz_rate
|
END AS lz_rate
|
||||||
,SUM(C.lz_rate_target) AS lz_rate_target
|
,SUM(C.lz_rate_target) AS lz_rate_target
|
||||||
|
FROM
|
||||||
|
(
|
||||||
|
SELECT
|
||||||
|
T.pq as pq
|
||||||
|
,T.xm AS xm
|
||||||
|
,SUM(T.zzrs) AS zzrs
|
||||||
|
,sum(T.zlzrs) AS zlzrs
|
||||||
FROM
|
FROM
|
||||||
(
|
(
|
||||||
SELECT
|
SELECT
|
||||||
pq -- 片区
|
pq -- 片区
|
||||||
,xm -- 项目
|
,xm -- 项目
|
||||||
,SUM(zzrs) AS zzrs -- 当天在职人数
|
,LEFT(rq,7) AS ym
|
||||||
,SUM(zlzrs) AS zlzrs -- 当天总离职人数
|
,SUM(CASE WHEN rq = CONCAT('${p_ym}','-01') THEN zzrs ELSE 0 END) AS zzrs -- 在职人数
|
||||||
FROM ods_hr_view_lzbl_d
|
,SUM(zlzrs) AS zlzrs -- 当天总离职人数
|
||||||
WHERE LEFT(rq,4) = left('${p_ym}',4)
|
FROM ods_hr_view_lzbl_d
|
||||||
AND LEFT(rq,7) <= '${p_ym}'
|
GROUP BY pq, xm, rq
|
||||||
|
UNION ALL
|
||||||
|
|
||||||
|
SELECT
|
||||||
|
T1.organ_code AS pq
|
||||||
|
,T1.comm_id AS xm
|
||||||
|
,T1.ym AS ym
|
||||||
|
,(SUM(T1.begin_num ) + SUM(T1.end_num)) / 2 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_begin_num,0) AS begin_num -- 月初在职
|
||||||
|
,COALESCE(jan_end_num,0) AS end_num -- 月末在职
|
||||||
|
,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_begin_num,0) AS begin_num -- 月初在职
|
||||||
|
,COALESCE(feb_end_num,0) AS end_num -- 月末在职
|
||||||
|
,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_begin_num,0) AS begin_num -- 月初在职
|
||||||
|
,COALESCE(mar_end_num,0) AS end_num -- 月末在职
|
||||||
|
,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_begin_num,0) AS begin_num -- 月初在职
|
||||||
|
,COALESCE(apr_end_num,0) AS end_num -- 月末在职
|
||||||
|
,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_begin_num,0) AS begin_num -- 月初在职
|
||||||
|
,COALESCE(may_end_num,0) AS end_num -- 月末在职
|
||||||
|
,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_begin_num,0) AS begin_num -- 月初在职
|
||||||
|
,COALESCE(jun_end_num,0) AS end_num -- 月末在职
|
||||||
|
,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_begin_num,0) AS begin_num -- 月初在职
|
||||||
|
,COALESCE(jul_end_num,0) AS end_num -- 月末在职
|
||||||
|
,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_begin_num,0) AS begin_num -- 月初在职
|
||||||
|
,COALESCE(aug_end_num,0) AS end_num -- 月末在职
|
||||||
|
,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_begin_num,0) AS begin_num -- 月初在职
|
||||||
|
,COALESCE(sep_end_num,0) AS end_num -- 月末在职
|
||||||
|
,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
|
||||||
|
)T
|
||||||
|
WHERE LEFT(ym,4) = left('${p_ym}',4)
|
||||||
|
AND LEFT(ym,7) <= '${p_ym}'
|
||||||
AND pq not in('89','267') -- 排除了佳美、悦汇
|
AND pq not in('89','267') -- 排除了佳美、悦汇
|
||||||
GROUP BY pq, xm
|
AND (pq is NOT NULL OR xm IS NOT NULL )
|
||||||
|
group by T.pq,T.xm
|
||||||
)A
|
)A
|
||||||
LEFT JOIN
|
LEFT JOIN
|
||||||
(
|
(
|
||||||
@ -1781,6 +2033,7 @@ FROM
|
|||||||
,hr_organ_name
|
,hr_organ_name
|
||||||
,hr_comm_id
|
,hr_comm_id
|
||||||
,hr_comm_name
|
,hr_comm_name
|
||||||
|
,comm_id
|
||||||
,comm_name
|
,comm_name
|
||||||
FROM dim_organ_mapping
|
FROM dim_organ_mapping
|
||||||
WHERE length(hr_comm_id) > 0
|
WHERE length(hr_comm_id) > 0
|
||||||
@ -1792,6 +2045,7 @@ FROM
|
|||||||
,hr_comm_id
|
,hr_comm_id
|
||||||
,hr_comm_name
|
,hr_comm_name
|
||||||
,comm_name
|
,comm_name
|
||||||
|
,comm_id
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT
|
SELECT
|
||||||
'0000' AS organ_code -- erp片区编码
|
'0000' AS organ_code -- erp片区编码
|
||||||
@ -1800,6 +2054,7 @@ FROM
|
|||||||
,'领悦集团总部' AS hr_organ_name -- hr片区名称
|
,'领悦集团总部' AS hr_organ_name -- hr片区名称
|
||||||
,'153' AS hr_comm_id -- hr项目id
|
,'153' AS hr_comm_id -- hr项目id
|
||||||
,'领悦集团总部' AS hr_comm_name -- hr项目名称
|
,'领悦集团总部' AS hr_comm_name -- hr项目名称
|
||||||
|
,'' AS comm_id
|
||||||
,'' AS comm_name
|
,'' AS comm_name
|
||||||
)B
|
)B
|
||||||
ON A.pq = B.hr_organ_id
|
ON A.pq = B.hr_organ_id
|
||||||
@ -1813,8 +2068,8 @@ FROM
|
|||||||
FROM ods_hr_collection_target
|
FROM ods_hr_collection_target
|
||||||
WHERE ym = '${p_ym}'
|
WHERE ym = '${p_ym}'
|
||||||
)C
|
)C
|
||||||
ON A.pq = C.organ_code
|
ON B.organ_code = C.organ_code
|
||||||
AND A.xm = C.comm_id
|
AND B.hr_comm_id = C.comm_id
|
||||||
where 1 = 1
|
where 1 = 1
|
||||||
${IF(LEN(p_area)>0," AND B.organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")}
|
${IF(LEN(p_area)>0," AND B.organ_code IN ('"+JOINARRAY(p_area,"','")+"')", "")}
|
||||||
AND CASE WHEN (SELECT mang_project FROM ods_one_to_many_perm WHERE username = '${fine_username}' AND mang_organ IS NULL) IS NOT NULL
|
AND CASE WHEN (SELECT mang_project FROM ods_one_to_many_perm WHERE username = '${fine_username}' AND mang_organ IS NULL) IS NOT NULL
|
||||||
@ -1837,27 +2092,25 @@ ${IF(LEN(p_area)>0,"", "*/")}
|
|||||||
${IF(LEN(p_area)=0,"", "/*")}
|
${IF(LEN(p_area)=0,"", "/*")}
|
||||||
|
|
||||||
SELECT
|
SELECT
|
||||||
T.lc_fee_rate AS lc_fee_rate -- 人力成本费率
|
SUM(T.lc_fee_rate) AS lc_fee_rate -- 人力成本费率
|
||||||
,T.lc_fee_rate_target AS lc_fee_rate_target -- 人力成本费率目标
|
,SUM(T.lc_fee_rate_target) AS lc_fee_rate_target -- 人力成本费率目标
|
||||||
,CASE WHEN T.lc_fee_rate_target = 0 THEN 0
|
,CASE WHEN sum(T.lc_fee_rate_target) = 0 THEN 0
|
||||||
ELSE T.lc_fee_rate / T.lc_fee_rate_target END AS lc_target_rate -- 人力成本费率目标占比
|
ELSE SUM(T.lc_fee_rate) / sum(T.lc_fee_rate_target) END AS lc_target_rate -- 人力成本费率目标占比
|
||||||
,T.ac_fee_rate AS ac_fee_rate -- 行政成本费率
|
,SUM(T.ac_fee_rate) AS ac_fee_rate -- 行政成本费率
|
||||||
,T.ac_fee_rate_target AS ac_fee_rate_target -- 行政成本费率目标值
|
,SUM(T.ac_fee_rate_target) AS ac_fee_rate_target -- 行政成本费率目标值
|
||||||
,CASE WHEN T.ac_fee_rate_target = 0 THEN 0
|
,CASE WHEN sum(T.ac_fee_rate_target) = 0 THEN 0
|
||||||
ELSE T.ac_fee_rate / T.ac_fee_rate_target END AS ac_target_rate -- 行政成本费率目标占比
|
ELSE sum(T.ac_fee_rate) / sum(T.ac_fee_rate_target) END AS ac_target_rate -- 行政成本费率目标占比
|
||||||
FROM
|
FROM
|
||||||
(
|
(
|
||||||
SELECT
|
SELECT
|
||||||
coalesce(SUM(CASE WHEN cost_type = '人力成本' THEN actual_amount ELSE 0 END),0)
|
coalesce(SUM(CASE WHEN cost_type = '人力成本' THEN actual_amount ELSE 0 END),0)
|
||||||
/ (SELECT SUM(index_income_fact) FROM ods_caiwu_feecollection
|
/ (SELECT SUM(index_income_fact) FROM ods_caiwu_feecollection
|
||||||
WHERE category = '物业'
|
WHERE category = '物业'
|
||||||
AND left(yr_month,4) = left('${p_ym}',4)
|
AND yr_month = '${p_ym}') AS lc_fee_rate -- 人力成本费率
|
||||||
AND yr_month < '${p_ym}') AS lc_fee_rate -- 人力成本费率
|
|
||||||
,coalesce(SUM(CASE WHEN cost_type = '行政成本' THEN actual_amount ELSE 0 END),0)
|
,coalesce(SUM(CASE WHEN cost_type = '行政成本' THEN actual_amount ELSE 0 END),0)
|
||||||
/ (SELECT SUM(index_income_fact) FROM ods_caiwu_feecollection
|
/ (SELECT SUM(index_income_fact) FROM ods_caiwu_feecollection
|
||||||
WHERE category = '物业'
|
WHERE category = '物业'
|
||||||
AND left(yr_month,4) = left('${p_ym}',4)
|
AND yr_month = '${p_ym}') AS ac_fee_rate -- 行政成本费率
|
||||||
AND yr_month < '${p_ym}') AS ac_fee_rate -- 行政成本费率
|
|
||||||
,0 AS lc_fee_rate_target -- 人力成本费率
|
,0 AS lc_fee_rate_target -- 人力成本费率
|
||||||
,0 AS ac_fee_rate_target -- 行政成本费率
|
,0 AS ac_fee_rate_target -- 行政成本费率
|
||||||
from dw.ods_cost_collection_lc_ac
|
from dw.ods_cost_collection_lc_ac
|
||||||
@ -1911,8 +2164,7 @@ SELECT
|
|||||||
,SUM(index_income_fact) AS index_income_fact -- 实际收入
|
,SUM(index_income_fact) AS index_income_fact -- 实际收入
|
||||||
FROM ods_caiwu_feecollection
|
FROM ods_caiwu_feecollection
|
||||||
WHERE category = '物业'
|
WHERE category = '物业'
|
||||||
AND left(yr_month,4) = left('${p_ym}',4)
|
AND yr_month = '${p_ym}'
|
||||||
AND yr_month < '${p_ym}'
|
|
||||||
GROUP BY organ_code
|
GROUP BY organ_code
|
||||||
)B
|
)B
|
||||||
ON A.organ_code = B.organ_code
|
ON A.organ_code = B.organ_code
|
||||||
|
@ -27,13 +27,29 @@ SELECT
|
|||||||
,budget_amount -- 成本预算值
|
,budget_amount -- 成本预算值
|
||||||
,actual_amount -- 成本实际值'
|
,actual_amount -- 成本实际值'
|
||||||
FROM ods_cost_collection_lc_ac
|
FROM ods_cost_collection_lc_ac
|
||||||
|
where organ_code = '0117'
|
||||||
WHERE ym = '${p_ym}'
|
WHERE ym = '${p_ym}'
|
||||||
AND cost_type = '${p_type}'
|
AND cost_type = '${p_type}'
|
||||||
|
|
||||||
|
|
||||||
|
拿乌鲁木齐片区核对:
|
||||||
|
人力成本实际值(2024-01月至2024-10月): 809.89万元
|
||||||
|
财务物业实际收入(2024-01月至2024-10月): 6471.01 万元
|
||||||
|
人力成本费率=人力成本实际值/财务物业实际收入: 809.89 / 6471 = 0.1251568537 = 12.52%
|
||||||
|
|
||||||
|
|
||||||
|
SELECT
|
||||||
|
organ_code
|
||||||
|
,organ_name
|
||||||
|
,SUM(index_income_fact) AS index_income_fact -- 实际收入
|
||||||
|
,SUM(index_income_target) AS index_income_target -- 收入目标
|
||||||
|
FROM ods_caiwu_feecollection
|
||||||
|
WHERE category = '物业'
|
||||||
|
AND left(yr_month,4) = '2024'
|
||||||
|
AND yr_month < '2024-11'
|
||||||
|
GROUP BY
|
||||||
|
organ_code
|
||||||
|
,organ_name
|
||||||
|
|
||||||
|
|
||||||
TRUNCATE TABLE ods_cost_collection_lc_ac;
|
TRUNCATE TABLE ods_cost_collection_lc_ac;
|
||||||
|
@ -129,6 +129,8 @@ RIGHT JOIN
|
|||||||
,hr_organ_name -- hr片区名称
|
,hr_organ_name -- hr片区名称
|
||||||
,hr_comm_id -- hr项目id
|
,hr_comm_id -- hr项目id
|
||||||
,hr_comm_name -- hr项目名称
|
,hr_comm_name -- hr项目名称
|
||||||
|
,comm_id
|
||||||
|
,comm_name
|
||||||
FROM dim_organ_mapping
|
FROM dim_organ_mapping
|
||||||
WHERE length(hr_comm_id) > 0
|
WHERE length(hr_comm_id) > 0
|
||||||
GROUP BY
|
GROUP BY
|
||||||
@ -138,6 +140,8 @@ RIGHT JOIN
|
|||||||
,hr_organ_name
|
,hr_organ_name
|
||||||
,hr_comm_id
|
,hr_comm_id
|
||||||
,hr_comm_name
|
,hr_comm_name
|
||||||
|
,comm_id
|
||||||
|
,comm_name
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT
|
SELECT
|
||||||
'0000' AS organ_code -- erp片区编码
|
'0000' AS organ_code -- erp片区编码
|
||||||
@ -146,6 +150,8 @@ RIGHT JOIN
|
|||||||
,'领悦集团总部' AS hr_organ_name -- hr片区名称
|
,'领悦集团总部' AS hr_organ_name -- hr片区名称
|
||||||
,'153' AS hr_comm_id -- hr项目id
|
,'153' AS hr_comm_id -- hr项目id
|
||||||
,'领悦集团总部' AS hr_comm_name -- hr项目名称
|
,'领悦集团总部' AS hr_comm_name -- hr项目名称
|
||||||
|
,'' AS comm_id
|
||||||
|
,'' AS comm_name
|
||||||
FROM dual
|
FROM dual
|
||||||
)B
|
)B
|
||||||
ON A.pq = B.hr_organ_id
|
ON A.pq = B.hr_organ_id
|
||||||
@ -160,8 +166,8 @@ LEFT JOIN
|
|||||||
FROM ods_hr_collection_target
|
FROM ods_hr_collection_target
|
||||||
WHERE ym = '${p_ym}'
|
WHERE ym = '${p_ym}'
|
||||||
)C
|
)C
|
||||||
ON A.pq = C.organ_code
|
ON B.organ_code = C.organ_code
|
||||||
AND A.xm = C.comm_id
|
AND B.hr_comm_id = C.comm_id
|
||||||
WHERE 1=1
|
WHERE 1=1
|
||||||
${IF(LEN(p_area)>0," AND B.organ_code IN ('" + p_area +"')", "")}
|
${IF(LEN(p_area)>0," AND B.organ_code IN ('" + p_area +"')", "")}
|
||||||
GROUP BY
|
GROUP BY
|
||||||
|
@ -222,7 +222,7 @@ ${if(p_type='人力',"","/*")}
|
|||||||
,SUM(index_income_fact) AS index_income_fact -- 实际收入
|
,SUM(index_income_fact) AS index_income_fact -- 实际收入
|
||||||
FROM ods_caiwu_feecollection
|
FROM ods_caiwu_feecollection
|
||||||
WHERE category = '物业'
|
WHERE category = '物业'
|
||||||
AND yr_month >= '${p_startym}'
|
AND LEFT(yr_month,4) = left('${p_ym}',4)
|
||||||
AND yr_month <= '${p_ym}'
|
AND yr_month <= '${p_ym}'
|
||||||
GROUP BY
|
GROUP BY
|
||||||
organ_code,comm_id
|
organ_code,comm_id
|
||||||
@ -249,8 +249,7 @@ ${if(p_type='人力',"","/*")}
|
|||||||
,lc_fee_rate_target -- 人力成本费率目标
|
,lc_fee_rate_target -- 人力成本费率目标
|
||||||
,ac_fee_rate_target -- 行政成本费率目标
|
,ac_fee_rate_target -- 行政成本费率目标
|
||||||
FROM ods_cost_collection_target
|
FROM ods_cost_collection_target
|
||||||
WHERE left(ym,4) = left('${p_ym}',4)
|
WHERE ym = '${p_ym}'
|
||||||
AND length(ym) = 4
|
|
||||||
)D
|
)D
|
||||||
ON A.organ_code = D.organ_code
|
ON A.organ_code = D.organ_code
|
||||||
AND A.comm_id = D.comm_id
|
AND A.comm_id = D.comm_id
|
||||||
@ -337,8 +336,8 @@ FROM
|
|||||||
,SUM(index_income_fact) AS index_income_fact -- 实际收入
|
,SUM(index_income_fact) AS index_income_fact -- 实际收入
|
||||||
FROM ods_caiwu_feecollection
|
FROM ods_caiwu_feecollection
|
||||||
WHERE category = '物业'
|
WHERE category = '物业'
|
||||||
AND yr_month >= '${p_startym}'
|
AND LEFT(yr_month,4) = left('${p_ym}',4)
|
||||||
AND yr_month <= '${p_ym}'
|
AND yr_month <= '${p_ym}'
|
||||||
GROUP BY
|
GROUP BY
|
||||||
organ_code,comm_id
|
organ_code,comm_id
|
||||||
)B
|
)B
|
||||||
@ -364,8 +363,8 @@ FROM
|
|||||||
,lc_fee_rate_target -- 人力成本费率目标
|
,lc_fee_rate_target -- 人力成本费率目标
|
||||||
,ac_fee_rate_target -- 行政成本费率目标
|
,ac_fee_rate_target -- 行政成本费率目标
|
||||||
FROM ods_cost_collection_target
|
FROM ods_cost_collection_target
|
||||||
WHERE left(ym,4) = left('${p_ym}',4)
|
WHERE ym = '${p_ym}'
|
||||||
AND length(ym) = 4
|
|
||||||
)D
|
)D
|
||||||
ON A.organ_code = D.organ_code
|
ON A.organ_code = D.organ_code
|
||||||
AND A.comm_id = D.comm_id
|
AND A.comm_id = D.comm_id
|
||||||
|
@ -19,10 +19,10 @@ SELECT * FROM ods_history_today_fee_save;
|
|||||||
|
|
||||||
INSERT INTO ods_history_today_fee_save
|
INSERT INTO ods_history_today_fee_save
|
||||||
SELECT
|
SELECT
|
||||||
CURRENT_DATE AS dt -- 当天
|
LEFT(CURRENT_DATE,10) AS dt -- 当天
|
||||||
,CURRENT_TIMESTAMP AS extract_date -- 抽数日期
|
,CURRENT_TIMESTAMP() AS extract_date -- 抽数日期
|
||||||
,CURRENT_TIME AS extract_time -- 抽数时间
|
,CURRENT_TIME() AS extract_time -- 抽数时间
|
||||||
,sum(ifnull(pr_paid_amt,0) + ifnull(cu_paid_amt,0) + ifnull(fu_paid_amt,0))/10000 paid_amt
|
,sum(ifnull(pr_paid_amt,0) + ifnull(cu_paid_amt,0) + ifnull(fu_paid_amt,0))/10000 metric_value
|
||||||
from dws_finance_today_fees_d
|
from dws_finance_today_fees_d
|
||||||
WHERE ParentCostCode not in ('0006','0009','0010','0011')
|
WHERE ParentCostCode not in ('0006','0009','0010','0011')
|
||||||
and MiddleCostCode not in ('00080013','00080014','00080015','00080016','00080025','00080029','00080033','00080036','00080037')
|
and MiddleCostCode not in ('00080013','00080014','00080015','00080016','00080025','00080029','00080033','00080036','00080037')
|
||||||
@ -37,8 +37,7 @@ SELECT
|
|||||||
,t.extract_date AS extract_date
|
,t.extract_date AS extract_date
|
||||||
,t.extract_time AS extract_time
|
,t.extract_time AS extract_time
|
||||||
,t.metric_value AS metric_value
|
,t.metric_value AS metric_value
|
||||||
,row_number() OVER (PARTITION BY dt ORDER BY extract_date desc) as rk -- 根据抽数时间排序
|
,row_number() OVER (PARTITION BY LEFT(dt,10) ORDER BY extract_date desc) as rk -- 根据抽数时间排序
|
||||||
|
|
||||||
FROM
|
FROM
|
||||||
(
|
(
|
||||||
SELECT
|
SELECT
|
||||||
@ -49,9 +48,11 @@ dt
|
|||||||
-- 如果一个小时内多次抽数的情况,取最新的
|
-- 如果一个小时内多次抽数的情况,取最新的
|
||||||
,row_number() OVER (PARTITION BY dt,hour(extract_date) ORDER BY extract_date desc) as rk
|
,row_number() OVER (PARTITION BY dt,hour(extract_date) ORDER BY extract_date desc) as rk
|
||||||
FROM ods_history_today_fee_save
|
FROM ods_history_today_fee_save
|
||||||
WHERE dt = '${s_ym}'
|
WHERE LEFT(dt,10) = '${s_ym}'
|
||||||
)t
|
)t
|
||||||
WHERE t.rk = 1
|
WHERE t.rk = 1
|
||||||
|
AND hour(extract_date) >= 7
|
||||||
|
AND hour(extract_date) <= 24
|
||||||
)
|
)
|
||||||
SELECT
|
SELECT
|
||||||
a.dt AS dt
|
a.dt AS dt
|
||||||
|
Loading…
Reference in New Issue
Block a user