쿼리 문의드립니다. 0 2 1,772

by 김재훈 [SQL Query] [2013.03.05 14:37:38]


문의드립니다.
A테이블 과 B테이블이 있는데..
A에는 상품정보가 있고 B에는 그상품의 자재정보가 있습니다.

A에는 주문번호/결제금액/결제수단.... 등이있고...
B에는 주문번호/자재번호/자재금액... 등이 있습니다.

이둘을 조인하면
SELECT A.주문번호,A.결제수단,A.결제금액,B.자재번호,B.자재금액
FROM A LEFT JOIN B A.주문번호 = B.주문번호
WHERE A.주문번호 = '1234'
-----------------------------------------------------------------------
 주문번호(1234) | 결제수단 | 결제금액 | 자재번호 | 자재금액
 주문번호(1234) | 결제수단 | 결제금액 | 자재번호 | 자재금액

이런식으로 자재종류별로 ROW가 나옵니다.
이때. 결제금액이 10,000 원이라고 하면
모든 ROW에 10,000원 이라고 찍히는데..

같은 주문번호일경우에는 결제금액이 한번만 나오게 할수 있는 방법이 있을까요?
by 아발란체 [2013.03.05 15:23:16]

샘플 데이타를 올려주시고 결과 예시를 그려주시면
아마 10분 안에 도움 주시는 분들이 답을 주실 수 있으리라 생각합니다 ~ :)


by 마농 [2013.03.05 16:00:56]
SELECT DECODE(rn, 1, 주문번호) 주문번호
     , DECODE(rn, 1, 결제수단) 결제수단
     , DECODE(rn, 1, 결제금액) 결제금액
     , 자재번호
     , 자재금액
  FROM (SELECT a.주문번호, a.결제수단, a.결제금액
             , b.자재번호, b.자재금액
             , ROW_NUMBER() OVER(PARTITION BY a.주문번호 ORDER BY b.자재번호) rn
          FROM a
          LEFT JOIN b
            ON a.주문번호 = b.주문번호
         WHERE a.주문번호 = '1234'
        )
;
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입