2017-04-10 6 views
0

이 쿼리는 ORA-00904: invalid identifier이라는 오류를 발생시킵니다. 아무도 그 이유를 말해 줄 수 있습니까?SQL 쿼리의 식별자가 올바르지 않습니다.

select papf.person_id, papf.person_number, ppnf.DISPLAY_NAME 
from per_people_f papf, PER_PERSON_NAMES_F ppnf 
where 
papf.person_id=ppnf.person_id 
and papf.person_id not in (select cs.person_id from cmp_salary cs where cs.person_id is not null and cs.ASSIGNMENT_ID is null) 
and papf.person_id not in (select cse.person_id from cmp_salary_export cs where cse.person_id is not null and cse.ASSIGNMENT_ID is null) 
and ppnf.name_type='US' 
order by papf.person_id 
+0

** 귀하의 질문에 ** ** ** 오류 메시지를 추가하십시오. 코멘트에 추가 정보를 게시하지 마십시오. –

+1

오늘의 팁 : 모던하고 명시적인'JOIN' 구문으로 전환하십시오! 쓰기가 쉽고 (오류없이) 읽기 쉽고 유지 보수가 쉬우 며 필요한 경우 외부 조인으로 변환하기가 더 쉽습니다. – jarlh

+0

구문이 유효합니다. 열이나 테이블 이름의 철자가 틀린 것 같습니다. 물건을 제거하고 다시 시도하십시오. – jarlh

답변

1

오타입니다. 두 번째 하위 쿼리에서 모든 열 참조 cse.의 별칭을 지정했지만 테이블 cs의 별칭을 지정했습니다.

(select cse.person_id 
from cmp_salary_export cs 
where cse.person_id is not null 
and cse.ASSIGNMENT_ID is null) 

적절한 들여 쓰기와 코드를 레이아웃 단지를 떠는 것도 유식 한척하는 것도 아니다 : 그것은 읽기 쉽게 만드는 것은 그것을 디버깅하기 쉬워집니다.