我在ASP.net的水晶报告中有两个字段,它从数据库中获取数据。因此视图如下所示:
[pid] [batch]
2108 1234
2108 5647
2108 7856
2108 3425
2109 1254
2109 1255
但我想要将数据分组并以水平方式显示:
[pid] [batch]
2108 1234, 5647, 7856, 3425
2109 1254, 1255
请你帮我解决问题。 我尝试使用" group by"我的查询中的关键字,但没有解决方案。 请帮帮我。
答案 0 :(得分:0)
SELECT DISTINCT pid,
(STUFF((SELECT ',' + CONVERT(varchar(10), batch) FROM tblTest E2 WHERE E1.pid = E2.pid ORDER BY pid
FOR XML PATH(''), TYPE, ROOT).value('root[1]','nvarchar(max)'),1,1,'')) as batch
FROM tblTest E1 ORDER BY pid
上面的sql查询将返回结果集作为expected.try,从sql查询中获取结果集,而不是从crystal crystal中获取结果集。