직원이 급여 그룹을 입력했을 때 effective date
을 찾아야합니다. 이 날짜는 고용 일자, 갱신 날짜 또는 이전 날짜 중 늦은 날짜에 발생한 것입니다. 내가 뭘하고 싶은지 가장 최근의 효과적인 일 where C1.ACTION=('XFR') AND C1.PAYGROUP=A.PAYGROUP
의 임시 테이블을 만들 때, 그 테이블에 동료가 not
일 때, most recent hire date
을 주겠다고 생각합니다.유효 일자 직원 급여 그룹
- 는가가 최근 대여 날짜는
전체 직원의 기록을이다 스택 개인 정보
CASE WHEN A.HIRE_DT<=A.REHIRE_DT THEN A.REHIRE_DT
ELSE A.HIRE_DT END MOST_REC_HIREDT
참고이 쿼리가 정말 엉망이라는 것을 알고 있습니다. 그래서 나는 도움을 요청합니다.
SELECT DISTINCT
A.EMPLID
A.FIRST_NAME||' '||A.LAST_NAME WORKERNAME,
CASE
WHEN(Select Max(C1.EFFDT) FROM JOB C1
WHERE (C.EMPLID=C1.EMPLID
AND C1.ACTION=('TAF')
AND C1.PAYGROUP=A.PAYGROUP
AND C1.EFFDT>=(CASE WHEN A.HIRE_DT<A.REHIRE_DT THEN =A.REHIRE_DT
ELSE A.HIRE_DT END MR_HIRE_DT)))
WHEN A.EMPLID NOT IN JOB C1
THEN (CASE WHEN A.HIRE_DT<=A.REHIRE_DT
THEN A.REHIRE_DT
ELSE A.HIRE_DT END MR_HIRE_DT2)
ELSE 'Null' END EFFDT,
A.PAYGROUP
FROM EMPLOYEES A, PERSONAL_DATA B, JOB C
WHERE
A.EMPLID=B.EMPLID
AND
B.EMPLID=C.EMPLID
AND
A.PAYGROUP=C.PAYGROUP
AND
C.EMPL_STATUS in ('A','L','P','S')
해결책은 다음과 같습니다. 각 테이블에서 "샘플 데이터"를 입력 한 다음 "expected result" –
쿼리에서 테이블 B가 어디에 있습니까? 적절한 ANSI 조인을 사용할 수 있습니까? 더 나은 쿼리 작성에 도움이 될 것입니다 –
각 테이블의 샘플 데이터와 결과로 얻으려는 결과를 포함하십시오. 또한'FROM' 절에 쉼표가 있으면 가장 잘못된 것이 있습니다. 적절한'JOIN'을 사용하십시오. –