- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エラー2「無効な識別子です」)
エラー2「無効な識別子です」
このQ&Aのポイント
- 先ほども似たような質問をしましたが原因がよく分からないなのでご存知の方教えていただければ幸いです。
- SELECT文の中に無効な識別子があります。ORA-00904エラーが表示されています。
- EMPテーブルとDEPTテーブルを結合し、特定の条件でデータを取得しているようです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
続きです。 よく見ると?なところが何箇所かありますね。 SELECT D.DEPTNO, E.ENAME, E.SAL FROM EMP E, DEPT D WHERE E.SAL >ANY (SELECT MAX(E.SAL) FROM DEPT D, EMP E GROUP BY D.DEPT) EMPとDEPTを結合していないですね。 これではEMP×DEPT行数出てきてしまいますよ。 D.DEPTNO=E.DEPTNOであるなら、出力したいのはEMPの項目だけでDEPTの項目はいらない、つまりDEPTを結合しなくてもよさそうですが。 何を求めようとしているのでしょうか?
その他の回答 (1)
- lovesens
- ベストアンサー率30% (48/158)
回答No.1
ORACLEで開発やってます(SE暦5年) >SELECT MAX(E.SAL) FROM DEPT D, EMP E GROUP BY D.DEPT D.DEPTでGROUP BYしたいのであれば、 SELECT D.DEPT,MAX(E.SAL) FROM DEPT D, EMP E GROUP BY D.DEPT しないとまずいと思います。 D.DEPTがないのにD.DEPTでGROUP BYしようとしているので、D.DEPTが無効な識別子だと怒られるのです。
お礼
lovesens様の回答により訂正させて頂きましたらキチンとした実行結果が返ってきました。 本当にありがとうございます。