Create table #factura (
razonsoc varchar(100),
fecha datetime,
monto money )
insert #factura values('P1','2012-01-10 00:00:00', 1000)
insert #factura values('P1','2012-01-15 00:00:00', 500)
insert #factura values('P1','2012-02-10 00:00:00', 900)
insert #factura values('P1','2012-05-31 00:00:00', 1000)
insert #factura values('P1','2012-07-10 00:00:00', 100)
insert #factura values('P1','2012-12-10 00:00:00', 700)
insert #factura values('P2','2012-01-10 00:00:00', 2000)
insert #factura values('P2','2012-05-10 00:00:00', 4000)
insert #factura values('P3','2012-02-10 00:00:00', 500)
Select razonsoc, [1] Enero, [2] Febrero, [3] Marzo, [4] Abril,
[5] Mayo, [6] Junio, [7] Julio, [8] Agosto, [9] Septiembre, [10] Octubre,
[11] Noviembre, [12] Diciembre
From (Select razonsoc, month(fecha) mes, monto
From #factura) p
Pivot(
Sum(monto)
For mes in ([1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12])
)as pvt
order by pvt.razonsoc
Drop table #factura