如何在SSRS中将数据集或组显示为逗号分隔列表?
问题描述:
在我的SQL数据库,我有一个一对多的关系,这样的事情:如何在SSRS中将数据集或组显示为逗号分隔列表?
Teacher Student John Alex John Mike John Sean Bob Jack Gary George Gary Paul
我想显示一个表格,列出每个教师,与学生作为一个逗号分隔的列表,像这样:
Teacher Students John Alex, Mike, Sean Bob Jack Gary George, Paul
This question介绍如何做到这一点上的SQL Server结束,但有没有办法做到这一点对事物的SSRS的一面呢?
答
这StackOverflow的答案都代表一种技术达到这个目的:
String aggregation in SSRS 2005
这样做的缺点的技术是,它使用中的代码模块,这可能引起并发问题,如果报告在网络上承载的共享变量。
我也碰到过另一个解决方法:
创建自定义功能,如GetStudentList(TeacherId为整数,的ConnectionString作为字符串),其目的是返回基于指定的学生名单老师。
然后可以编写此函数以打开与数据库的连接,运行查询,处理结果,然后返回它们。但是,这意味着打开连接并为每一行运行查询,这似乎是这种格式化的大量开销(更不用说需要传入连接字符串)。
答
我发现一个更简单,直接的方法来做到这一点 - 添加表达式如下:
=Join(LookUpSet(Fields!TeacherName.Value,
Fields!TeacherName.Value,
Fields!StudentName.Value,
"YourTeacherDataSet"), ",")
这看起来很有希望,GBN。但是我很难弄清楚如何将特定组的字段值作为数组来获取。有任何想法吗? – AaronSieb 2008-10-16 14:39:06
作为一个具体的例子,我试过把这个表达式放在组页脚中:= Join(Fields!Student,“,”)。这编译,但导致#Error。 – AaronSieb 2008-10-16 14:49:22