ORA-00904: "EA"."INTERNAL_EMPL_ID": invalid identifier with INNER JOIN
653471Aug 5 2008 — edited Aug 5 2008Hi all, I've modified the statement to user INNER JOIN to get maximum Enrollment Date and Coverage End Date from other table (DED_PARM). This table has multiple records for each employee and I just need to get maximum dates from this table no matter what Deduction Type is.
When I added PAY_PARM table to the code, I got following error message:
ORA-00904: "EA"."INTERNAL_EMPL_ID": invalid identifier
This column is all upper cases when I checked so letter case is not the issue. Weird thing is, code was working until I added PAY_PARM table. It was working with EMPL, EMPL_APPT, and ADDRESS. I don't see why all of sudden it throws error message. Please help.
SELECT
EA.INTERNAL_EMPL_ID,
EMPL.EMPL_SSN,
EMPL.EMPLOYEE_ID,
EMPL.EMPL_LAST_NM,
EMPL.EMPL_FIRST_NM,
EMPL.EMPL_MIDDLE_NM,
EMPL.EMPL_PREFIX_CD,
EMPL.EMPL_SUFFIX_CD,
ADDRESS.STR_1_NM,
ADDRESS.STR_2_NM,
ADDRESS.CITY_NM,
ADDRESS.ST_CD,
ADDRESS.ZIP,
ADDRESS.PH_NO,
ADDRESS.EMAIL_AD,
EMPL.MARITAL_STA_CD,
EMPL.SEX_ID,
EMPL.BIRTH_DT,
EMPL_APPT.APPOINTMENT_DT,
EA.EFFECTIVE_DT,
EA.HOME_DEPT_CD,
EA.PAY_CLS_CD,
EA.EMPLMT_STA_CD,
EA.PC_FT_PC,
EA.TIME_CLSIFY_ID,
EA.EXPIRATION_DT,
EA.PERS_ACTN_CD,
MAX(DP.ENROLLMENT_DT) MAX_ENRL_DT,
MAX(DP.CVRG_END_DT) MAX_CVRG_END_DT,
PAY_PARM.PAY_RT_AM,
EA.LAST_UPDATE_DT
FROM
EMPL,
ADDRESS,
EMPL_APPT,
EMPL_ASGNMT EA,
PAY_PARM
INNER JOIN
DED_PARM DP
ON
EA.INTERNAL_EMPL_ID = DP.INTERNAL_EMPL_ID
WHERE
(EMPL_APPT.APPOINTMENT_ID = EA.APPOINTMENT_ID
AND EMPL_APPT.INTERNAL_EMPL_ID = EA.INTERNAL_EMPL_ID)
AND (EMPL.INTERNAL_EMPL_ID = EA.INTERNAL_EMPL_ID)
AND (ADDRESS.INTERNAL_EMPL_ID = EA.INTERNAL_EMPL_ID
AND EA.EFFECTIVE_DT <= ADDRESS.EXPIRATION_DT
AND EA.EXPIRATION_DT >= ADDRESS.EFFECTIVE_DT)
AND (PAY_PARM.APPOINTMENT_ID = EA.APPOINTMENT_ID
AND PAY_PARM.INTERNAL_EMPL_ID = EA.INTERNAL_EMPL_ID
AND EA.EFFECTIVE_DT <= PAY_PARM.EXPIRATION_DT
AND EA.EXPIRATION_DT >= PAY_PARM.EFFECTIVE_DT)
AND (EA.EXPIRATION_DT = TO_DATE('9999/12/31','yyyy/mm/dd')
AND (EA.EMPLMT_STA_CD IN ('A', 'T', 'W', 'I', 'L','Z') OR EA.HOME_DEPT_CD IN ('INS','COB')))
AND ADDRESS.EXPIRATION_DT = TO_DATE('9999/12/31','yyyy/mm/dd')
AND DP.EXPIRATION_DT = TO_DATE('9999/12/31','yyyy/mm/dd')
AND PAY_PARM.EVNT_CD = 'REGLR'
AND PAY_PARM.EXPIRATION_DT = TO_DATE('9999/12/31','yyyy/mm/dd')
GROUP BY
EA.INTERNAL_EMPL_ID,
EMPL.EMPL_SSN,
EMPL.EMPLOYEE_ID,
EMPL.EMPL_LAST_NM,
EMPL.EMPL_FIRST_NM,
EMPL.EMPL_MIDDLE_NM,
EMPL.EMPL_PREFIX_CD,
EMPL.EMPL_SUFFIX_CD,
ADDRESS.STR_1_NM,
ADDRESS.STR_2_NM,
ADDRESS.CITY_NM,
ADDRESS.ST_CD,
ADDRESS.ZIP,
ADDRESS.PH_NO,
ADDRESS.EMAIL_AD,
EMPL.MARITAL_STA_CD,
EMPL.SEX_ID,
EMPL.BIRTH_DT,
EMPL_APPT.APPOINTMENT_DT,
EA.EFFECTIVE_DT,
EA.HOME_DEPT_CD,
EA.PAY_CLS_CD,
EA.EMPLMT_STA_CD,
EA.PC_FT_PC,
EA.TIME_CLSIFY_ID,
EA.EXPIRATION_DT,
EA.PERS_ACTN_CD,
PAY_PARM.PAY_RT_AM,
EA.LAST_UPDATE_DT