• 締切済み

エラー「無効な識別子です」

ORA-00904: "EMPNO": 無効な識別子です と表示されます。 解決方法知っている方、教えていただければ幸いです。 SELECT EMPNO, ENAME, D.DEPTNO, DNAME FROM DEPT D WHERE EMPNO = (SELECT EMPNO FROM EMP WHERE MGR IS NULL) SQL> DESCRIBE EMP; 名前 NULL? 型 ----------------------------------------- -------- ---------------------------- EMPNO NOT NULL NUMBER(4) ENAME VARCHAR2(10) JOB VARCHAR2(9) MGR NUMBER(4) HIREDATE DATE SAL NUMBER(7,2) COMM NUMBER(7,2) DEPTNO NOT NULL NUMBER(2)

みんなの回答

  • jch
  • ベストアンサー率38% (7/18)
回答No.2

SELECT EMPNO FROM EMP WHERE MGR IS NULLの結果は一件 EMPNO 7839ですけど 条件にはEMPとDEPTの結合条件がないので最後の件数はDEPTの件数と同じです。 無条件結合です。

yukikundesuyo
質問者

お礼

回答ありがとうございます。 1 SELECT EMPNO, ENAME, E.DEPTNO, DNAME 2 FROM EMP E, dept D WHERE E.EMPNO = 3* (SELECT EMPNO FROM EMP E WHERE MGR IS NULL) AND E.DEPTNO = D.DEPTNO の記述で無事求めたい結果を出せました。

  • jch
  • ベストアンサー率38% (7/18)
回答No.1

SELECT E.EMPNO, E.ENAME, E.DEPTNO, D.DNAME FROM DEPT D,EMP E WHERE D.EMPNO = E.EMPNO and E.MGR is null

yukikundesuyo
質問者

補足

回答ありがとうございます。 下記SQLコマンド(副問合せ文)になおさせて頂きましたが、MGR IS NULL のレコードは1件のはずなのに4件出力されます。 何故でしょうか? 回答のほどよろしくお願いいたします。 SELECT EMPNO, ENAME, E.DEPTNO, DNAME FROM DEPT,EMP E WHERE E.EMPNO = (SELECT EMPNO FROM EMP WHERE MGR IS NULL) 実行結果 EMPNO ENAME DEPTNO DNAME ---------- ---------- ---------- -------------- 7839 KING 10 ACCOUNTING 7839 KING 10 RESEARCH 7839 KING 10 SALES 7839 KING 10 OPERATIONS

関連するQ&A