database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 31527 게시물 읽기
No. 31527
START WITH이거 좀 해결해주세요~
작성자
..
작성일
2007-08-02 17:31ⓒ
2007-08-03 11:32ⓜ
조회수
2,204

제가 지금 할려고 하는게
트리구조로 된 부서들이 있고 거기에 해당하는 사원이 있는경우
사원아이디를 가지고 그사원의 최상위 부서를 찾을려고 하는데요
select를 해보니 최상위 부서가 모두 하나로만 찍히네요

  select rownum, org_name, aa
        from (
            select org_id,           org_name
            from test3   where org_id is not null START WITH org_id IN (
                select a.dept_id
                from test a,test b
                where a.user_uid = b.pjt_leader )
               CONNECT BY org_id = prior org_parent_id
               order by aa desc
        )
        order by aa desc
    )
    where rownum = '1'



-------------------------------------------------------------
여기 까지 SQL 문인데요
굵게 표시된 b.pjt_leader  이컬럼은 여러개를 가지고 있는 다중행이라서 in을 사용했는데요
is not null start width의 기준은 하나인데 행은 여러개라서 알맞은 값들을 가져 오질 못하거든요
어떻게 해야할지 모르겠는데
빠른답변 부탁드릴께요

이 글에 대한 댓글이 총 3건 있습니다.

다시 쿼리하지 말고 메인쿼리와 연결해야죠...;


START WITH org_id = b.dept_id

CONNECT BY org_id = prior org_parent_id

로 바꾸고 실행 해 보세요...;


결과는 같긴 할텐데 ORDER BY로 보아 안쪽에서 굳이 ROWNUM을 SELECT하여 혼동을 유발하는 쿼리로 만들 필요가 없습니다.

WHERE ROWNUM = 1조건만 있으면 될 것 같습니다.


건승하시길...수고하세요~~

성시현(finecomp)님이 2007-08-02 17:50에 작성한 댓글입니다.
이 댓글은 2007-08-02 17:58에 마지막으로 수정되었습니다.

그런데요

START WITH org_id = b.dept_id 

이렇게 했을때도 동일한데요

왜냐면  b.dept_id 는 값을 여러개 담고 있는데 START WITH 는 한개밖에 담을수 없다고 하던데

좀알려주세요

..님이 2007-08-02 18:04에 작성한 댓글입니다. Edit

잉? 무슨얘기신지...;

메인쿼리와 연결한 스칼라 서브쿼리는 보통 row당 수행되기 때문에 전달되는 값은 row당 하나인데요?
애초에 스칼라 서브쿼리로 구성한 쿼리구조가 잘못되었다는?

그럼 값이 잘못나오다 라고만 하시면 답다는 입장에선 데이터를 볼 수 없어 어떻게 잘못나오는지 확인 할 수 없으니 이런 값이 나와야하는데 저렇게 잘못나온다 라고 데이터 샘플을 보여 주실 순 없는지?

성시현(finecomp)님이 2007-08-03 09:25에 작성한 댓글입니다.
이 댓글은 2007-08-03 09:25에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
31531함수만들때 다른곳 테이블 사용불가능하나요? [4]
!!
2007-08-03
1996
31529insert하는 테이블을 select하면 속도에 영향을 미치나요? [1]
오라클
2007-08-03
2172
31528WHERE절에서 동적으로 검색할 컬럼이 바뀔경우에는? [5]
잔대가리
2007-08-02
2900
31527START WITH이거 좀 해결해주세요~ [3]
..
2007-08-02
2204
31526CLOB 항목을 UPDATE중 에러입니다. [3]
black
2007-08-02
2804
31525아웃터조인시 오른쪽 테이블값 하나만 가져오기 [2]
이창형
2007-08-02
2589
31524테이블 RENAME [2]
초보
2007-08-02
2330
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다