2014-02-20 4 views
0

나는 다음이나중에

NAME -- MANAGER 
10 -- 85 
85 -- 45 
45 -- 52 
52 -- null 
내가 관리자가 계층 구조에서 처음으로 넣어이 같은 출력을 원하는

과 같은 테이블 직원이 첫 번째 테이블에서 관리자와 직원을 얻기

NAME -- MANAGER 

    52 -- null 

    45 -- 52 

    85 -- 45 

    10 -- 85 

아무도 내가 그것을 도울 수 있습니다. 나는 내부는 아래와 같이 가입했지만 그것은

select * from TABLEMAIN 

inner join TABLEMAIN t2 ON TABLEMAIN.MANAGER = t2.NAME 

order by TABLEMAIN.NAME 

+0

첫 번째 답변과 같이 데이터의 계층 적 검색을 원하십니까? 아니면 단순히 관리자 ID로 주문 하시겠습니까? – wumpz

답변

2

로 시작하고

WITH TABLEMAIN(NAME,MANAGER) AS 
    (SELECT 10 ,85 FROM dual UNION ALL 
    SELECT 85 , 45 FROM dual UNION ALL 
    SELECT 45 ,52 FROM dual UNION ALL 
    SELECT 52 ,null FROM dual) 
---- 
-- End of data 
---- 
SELECT * FROM TABLEMAIN 
START WITH manager IS NULL 
CONNECT BY PRIOR NAME = manager 

출력하여 연결하여 달성 할 수있는 솔루션에 도착 도와주세요 작동하지 않았다 :

NAME MANAGER 
52 
45 52 
85 45 
10 85 
+0

SQLFiddle이 오프라인 인 것 같습니다. 아니면이게 내 문제 야? – wumpz

+0

@Stijn 하드 코딩이 아니라, 단지 데이터 준비,'--- End of data' 라인 이후의 실제 쿼리 시작. – San

+0

@San 고마워 ... 내가 필요로하는 것이 완벽했다. – naga1990