在 Report Builder 2.0 中,我试图创建一个包含如下数据的表:
Person | StrID's
-------------------
Jim | a, b, c, d
Mary | h, k
Sue | l, m, p, z
问题是我的 Oracle SQL 查询以以下格式返回数据:
Person | StrID
--------------
Jim | a
Jim | b
Jim | c
Jim | d
Mary | h
等等。我无权使用本教程LISTAGG
中描述的 Oracle 访问权限,也无法使用或告诉您我正在使用哪个版本的 Oracle,因为我必须通过非常有限的接口访问数据库。我研究了报表生成器的函数,例如但找不到将多个字符串值与聚合函数连接在一起的方法。如果我创建一个按人分组的表,我会为每个 StrID 获得单独的行。使用导致“#Error”出现在表格单元格中,我假设因为它实际上不是一个多值字段,它是每个人的单个值。EXPLAIN PLAN
Aggregate
Join(Fields!StrID.Value, ", ")
Fields!StrID.Value
谁能告诉我一种通过 SQL 或 Report Builder 2.0/Visual Basic 在一行中按人显示相关 StrID 列表的方法?
编辑:如果有人能想到一个创造性的解决方案, 我可以使用LAG 功能。原来我也可以PARTITION BY
与该LAG
功能一起使用。