5 de octubre de 2011

Trasponer una tabla

If object_id('tmpTabla1') is not null drop table tmpTabla1
Create table tmpTabla1 (Numero int,Tipo varchar(3),Importe float)
   
Insert into tmpTabla1 values (1990,'CAP',100)
Insert into tmpTabla1 values (1990,'INT',20)
Insert into tmpTabla1 values (1990,'IVA',1)
Insert into tmpTabla1 values (1995,'CAP',300)
Insert into tmpTabla1 values (1995,'INT',200)
Insert into tmpTabla1 values (1995,'IVA',100)
Insert into tmpTabla1 values (2000,'CAP',100)
Insert into tmpTabla1 values (2000,'INT',20)
Insert into tmpTabla1 values (2000,'IVA',1)
Insert into tmpTabla1 values (2005,'CAP',300)
Insert into tmpTabla1 values (2005,'INT',200)
Insert into tmpTabla1 values (2005,'IVA',100)

--Truncate table tmpTabla1
Select * from tmpTabla1

SELECT Numero,
       Cap= ISNULL((SELECT Importe FROM tmpTabla1 WHERE Tipo = 'CAP' and Numero=t.Numero),0),
       [Int]= ISNULL((SELECT Importe FROM tmpTabla1 WHERE Tipo = 'INT' and Numero=t.Numero),0),
       Iva= ISNULL((SELECT Importe FROM tmpTabla1 WHERE Tipo = 'IVA' and Numero=t.Numero),0)
FROM tmpTabla1 t
GROUP BY Numero

No hay comentarios:

Publicar un comentario