select em uma tabela com auto-relacionamento
Pessoal estou com uma dúvida que já esta me enlouquecendo, Eu tenho uma tabela que contém um auto relacionamento. É mais ou menos assim:
cd_projeto : varchar2(10) not null;
super_cd_projeto: varchar2(10);
descricao:varchar2(40);
Projeto Super Descricao
S001 xx
S002 yy
S003 zz
P005 S002 aa
P009 S002 bb
P003 S001 cc
P004 S001 dd
Estou precisando ordená-lo através de um único select para que exiba o super e seus dependentes como:
Projeto Super Descricao
S001 xx
P003 S001 cc
P004 S001 dd
S002 yy
P008 S002 aa
P009 S002 bb
S003 zz
Eu queria saber se há como fazer essa ordenação através de um select? Não estou conseguindo de jeito nenhum. Caso possam me ajudar.....
cd_projeto : varchar2(10) not null;
super_cd_projeto: varchar2(10);
descricao:varchar2(40);
Projeto Super Descricao
S001 xx
S002 yy
S003 zz
P005 S002 aa
P009 S002 bb
P003 S001 cc
P004 S001 dd
Estou precisando ordená-lo através de um único select para que exiba o super e seus dependentes como:
Projeto Super Descricao
S001 xx
P003 S001 cc
P004 S001 dd
S002 yy
P008 S002 aa
P009 S002 bb
S003 zz
Eu queria saber se há como fazer essa ordenação através de um select? Não estou conseguindo de jeito nenhum. Caso possam me ajudar.....
Andreaffbr
Curtidas 0
Respostas
Motta
06/01/2004
use o connect by
veja exemplo
SELECT empno, ename, mgr
FROM emp
CONNECT BY
PRIOR empno = mgr;
na tabela citada
select *
from projeto
connect by prior cd_projeto = super_cd_projeto
veja o help para mais detalhes
veja exemplo
SELECT empno, ename, mgr
FROM emp
CONNECT BY
PRIOR empno = mgr;
na tabela citada
select *
from projeto
connect by prior cd_projeto = super_cd_projeto
veja o help para mais detalhes
GOSTEI 0
Orlandodias
06/01/2004
Tente acrescentar ao final do seu SQL:
ORDER BY NVL(super_cd_projeto,CDPROJETO)||CDPROJETO
sds
OD
ORDER BY NVL(super_cd_projeto,CDPROJETO)||CDPROJETO
sds
OD
GOSTEI 0
Andreaffbr
06/01/2004
Muito obrigado! Era isso mesmo, funcionou com estes 2 exemplos.
GOSTEI 0