renalfuck 0 Denunciar post Postado Setembro 22, 2010 SQL> SELECT ENAME, MGR 2 FROM EMP 3 WHERE MGR IN ( SELECT EMPNO 4 FROM EMP 5 WHERE MGR = EMPNO); não há linhas selecionadas Gostaria de entender o porque de não "haver linhas selecionadas", não consigo entender esta expressão, já que preciso trazer os nomes dos funcionarios que possuem subordinados, como faço para comparar colunas ?? Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Setembro 22, 2010 Para este tipo de busca com hierarquia use o connect by. Compartilhar este post Link para o post Compartilhar em outros sites
renalfuck 0 Denunciar post Postado Setembro 22, 2010 SELECT ENAME, MGR FROM EMP WHERE EMPNO = MGR CONNECT BY PRIOR EMPNO = MGR; CONTINUA INFORMANDO QUE NÃO HA LINHAS SELECIONADAS; Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Setembro 22, 2010 SELECT ENAME, MGR FROM EMP retorna o que ? --------- ... não há linhas selecionadas ... Nenhum registro atendeu a condição estabelecida. Compartilhar este post Link para o post Compartilhar em outros sites
renalfuck 0 Denunciar post Postado Setembro 22, 2010 NOME E CODIGO DO GERENTE NÃO DÁ PARA SER FEITO COM SUBCONSULTA Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Setembro 22, 2010 Existem registros na tabela ? A integrigade EMPNO x MGR está legal ? Já usei CONNECT BY e funciona bem. Compartilhar este post Link para o post Compartilhar em outros sites
renalfuck 0 Denunciar post Postado Setembro 22, 2010 SQL> SELECT MGR, COUNT(*) FROM EMP 2 GROUP BY MGR; MGR COUNT(*) ---------- ---------- 1 7839 3 7782 1 7698 5 7902 1 7566 2 7788 1 7 linhas selecionadas. MAIS OU MENOS ISSO AQUI SÓ QUE EU TENHO QUE MOSTRAR O NOME DOS FUNCIONARIOS QUE POSSUEM SUBORDINADOS PELO CODIGO DO GERENTE "mgr". Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Setembro 22, 2010 SELECT ENAME, MGR FROM EMP start with mgr = 1 CONNECT BY PRIOR EMPNO = MGR; Compartilhar este post Link para o post Compartilhar em outros sites
renalfuck 0 Denunciar post Postado Setembro 22, 2010 SQL> SELECT ENAME, MGR 2 FROM EMP 3 start with mgr = 1 4 CONNECT BY PRIOR EMPNO = MGR; não há linhas selecionadas ele não encontrou nada porem, os valores que preciso achar existem ! Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Setembro 22, 2010 publica um DESC desta tabela, quem sabe ajuda. Compartilhar este post Link para o post Compartilhar em outros sites
renalfuck 0 Denunciar post Postado Setembro 23, 2010 SQL> desc emp Nome Nulo? Tipo ----------------------------------------- -------- ---------------------------- EMPNO NOT NULL NUMBER(4) ENAME CHAR(10) JOB CHAR(9) MGR NUMBER(4) HIREDATE DATE SAL NUMBER(7,2) COMM NUMBER(7,2) DEPTNO NOT NULL NUMBER(2) espero que ajude Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Setembro 23, 2010 SELECT * FROM EMP Retorna o que ? Existem gerentes ligados aos funcionários ? Este erro parace não fazer sentido. Compartilhar este post Link para o post Compartilhar em outros sites
renalfuck 0 Denunciar post Postado Setembro 23, 2010 SQL> select * from emp; EMPNO ENAME JOB MGR HIREDATE SAL COMM ---------- ---------- --------- ---------- -------- ---------- ---------- DEPTNO ---------- 7839 KING PRESIDENT 17/11/81 5000 10 7698 BLAKE MANAGER 7839 01/05/81 2850 30 7782 CLARK MANAGER 7839 09/06/81 2450 10 EMPNO ENAME JOB MGR HIREDATE SAL COMM ---------- ---------- --------- ---------- -------- ---------- ---------- DEPTNO ---------- 7566 JONES MANAGER 7839 02/04/81 2975 20 7654 MARTIN SALESMAN 7698 28/09/81 1250 1400 30 7499 ALLEN SALESMAN 7698 20/02/81 1600 300 30 EMPNO ENAME JOB MGR HIREDATE SAL COMM ---------- ---------- --------- ---------- -------- ---------- ---------- DEPTNO ---------- 7844 TURNER SALESMAN 7698 08/09/81 1500 0 30 7900 JAMES CLERK 7698 03/12/81 950 30 7521 WARD SALESMAN 7698 22/02/81 1250 500 30 EMPNO ENAME JOB MGR HIREDATE SAL COMM ---------- ---------- --------- ---------- -------- ---------- ---------- DEPTNO ---------- 7902 FORD ANALYST 7566 03/12/81 3000 20 7369 SMITH CLERK 7902 17/12/80 800 20 7788 SCOTT ANALYST 7566 09/12/82 3000 20 EMPNO ENAME JOB MGR HIREDATE SAL COMM ---------- ---------- --------- ---------- -------- ---------- ---------- DEPTNO ---------- 7876 ADAMS CLERK 7788 12/01/83 1100 20 7934 MILLER CLERK 7782 23/01/82 1300 10 Espero que ajude Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Setembro 23, 2010 SELECT ENAME, MGR FROM EMP CONNECT BY PRIOR EMPNO = MGR start with mgr is not null; Estranho que é um exemplo clássico. veja http://agileinformatica.com/blog/?p=55 Compartilhar este post Link para o post Compartilhar em outros sites