how to display several column rows into one row in SQL Server Reporting
Hi, I am new to sql server reporting. I have a dataset, which returns data like listed below: name1 name2 name3 name4 t1 t2 t3 t4 t1 t2 t3 t5 a1 a2 a3 a4 the reporting should be grouped by (name1+name2+name3) for instance : result should like t1 t2 t3 t4,t5 a1 a2 a3 a4 anyone knows how should I achieve this using sql server reporting 2008. I can use expression to group name1+name2+name3 but no idea how to combine the field name4 into a comma seperated value. Please help. Thanks in advanced!
March 17th, 2011 7:06pm

You can get this done in your sql query. insert into @temp_tbl (name1,name2,name3, name4) select 't1' as name1, 't2' as name2,'t3' as name3,'t4' as name4 union all select 't1','t2','t3','t5' union all select 'a1','a2','a3','a4' select groups.name1, groups.name2, groups.name3, B.allName4 from ( select name1, name2, name3 from @temp_tbl group by name1, name2, name3 ) groups cross apply ( select replace( (select name4 as [data()] from @temp_tbl where name1 = groups.name1 and name2 = groups.name2 and name3 = groups.name3 for xml path('') ), ' ', ',') )B(allName4)
Free Windows Admin Tool Kit Click here and download it now
March 18th, 2011 12:07am

CREATE TABLE #TEMP ( name1 VARCHAR(10), name2 VARCHAR(10), name3 VARCHAR(10), name4 VARCHAR(10) ) INSERT INTO #TEMP VALUES ('t1', 't2', 't3', 't4') INSERT INTO #TEMP VALUES ('t1', 't2', 't3', 't5') INSERT INTO #TEMP VALUES ('a1', 'a2', 'a3', 'a4') ;WITH cte AS ( SELECT name1+' '+name2+' '+name3 AS name123, name4 FROM #TEMP ) SELECT name123, STUFF((SELECT ','+name4 FROM cte B WHERE A.name123 = B.name123 FOR XML PATH('') ),1,1,'') AS name4 FROM cte A GROUP BY name123 DROP TABLE #TEMP KG, MCTS
March 18th, 2011 8:21am

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics