날짜 | 제품코드 | 판매수량 | 판매가 |
20141001 | AA | 1 | 10 |
20141001 | BB | 2 | 20 |
20141002 | AA | 2 | 25 |
20141002 | BB | 4 | 40 |
위에서 처럼 가로 데이터를 아래 처럼 세로로 나오게 하려구요..ㅠ
날짜 | 제품1 | 제품2 | 제품3 | 제품4 | 제품5 |
20141001 | AA/1/10 | BB/2/20 | |||
20141002 | AA/2/25 | BB/4/40 |
*******************************************************************************************
날짜 | 제품코드 | 판매수량 | 판매가 |
20141001 | FF | 1 | 10 |
20141001 | GG | 2 | 20 |
20141001 | HH | 2 | 25 |
20141002 | FF | 4 | 40 |
20141002 | GG | 6 | 60 |
20141002 | HH | 5 | 50 |
위에서 처럼 가로 데이터를 아래 처럼 세로로 나오게 하려구요..ㅠ
날짜 | 제품1 | 제품2 | 제품3 | 제품4 | 제품5 |
20141001 | FF/1/10 | GG/2/20 | HH/5/50 | ||
20141002 | FF/2/25 | GG/4/40 | HH/5/50 |
위에 처럼 날짜 범위안에 제폼 코드별/수량/판매가를 출력하는 문제입니다.
날짜범위안에 제품코드는 동일(갯수)하구요.. 제품코드는 종류가 다양합니다.
결과에서 처럼 제품1~5까지 최대로 잡아놓은 상태에서
날짜별로 데이터를 출력하고 싶습니다.
감사합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | WITH t AS ( SELECT '20141001' dt, 'FF' cd, 1 cnt, 10 amt FROM dual UNION ALL SELECT '20141001' , 'GG' , 2, 20 FROM dual UNION ALL SELECT '20141001' , 'HH' , 2, 25 FROM dual UNION ALL SELECT '20141002' , 'FF' , 4, 40 FROM dual UNION ALL SELECT '20141002' , 'GG' , 6, 60 FROM dual UNION ALL SELECT '20141002' , 'HH' , 5, 50 FROM dual ) SELECT dt , MIN (DECODE(rn, 1, cd)) AS cd1 , MIN (DECODE(rn, 2, cd)) AS cd2 , MIN (DECODE(rn, 3, cd)) AS cd3 , MIN (DECODE(rn, 4, cd)) AS cd4 , MIN (DECODE(rn, 5, cd)) AS cd5 FROM ( SELECT dt , cd|| '/' ||cnt|| '/' ||amt cd , ROW_NUMBER() OVER(PARTITION BY dt ORDER BY cd) rn FROM t ) GROUP BY dt ORDER BY dt ; |