1 2 3 4 5 6 7 8 9 10 11 | WITH t(master, year , first , second ) AS ( SELECT 100, 2007, 100, 50 FROM dual UNION ALL SELECT 100, 2008, 20, 30 FROM dual UNION ALL SELECT 100, 2009, 30, 50 FROM dual UNION ALL SELECT 200, 2007, 50, 30 FROM dual ) SELECT * FROM t PIVOT ( SUM ( first ) "first" , SUM ( second ) "second" FOR year IN (2007, 2008, 2009)) ; |
1 2 3 4 5 6 7 8 9 10 11 | SELECT master , SUM (DECODE( year , 2007, first )) "2007_first" , SUM (DECODE( year , 2007, second )) "2007_second" , SUM (DECODE( year , 2008, first )) "2008_first" , SUM (DECODE( year , 2008, second )) "2008_second" , SUM (DECODE( year , 2009, first )) "2009_first" , SUM (DECODE( year , 2009, second )) "2009_second" FROM t GROUP BY master ORDER BY master ; |