It's a very old question!
SQL> select * from t99;
DEPTNO REASONNUM
------------ ---------- ----------
LEAN A
10
8
LEAN B
10
4
LEAN B
33
1
LEAN C
41
2
LEAN C
10
3
LEAN C
11
1
LEAN D
10
2
LEAN D
11
1
8 rows selected
SQL>
SQL> select DEPTNO,
2 max(decode(REASON, 10, NUM, 0)) "REASON 10",
3 max(decode(REASON, 11, NUM, 0)) "REASON 11",
4 max(decode(REASON, 33, NUM, 0)) "REASON 33",
5 max(decode(REASON, 41, NUM, 0)) "REASON 41"
6from t99
7group by DEPTNO;
DEPTNOREASON 10REASON 11REASON 33REASON 41
------------ ---------- ---------- ---------- ----------
LEAN A
8
0
0
0
LEAN B
4
0
1
0
LEAN C
3
1
0
2
LEAN D
2
1
0
0
SQL>
|