select numero
,codigo
,nvl(sum(decode(to_char(vencimento, 'mm'), '01' ,valor )),0) vencto1
,nvl(sum(decode(to_char(vencimento, 'mm'), '02' ,valor )),0) vencto2
,nvl(sum(decode(to_char(vencimento, 'mm'), '03' ,valor )),0) vencto3
,nvl(sum(decode(to_char(vencimento, 'mm'), '04' ,valor )),0) vencto4
,nvl(sum(decode(to_char(vencimento, 'mm'), '05' ,valor )),0) vencto5
,nvl(sum(decode(to_char(vencimento, 'mm'), '06' ,valor )),0) vencto6
,nvl(sum(decode(to_char(vencimento, 'mm'), '07' ,valor )),0) vencto7
,nvl(sum(decode(to_char(vencimento, 'mm'), '08' ,valor )),0) vencto8
,nvl(sum(decode(to_char(vencimento, 'mm'), '09' ,valor )),0) vencto9
,nvl(sum(decode(to_char(vencimento, 'mm'), '10' ,valor )),0) vencto10
,nvl(sum(decode(to_char(vencimento, 'mm'), '11' ,valor )),0) vencto11
,nvl(sum(decode(to_char(vencimento, 'mm'), '12' ,valor )),0) vencto12
,nvl(sum(decode(to_char(vencimento, 'mm'), '13' ,valor )),0) vencto13
,nvl(sum(decode(to_char(vencimento, 'mm'), '14' ,valor )),0) vencto14
,nvl(sum(decode(to_char(vencimento, 'mm'), '15' ,valor )),0) vencto15
,nvl(sum(decode(to_char(vencimento, 'mm'), '16' ,valor )),0) vencto16
,nvl(sum(decode(to_char(vencimento, 'mm'), '17' ,valor )),0) vencto17
,nvl(sum(decode(to_char(vencimento, 'mm'), '18' ,valor )),0) vencto18
,nvl(sum(decode(to_char(vencimento, 'mm'), '19' ,valor )),0) vencto19
,nvl(sum(decode(to_char(vencimento, 'mm'), '20' ,valor )),0) vencto20
,nvl(sum(decode(to_char(vencimento, 'mm'), '21' ,valor )),0) vencto21
,nvl(sum(decode(to_char(vencimento, 'mm'), '22' ,valor )),0) vencto22
,nvl(sum(decode(to_char(vencimento, 'mm'), '23' ,valor )),0) vencto23
,nvl(sum(decode(to_char(vencimento, 'mm'), '24' ,valor )),0) vencto24
,nvl(sum(decode(to_char(vencimento, 'mm'), '25' ,valor )),0) vencto25
,nvl(sum(decode(to_char(vencimento, 'mm'), '26' ,valor )),0) vencto26
,nvl(sum(decode(to_char(vencimento, 'mm'), '27' ,valor )),0) vencto27
,nvl(sum(decode(to_char(vencimento, 'mm'), '28' ,valor )),0) vencto28
,nvl(sum(decode(to_char(vencimento, 'mm'), '29' ,valor )),0) vencto29
,nvl(sum(decode(to_char(vencimento, 'mm'), '30' ,valor )),0) vencto30
,nvl(sum(decode(to_char(vencimento, 'mm'), '31' ,valor )),0) vencto31
from tab1
group by numero,codigo
order by numero
esta saindo assim :
numero codigo valor vencimento
------ ----------- ------
0015 00000000001 4,54 28/9/2009
0015 00000000001 4,54 28/10/2009
0015 00000000001 4,54 28/11/2009
0015 00000000001 4,54 28/12/2009
0015 00000000001 4,54 28/1/2010
eu preciso assim :
numero codigo valor vencimento vencimento vencimento vencimento vencimento
28/09 28/10 28/11 28/12 28/01
------ ----------- ------ ---------- ---------- ---------- ---------- ----------
0015 00000000001 4,54 28/9/2009 28/10/2009 28/11/2009 28/12/2009 28/1/2010
alguém sabe como fazer isso, estou tentando fazer um CROSSTAB mas não esta dando certo
Obrigado