Wednesday, 11 December 2013

Converting Columns into Rows in sqlserver

;with mycte
 as
 (
SELECT rn,cols,val
FROM   (SELECT  row_number() over(order by (select(1))) rn ,A,B,C,D,E,F,G,H,I,J
        FROM  #AsPerDateFinal) AS src1
UNPIVOT (val FOR cols
IN ( A,B,C,D,E,F,G,H,I,J)) AS unpvt
 )
 
SELECT [1] as NintyDays ,[2] as SixtyDays ,[3] as ThirtyDays,[4] as SevenDays,[5] as Today
FROM   (SELECT rn,cols,val
        FROM   mycte) AS src2 PIVOT
( Max(val) FOR rn IN ([1], [2], [3],[4],[5])) AS pvt










declare @sql1 varchar(max)
declare @sql2 varchar(max)
set @sql2=(SELECT STUFF ( ( SELECT DISTINCT  ',[' +CAST(statecd AS VARCHAR)+']' FROM M_States WHERE statecd<42 FOR XML PATH('')),1,1,'' ) )
set @sql1='SELECT '+@sql2+' FROM (SELECT STATENM,STATECD FROM M_STATES WHERE STATECD<42) AS K
PIVOT(MAX(STATENM) FOR STATECD IN ('+@sql2+')) AS P'
--SELECT @sql1
EXECUTE(@sql1)

No comments:

Post a Comment