- 締切済み
エラー「無効な識別子です」
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)
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- jch
- ベストアンサー率38% (7/18)
SELECT EMPNO FROM EMP WHERE MGR IS NULLの結果は一件 EMPNO 7839ですけど 条件にはEMPとDEPTの結合条件がないので最後の件数はDEPTの件数と同じです。 無条件結合です。
- jch
- ベストアンサー率38% (7/18)
SELECT E.EMPNO, E.ENAME, E.DEPTNO, D.DNAME FROM DEPT D,EMP E WHERE D.EMPNO = E.EMPNO and E.MGR is null
補足
回答ありがとうございます。 下記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
お礼
回答ありがとうございます。 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 の記述で無事求めたい結果を出せました。