352 lines
7.8 KiB
SQL
352 lines
7.8 KiB
SQL
-- ======================================
|
|
-- 年龄分布
|
|
-- ======================================
|
|
|
|
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
|
|
|
|
|
|
|
|
-- ======================================
|
|
-- 司龄分布
|
|
-- ======================================
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
|
|
-- ======================================
|
|
-- 学历分布
|
|
-- ======================================
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
-- ======================================
|
|
-- 职务角色
|
|
-- ======================================
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-- ======================================
|
|
-- 职务层级
|
|
-- ======================================
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
|
|
-- ======================================
|
|
-- 一级专业条线
|
|
-- ======================================
|
|
|
|
|
|
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
|
|
;
|
|
|
|
-- ======================================
|
|
-- 人员明细
|
|
-- ======================================
|
|
|
|
SELECT
|
|
A.pq AS pq -- 片区
|
|
,B.hr_organ_name AS hr_organ_name
|
|
,A.xm AS xm -- 项目
|
|
,B.hr_comm_name AS hr_comm_name
|
|
,A.bm AS bm -- 部门id
|
|
,A.bmmc AS bmmc -- 部门名称
|
|
,A.gwid AS gwid -- 岗位id
|
|
,A.gwmc AS gwmc -- 岗位名称
|
|
,A.id AS id -- 人员id
|
|
,A.workcode AS workcode -- 工号
|
|
,A.lastname AS lastname -- 姓名
|
|
,A.nl AS nl -- 年龄
|
|
,A.sl AS sl -- 司龄
|
|
,A.zwid AS zwid -- 职务角色id
|
|
,A.zwmc AS zwmc -- 职务角色名称
|
|
,A.zytxid AS zytxid -- 专业条线id
|
|
,A.zytxmc AS zytxmc -- 专业条线名称
|
|
,A.zycjid AS zycjid -- 职员层级id
|
|
,A.zycjname AS zycjname -- 职员层级名称
|
|
FROM
|
|
(
|
|
SELECT
|
|
pq -- 片区
|
|
,xm -- 项目
|
|
,bm -- 部门id
|
|
,bmmc -- 部门名称
|
|
,gwid -- 岗位id
|
|
,gwmc -- 岗位名称
|
|
,id -- 人员id
|
|
,workcode -- 工号
|
|
,lastname -- 姓名
|
|
,nl -- 年龄
|
|
,sl -- 司龄
|
|
,zwid -- 职务角色id
|
|
,zwmc -- 职务角色名称
|
|
,zytxid -- 专业条线id
|
|
,zytxmc -- 专业条线名称
|
|
,zycjid -- 职员层级id
|
|
,zycjname -- 职员层级名称
|
|
FROM ods_hr_view_zaizhi_user_d
|
|
WHERE LEFT(ny,7) = '${p_ym}'
|
|
)A
|
|
LEFT 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
|
|
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
|
|
where 1 = 1
|
|
${IF(LEN(p_area)>0," AND B.organ_code IN ('"+ p_area +"')", "")} |