날짜 | 제품코드 | 판매수량 | 판매가 |
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까지 최대로 잡아놓은 상태에서
날짜별로 데이터를 출력하고 싶습니다.
감사합니다.
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 ;