代码之家  ›  专栏  ›  技术社区  ›  AaronSieb

如何在SSR中将数据集或组显示为逗号分隔的列表?

  •  3
  • AaronSieb  · 技术社区  · 16 年前

    在我的SQL数据库中,我有一对多的关系,如下所示:

    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端执行此操作是否有方法?

    3 回复  |  直到 9 年前
        1
  •  5
  •   Jerry    9 年前

    我找到了一个更简单、直接的方法来实现这一点——添加一个表达式,如下所示:

    =Join(LookUpSet(Fields!TeacherName.Value, 
        Fields!TeacherName.Value, 
        Fields!StudentName.Value, 
        "YourTeacherDataSet"), ",")
    
        2
  •  1
  •   gbn    16 年前

    在教师上添加分组,并使用.NET联接附加细节行

    给出了多值参数在Bol中的连接。所以理论上它可以用于结果数据集

    Join

    Join and multi-value parameters

        3
  •  0
  •   Community Alok Save    7 年前

    此StackOverflow答案提供了一种实现此目的的技术:

    String aggregation in SSRS 2005

    这种技术的缺点是它在代码模块中使用了共享变量,如果报表托管在网络上,这可能会导致并发问题。

    我还遇到了另一项工作:

    创建一个自定义函数,例如getstudentlist(teacherid为integer,connectionstring为string),用于返回基于指定教师的学生列表。

    然后可以编写此函数以打开与数据库的连接、运行查询、处理结果,然后返回它们。但这意味着打开连接并对每一行运行查询,对于这种格式来说,这似乎是一个很大的开销(更不用说需要传入连接字符串)。

    这主要基于 Experts' Exchange article .