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
운영게시판
최근게시물
MS-SQL Q&A 4382 게시물 읽기
No. 4382
트리구조로 쿼리를 뽑고 싶습니다. 도움 부탁드립니다.
작성자
이상용(frokcode80)
작성일
2008-08-06 11:02
조회수
5,658

task_id      parent_task_id task_name

1 0 설계

2 0 분석

3 0 개발

4 1 1.1 업무 범위 확정

5 1 1.2  업무 단위 정의

6 2 2.1 검토 승인 workflow 분석

7 2 2.2 검토 결재 workflow 확정

8 3 3.1 자~알 개발

9 3 3.2 자~~알 테스트


이렇게 생긴 테이블이 있습니다.


보시다시피 상위를 가지고 있습니다.


원하는 형식은

1 0 설계

4 1 1.1 업무 범위 확정

5 1 1.2  업무 단위 정의

2 0 분석

6 2 2.1 검토 승인 workflow 분석

7 2 2.2 검토 결재 workflow 확정

3 0 개발

8 3 3.1 자~알 개발

9 3 3.2 자~~알 테스트


이런식으로 나와야 되는데.. 제가 짠 쿼리로는 도저히 ㅡㅜ 안나오는군요;;


도움 부탁드립니다.


사용하는 MSSQL은 2005 버전입니다.


with temp(task_id, parent_task_id, task_name, Level) as ( 

   select task_id, parent_task_id, task_name, 0 as Level 

     from project_task 

    where parent_task_id = '0'

   union all 

   select A.task_id, A.parent_task_id, A.task_name, B.Level+1 as Level 

     from project_task A Inner Join temp B 

     on A.parent_task_id = B.task_id

)

select * from temp A

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

select * from project_task order by coalesce(nullif(parent_task_id,0),task_id),task_id


이렇게 하면 되네요^^

이상용(frokcode80)님이 2008-08-06 11:24에 작성한 댓글입니다.

계층 구조 이외의  depth (오라클에서의 level)을 구할 수 있는 방법은 없을까요??

이상용(frokcode80)님이 2008-08-06 12:26에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
4385sql agent 가 잘 작동하다 멈추곤합니다. 도와주세요~ [1]
이성민
2008-08-06
4777
4384MS-SQL 필드에 20080806 134523 <- 날짜 시간 찍어주기?? [2]
초보
2008-08-06
5325
4383ADD_MONTHS 에 대한 질문 드립니다. [1]
용짱
2008-08-06
7310
4382트리구조로 쿼리를 뽑고 싶습니다. 도움 부탁드립니다. [2]
이상용
2008-08-06
5658
4381MSSQL 2005 로그인 정보
김범재
2008-08-06
4945
4380ADO 로 프로시저 호출시
...
2008-08-05
4370
4379매분다마 평균 데이터 구하기 [2]
손님
2008-08-05
5033
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다