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 40864 게시물 읽기
No. 40864
간단한 쿼리 질문 ^^ 계층 구조 관련
작성자
kos
작성일
2015-07-17 10:09
조회수
7,670

쿼리 질문입니다. 현재 아래와 같이 데이터 내용이 있으면 ....

 

 

SELECT '00000', '-1'

FROM DUAL

UNION ALL

SELECT '11111', '00000'

FROM DUAL

UNION ALL

SELECT '22222', '00000'

FROM DUAL

UNION ALL

SELECT '33333', '22222'

FROM DUAL

 

 

 

이렇게 아래와 같이 나옵니다.... 부서와 상위 부서가 연결된 형태 입니다.

 

부서 상위부서

00000 -1

11111 00000

22222 00000

33333 22222

 

그런데 아래와 같이 데이터가 나오도록 쿼리를 구성하려면 추가로 어떻게 해야 할지 궁금합니다.

 

추가되는 "순번","상위순번"도(순번은 내림차순으로 계속 생성) 기존에 있던 "부서","상위부서"와 동일한 형태로 맵핑되어 보여지도록 구성하고 싶은데요

 

어떻게 해야 할지 잘 모르겠네요...

 

 

순번 상위순번 부서 상위부서

1 -1 00000 -1

2 1 11111 00000

3 1 22222 00000

4 2 33333 22222

 

 

 

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

 제가 문제를 잘 못 이해한건가요?

 

부서 33333 의 상위부서가 22222 이면 22222의 순번이 3이니까...

33333의 상위순번이 3 아닌가요?

 

제가 잘못 이해한 것이면 아래의 SQL은 틀린 것이고 아니면 참고하시면 되겠습니다.

with base as
(
SELECT '00000' 부서, '-1' 상위부서
FROM DUAL
UNION ALL
SELECT '11111', '00000'
FROM DUAL
UNION ALL
SELECT '22222', '00000'
FROM DUAL
UNION ALL
SELECT '33333', '22222'
FROM DUAL
)
, base_hir as
(
    select
        a.부서
        , a.상위부서
        , rownum 순번
    from    base a
    connect by
        prior a.부서 = a.상위부서
    start with a.상위부서 = '-1'
    order siblings by
        a.부서
)
, base_data(부서, 상위부서, 순번, 상위순번) as
(
    select
        a.부서
        , a.상위부서
        , a.순번
        ,-1 상위순번
    from    base_hir a
    where   a.상위부서 = '-1'
    union all
    select
        a.부서
        , a.상위부서
        , a.순번
        , b.순번 상위순번
    from    base_hir a
            , base_data b
    where   a.상위부서 = b.부서
)
select
    *
from    base_data a
order by
    a.순번
김흥수(protokhs)님이 2015-07-20 10:15에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
40868[급해요]중복 일수 제외하고 기간 구하기 [4]
초보자
2015-07-22
9203
40867마농님.... 도와 주세요... [4]
초초보
2015-07-20
7491
40866이거 모르겟네요;; [1]
이기쁨
2015-07-18
7240
40864간단한 쿼리 질문 ^^ 계층 구조 관련 [1]
kos
2015-07-17
7670
40863ORA-12514: TNS:리스너가 현재 접속 기술자에 요청된 서비스를 알지 못함
오라클멀라여
2015-07-16
8230
40862DBA_HIST_SQLSTAT
나이지리아
2015-07-16
8239
40861오라클 유지보수 계약이 체결된 상태라면 오라클 클라이언트 설치지원은 누구한테 하는게 맞을까요?
김경진
2015-07-16
7168
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다