I have a query where I\'m trying pivot row values into column names and currently I\'m using SUM(Case...) As \'ColumnName\' statements, like so:
-- Darshankar Madhusudan i can do dynamic columnheading table easly...
--thanks
declare @incr int = 1,
@col int,
@str varchar(max),
@tblcrt varchar(max),
@insrt varchar(max),
set @tblcrt = 'DECLARE @Results table ('
set @str = ''
set @insrt = ''
select @col = max(column_id) From tempdb.sys.all_columns where object_id = object_id('tempdb.dbo.#aaa')
while @incr <= @col
BEGIN
SELECT @STR = @STR +case when @incr = 1 then '''' else ',''' end +rtrim(ltrim(NAME))+'''' FROM TEMPDB.SYS.ALL_COLUMNS WHERE OBJECT_ID = OBJECT_ID('TEMPDB.DBO.#AAA') and column_id = @incr
set @tblcrt = @tblcrt + case when @incr = 1 then '' else ',' end + 'Fld'+CAST(@incr as varchar(3)) +' varchar(50)'
set @insrt = @insrt + case when @incr = 1 then '' else ',' end + 'Fld'+CAST(@incr as varchar(3))
SET @INCR = @INCR + 1
END
set @tblcrt = @tblcrt + ')'
set @insrt = 'insert into @Results('+@insrt+') values (' + @STR +')'
set @tblcrt = @tblcrt+ ';' + @insrt + 'select * from @Results '
exec(@tblcrt)