초보 쿼리 질문입니다 ㅠㅠ 0 2 2,233

by 팔오 [2013.04.30 17:14:54]



X 라는 테이블에 A, B, C, D 라는 컬럼이 있습니다.
A는 아이템 B는 수량 C는 생성 시간 D는 날짜 입니다.
날짜는 13-04-29, 13-04-30 두 날짜가 들어가 있는데 04-29일자는 아이템이 2개, 04-30일자는 아이템이 4개 입니다.
이걸 다시 select해서
04-29일자 아이템, 수량, 04-30일자 아이템 수량 이렇게 결과를 나타내고 싶습니다.

04-29A 04-29B 04-30A 04-30B
  ㄱ       1   A  2
  ㄴ  3      B  1
 null     null    C   3
 null null    D      2

이런식으로 나타내고 싶은데 어떻게 하면 될까요?ㅠㅠ

by 마농 [2013.05.02 09:20:56]
SELECT MIN(DECODE(d, '20130429', a)) "04-29A"
     , MIN(DECODE(d, '20130429', b)) "04-29B"
     , MIN(DECODE(d, '20130430', a)) "04-30A"
     , MIN(DECODE(d, '20130430', b)) "04-30B"
  FROM (SELECT a, b, d
             , ROW_NUMBER() OVER(PARTITION BY d ORDER BY c) rn
          FROM x
         WHERE d IN ('20130429', '20130430')
        )
 GROUP BY rn
 ORDER BY rn
;

by 팔오 [2013.05.02 11:24:18]
감사합니다~ ^^
저기서 min을 사용해준 것은 group by 떄문에 사용한 것인가요??
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입