Wednesday, 16 January 2013

Oracle PIVOT/UNPIVOT for crosstab reporting..

Oracle 11g PIVOT/UNPIVOT sql function are very useful to generate data in crosstab format

SELECT * FROM
(SELECT deptno,job,sal FROM emp) e
PIVOT(SUM(sal)
FOR job IN ('CLERK' CLERK,'SALESMAN' SALESMAN,
'MANAGER' MANAGER)
ORDER BY deptno;

DEPTNO      CLERK       SALESMAN MANAGER
---------- ---------- ---------- ----------
10          1300                    2450
20          1900                    2975
30          950         5600        2850