계층형 쿼리 질문 계속 드립니다 0 6 1,422

by 헨씀히포 [SQL Query] [2012.12.12 14:03:59]


테이블 명 : board
no memo pno orderNo   YN
1 aaa 1 1   N
2 aaaa 1 2 Y
3 aaaaaa 1 3 Y
4 aaaa-1 2 3  Y
5 bbb 5 1   Y
6 bbbbb 5 2   Y
7 aaaa-1-1 4 4   Y


표시하고싶은 리스트
===============================
1 aaa   
2 -> aaaa
4 -->aaaa-1
7 ---->aaa-1-1
3 aaaaaa
5 bbb
6 ->bbbb

YN(표시여부)에서 Y로 된 것만 표시하고 N으로 된건 표시를 안해야 됩니다

단 부모글이  N이면 자식이 Y로 되어 있어도 표시가 안되어야 됩니다

어떻게 해야하나요?
부탁드리겟습니다
by 아발란체 [2012.12.12 14:24:41]

위배되는 내용이 있네용~ @.@)ㆀ

출력 내용이 다음과 같은데
1 aaa
2 -> aaaa
4 -->aaaa-1
7 ---->aaa-1-1
3 aaaaaa
5 bbb
6 ->bbbb

"부모글이 N이면 자식이 Y로 되어 있어도 표시가 안되어야 됩니다" 라는 단서를 보면
출력 내용은 2건만 나와야 하는 것이 아닌가요?
5 bbb
6 ->bbbb

a경우 부모가 N이기 때문에 자식이 다 출력 되면 안되는거 아닌가용?


by 마농 [2012.12.12 14:33:52]
SELECT *
  FROM t
 START WITH no = pno AND yn = 'Y'
 CONNECT BY NOCYCLE PRIOR no = pno AND yn = 'Y'
 ORDER SIBLINGS BY orderno
;

by 아발란체 [2012.12.12 14:35:08]
--출력 내용과 동일하게
SELECT
  *
FROM
  BOARD
START WITH
  DECODE(no, pno, 0, pno) = 0
CONNECT BY 
  PRIOR no = DECODE(no, pno, 0, pno)

by 아발란체 [2012.12.12 14:48:54]
 --출력 내용과 동일하게 && 상위 값 'Y'인 것만 
SELECT * FROM (
  SELECT * FROM BOARD WHERE yn = 'Y'
)
START WITH DECODE(no, pno, 0, pno) = '0' CONNECT BY DECODE(no, pno, 0, pno) = PRIOR no

by 헨씀히포 [2012.12.12 16:21:01]

역시 두분은 나의 멘토십니다
쿼리가 이렇게 다른데 똑같은 결과가 잘 나오네요
감사합니다

님들은 좀 짱인듯!!

by 헨씀히포 [2012.12.12 16:21:53]

답변채택을 두개는 못하네요
이런!!! 죄송하네요
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입