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
;
'03.업 > 05.오라클' 카테고리의 다른 글
오라클 테이블정보 조회 (0) | 2022.06.02 |
---|---|
테이블코멘트수정 (0) | 2022.05.25 |
[오라클] 전화번호 포맷 변경 쿼리 (하이픈, 자르기) (0) | 2021.12.24 |
조건절에 != , <> 보다 IN을 쓰는 이유 (0) | 2021.12.10 |
가로로 SUM구하기 (0) | 2021.12.10 |