03.업/05.오라클2022. 1. 19. 14:53

 SELECT /* ep06_0002.S_01 ep11_0011_02_r 교원인사 장기근속교수명단 재직년수 10년이  */
       A.ACCNUT_UNIT_CODE , A.HFFC_STTUS_CODE
     , F_CB1100_S(A.ACCNUT_UNIT_CODE, 'EA001') AS 회계단위
     , A.HR_NO
     , A.SKLSTF_NO
     , F_EH3000_S(A.SKLSTF_NO) AS 교직원명
     , TO_CHAR(TO_DATE(A.LIFYEA_MD), 'YYYY.MM.DD') AS 생년월일
     , A.DEPT_CODE
     , F_CB2000_S(A.DEPT_CODE, '4') AS 계열코드
     , F_CB2000_S(A.DEPT_CODE, '5') AS 계열
     , F_CB2000_S(A.DEPT_CODE, '1') AS 학과
     , F_CB2000_S(A.DEPT_CODE, '2') AS 부서그룹코드
     , F_CB2000_S(A.DEPT_CODE, '3') AS 부서그룹
     , A.JSSFC_CODE
     , F_CB1100_S(A.JSSFC_CODE, 'EH003') AS 직종
     , A.CLSF_CODE
     , F_CB1100_S(A.CLSF_CODE, 'EH002') AS 직급
     , A.OFCPS_CODE
     , F_CB1100_S(A.OFCPS_CODE, 'EH004') AS 직위
     , B.MAJOR_NM AS 전공명, B.SUBJCT_NM AS 출신학과명, B.DGRI_NM AS 학위명, B.ORGIN_SCHUL_NM AS 출신학교명
     , TO_CHAR(TO_DATE(A.CURR_JSSFC_EMPLMN_DATE), 'YYYY.MM.DD') AS 현직종임용일자
     , F_CNWK_YY_CO_I(A.SKLSTF_NO, A.FRST_EMPLMN_DATE, TO_CHAR(SYSDATE, 'YYYYMMDD'), '1') AS 근속년수
     , F_JSSFC_CNWK_YY_CO_I(A.SKLSTF_NO, A.CURR_JSSFC_EMPLMN_DATE, TO_CHAR(SYSDATE, 'YYYYMMDD'), '1') AS 현직종근속년수
     , F_CNWK_YY_CO_I(A.SKLSTF_NO, A.CURR_JSSFC_EMPLMN_DATE, TO_CHAR(SYSDATE, 'YYYYMMDD'), '1') AS 교직원근속년수
     , A.AGLMT_PREARNGE_DATE AS 정년예정일자
     , DECODE(F_CNWK_YY_CO_I(A.SKLSTF_NO, A.CURR_JSSFC_EMPLMN_DATE, TO_CHAR(SYSDATE, 'YYYYMMDD'), '1'), '10', '01', '20', '02', '30', '03', NULL) AS 근속대상코드
   , TRUNC(
       MONTHS_BETWEEN(    TRUNC(SYSDATE), TO_DATE(CASE WHEN SUBSTR(INGRIAN.DECRYPT(C.RSGST_NO), 7, 1) = '1' OR SUBSTR(INGRIAN.DECRYPT(C.RSGST_NO), 7, 1) = '2' THEN '19' || SUBSTR(INGRIAN.DECRYPT(C.RSGST_NO), 0, 6)
        ELSE '20' || SUBSTR(INGRIAN.DECRYPT(C.RSGST_NO), 0, 6) END , 'YYYYMMDD')
        ) / 12
      ) AS AGE
   FROM EH3000 A
   LEFT OUTER JOIN (
        SELECT A1.ACCNUT_UNIT_CODE, A1.SKLSTF_NO
            , SUBSTR(MAX(B1.ACDMCR_CODE || B1.GRDTN_DATE || B1.MAJOR_NM ), 11) AS MAJOR_NM
            , SUBSTR(MAX(B1.ACDMCR_CODE || B1.GRDTN_DATE || B1.SUBJCT_NM ), 11) AS SUBJCT_NM
            , SUBSTR(MAX(B1.ACDMCR_CODE || B1.GRDTN_DATE || B1.ORGIN_SCHUL_NM ), 11) AS ORGIN_SCHUL_NM
            , SUBSTR(MAX(B1.ACDMCR_CODE || B1.GRDTN_DATE || B1.DGRI_NM ), 11) AS DGRI_NM
        FROM EH3000 A1
        LEFT OUTER JOIN EH3050 B1 ON A1.ACCNUT_UNIT_CODE = B1.ACCNUT_UNIT_CODE AND A1.SKLSTF_NO = B1.SKLSTF_NO
        GROUP BY A1.ACCNUT_UNIT_CODE, A1.SKLSTF_NO
   ) B /* 학력사항 */ 
     ON A.ACCNUT_UNIT_CODE = B.ACCNUT_UNIT_CODE 
    AND A.SKLSTF_NO = B.SKLSTF_NO
   LEFT OUTER JOIN EH3010 C /* 민감정보 */ 
     ON A.ACCNUT_UNIT_CODE = C.ACCNUT_UNIT_CODE 
    AND A.HR_NO = C.HR_NO 
    AND A.SKLSTF_NO = C.SKLSTF_NO
  WHERE A.ACCNUT_UNIT_CODE = NVL('02', '02')
    AND A.SKLSTF_SE = '01' /* 교직원 */
    --AND A.HFFC_STTUS_CODE = '01'
    AND A.JSSFC_CODE IN ('01', '07')
    AND A.EMPLYM_STLE_CODE = '04' /* 고용형태 */
    AND F_CNWK_YY_CO_I(A.SKLSTF_NO, A.FRST_EMPLMN_DATE, TO_CHAR(SYSDATE, 'YYYYMMDD'), '1') >= 10
    --AND A.SKLSTF_NO  = '1997P0129'
    --AND A.DEPT_CODE = '" + #OZParam.P_DEPT_CODE# + "'
    --AND F_CB2000_S(A.DEPT_CODE, '2') =  '" + #OZParam.P_DEPT_GROUP_CODE# + "'
    ORDER BY F_CB2000_S(A.DEPT_CODE, '1'), A.SKLSTF_NO
    ;

Posted by 봄날의차