Amigo podria ser algo asi...
Código SQL
[-]SELECT Categoria,
SUM( Case extract(month from fecha) when 1 then cargo else 0 end) as enero,
SUM( Case extract(month from fecha) when 2 then cargo else 0 end) as febrero,
SUM( Case extract(month from fecha) when 3 then cargo else 0 end) as marzo,
SUM( Case extract(month from fecha) when 4 then cargo else 0 end) as abril,
SUM( Case extract(month from fecha) when 5 then cargo else 0 end) as mayo,
SUM( Case extract(month from fecha) when 6 then cargo else 0 end) as junio,
SUM( Case extract(month from fecha) when 7 then cargo else 0 end) as julio,
SUM( Case extract(month from fecha) when 8 then cargo else 0 end) as agosto,
SUM( Case extract(month from fecha) when 9 then cargo else 0 end) as septiembre,
SUM( Case extract(month from fecha) when 10 then cargo else 0 end) as octubre,
SUM( Case extract(month from fecha) when 11 then cargo else 0 end) as noviembre,
SUM( Case extract(month from fecha) when 12 then cargo else 0 end) as diciembre
FROM registro
WHERE EXTRACT(year from fecha)=2010
GROUP BY categoria
Saludos