My Input is :
date Costed Celldata
8-Apr-13 1 15
15-Apr-13 1 24
22-Apr-13 1 36
And I need output as :
date 8-Apr-13 15-Apr-13 22-Apr-13
Costed 1 1 1
Celldata 15 24 36
Query I have applied is :
CREATE TABLE testing1(Spot_dt date, Costed INT, celldata INT)
INSERT INTO testing1 (Spot_dt,Costed,celldata) values ('2012-04-08',1,15);
INSERT INTO testing1 (Spot_dt,Costed,celldata) values ('2012-04-15',1,24);
INSERT INTO testing1 (Spot_dt,Costed,celldata) values ('2012-04-22',1,36);
DECLARE @cols AS NVARCHAR(MAX),
@query AS NVARCHAR(MAX)
select @cols = STUFF((SELECT distinct ',' + QUOTENAME(Spot_dt)
from testing1
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')
set @query = 'SELECT Costed,' + @cols + '
from
(
select Spot_dt, Costed, CellData
from testing1
) x
pivot
(
min(CellData)
for Spot_dt in (' + @cols + ')
) p '
execute(@query)
And Out put I am recieving is:
8-Apr-13 15-Apr-13 22-Apr-13
1 1 1
15 24 36
So Basically I need an extra column in beginning in which i can have column headers coming as row values.