| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- -- ============================================================
- -- 政策推送和岗位信息变动推送 - 视图SQL(达梦DM8)
- -- ============================================================
- -- ============================================================
- -- 画像变动管理视图
- -- 从个人信息、简历、失败诊断、就业登记、失业登记聚合计算画像状态
- -- 注:无独立物理表,自定义标签/通知时间与个人就业状态感知共用 PERSONAL_STATUS_LOCAL
- -- ============================================================
- CREATE OR REPLACE VIEW V_PROFILE_CHANGE AS
- SELECT
- pi.ID AS PERSONAL_ID,
- pi.ID_NUMBER,
- pi.FULL_NAME,
- pi.HOUSEHOLD_LOCATION AS HOUSEHOLD_DISTRICT,
- pi.GENDER,
- pi.EDUCATION,
- FLOOR(MONTHS_BETWEEN(SYSDATE, pi.BIRTH_DATE) / 12) AS AGE,
- CASE
- WHEN pi.JOB_SEARCH_STATUS IN ('离职-随时到岗','在职-月内到岗','在职-考虑机会','应届毕业生')
- AND (r.ID IS NULL OR (r.VALID_DATE IS NOT NULL AND r.VALID_DATE < SYSDATE))
- THEN '求职信息不完善'
- WHEN fd.ID IS NOT NULL THEN '求职失败'
- WHEN er.PERSONAL_ID IS NOT NULL THEN '就业登记'
- WHEN ur.PERSONAL_ID IS NOT NULL THEN '失业登记'
- ELSE '求职信息不完善'
- END AS PROFILE_STATUS,
- CASE
- WHEN pi.JOB_SEARCH_STATUS IN ('离职-随时到岗','在职-月内到岗','在职-考虑机会','应届毕业生')
- AND r.ID IS NULL
- THEN '无简历'
- WHEN pi.JOB_SEARCH_STATUS IN ('离职-随时到岗','在职-月内到岗','在职-考虑机会','应届毕业生')
- AND r.VALID_DATE IS NOT NULL AND r.VALID_DATE < SYSDATE
- THEN '简历过期'
- WHEN fd.ID IS NOT NULL THEN fd.LOCAL_TAGS
- WHEN er.PERSONAL_ID IS NOT NULL THEN '就业中'
- WHEN ur.PERSONAL_ID IS NOT NULL THEN '失业中'
- ELSE ''
- END AS STATUS_DESC,
- COALESCE(fd.UPDATE_TIME, er.CREATE_TIME, ur.CREATE_TIME, pi.UPDATE_TIME) AS DATA_DATE,
- psl.CUSTOM_TAGS,
- psl.LAST_NOTICE_TIME,
- pi.CREATE_BY,
- pi.CREATE_TIME,
- pi.UPDATE_BY,
- pi.UPDATE_TIME,
- pi.SYS_ORG_CODE
- FROM PERSONAL_INFO pi
- LEFT JOIN RESUME_INFO r ON pi.ID = r.PERSONAL_ID AND (r.IS_DEFAULT IS NULL OR r.IS_DEFAULT = '是')
- LEFT JOIN INTERVIEW_FAIL_DIAGNOSIS fd ON pi.ID = fd.PERSONAL_ID
- LEFT JOIN (
- SELECT PERSONAL_ID, COUNT(*) AS EMPLOY_COUNT, MIN(CREATE_TIME) AS CREATE_TIME
- FROM EMPLOYMENT_RECORD
- GROUP BY PERSONAL_ID
- ) er ON pi.ID = er.PERSONAL_ID
- LEFT JOIN (
- SELECT PERSONAL_ID, COUNT(*) AS UNEMPLOY_COUNT, MIN(CREATE_TIME) AS CREATE_TIME
- FROM UNEMPLOYMENT_RECORD
- GROUP BY PERSONAL_ID
- ) ur ON pi.ID = ur.PERSONAL_ID
- LEFT JOIN PERSONAL_STATUS_LOCAL psl ON pi.ID = psl.PERSONAL_ID;
- COMMENT ON VIEW V_PROFILE_CHANGE IS '画像变动管理视图';
|