조인을 해서 같은 값은 한줄로 표시할 수 있나요? 0 2 2,170

by 볼우물 [2009.07.02 13:58:02]


테이블 A
CC DD 컬럼1
2009 05 3000
2009 06 4000

 

테이블 B
CC DD 컬럼2 컬럼3
2009 05 홍길동 아버지
2009 05 홍길동 어머니
2009 05 홍길동
2009 06 배칠수 아버지
2009 06 배칠수 어머니
2009 06 배칠수 누나

 

이런 두개의 테이블이 있을 때

SELECT A.CC, A.DD, A.컬럼1, B.컬럼2, B.컬럼3

      FROM A, B

  WHERE A.CC = B.CC

         AND A.DD = B.DD 

이런 쿼리를 날리면

결과리스트
A.CC A.DD A.컬럼1 B.컬럼2 B.컬럼3
2009 05 3000 홍길동 아버지
2009 05 3000 홍길동 어머니
2009 05 3000 홍길동
2009 06 4000 배칠수 아버지
2009 06 4000 배칠수 어머니
2009 06 4000 배칠수 누나

결과 리스트가 이렇게 출력되잖아요.

그런데 제가 원하는 리스트는요.

결과리스트
A.CC A.DD A.컬럼1 B.컬럼2 B.컬럼3
2009 05 3000 홍길동 아버지
      홍길동 어머니
      홍길동
2009 06 4000 배칠수 아버지
      배칠수 어머니
      배칠수 누나

 

이런 결과리스트를 구하고 싶은데요..

즉 웹에서 보여줄때  A테이블의 값을 보여주고

거기에 해당하는 세부 값 B테이블을 보여주고 싶거든요.

위처럼 중복되는 다음로우 값을 생략하거나 공백으로 처리할 수 있나요?

 

 

고수님들의 많은 조언 부탁드립니다.

by 손님인척 [2009.07.02 14:30:53]
음.. 저도 함수나 이런것들은 잘 모르겠어서, 알고있는 지식으로 풀었구요.
고수님들이 더 좋은 방법을 가이드 해주실거에요. 일단은..이렇게라도..^^
select decode(rank,1,cc,'') cc,
decode(rank,1,dd,'') dd,
decode(rank,1,컬럼1,'') 컬럼1,
컬럼2,
컬럼3
from
(
SELECT A.CC, A.DD, A.컬럼1, B.컬럼2, B.컬럼3,
rank() over (partition by A.CC, A.DD order by rownum) rank
FROM A, B
WHERE A.CC = B.CC
AND A.DD = B.DD
)

by 볼우물 [2009.07.02 15:04:16]
감사합니다. ^^ 한번 적용해보겠습니다.
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입