2017-04-10 31 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

これはタイプミスです。 2番目のサブクエリでは、列参照cse.のエイリアスがありますが、テーブルcsのエイリアスがあります。

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

適切なインデントでコードをレイアウトすることは、単なるpedantryではありません。読みやすく、デバッグしやすくなります。

関連する問題