【发布时间】:2010-03-01 19:30:56
【问题描述】:
在 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
等等。我无法在 Oracle 中使用LISTAGG,如this tutorial 中所述,我也无法使用EXPLAIN PLAN 或告诉您我正在使用哪个版本的Oracle,因为我必须通过非常有限的界面访问数据库.我查看了报表生成器的函数,如Aggregate,但找不到将多个字符串值与聚合函数连接在一起的方法。如果我创建一个按人分组的表,我会为每个 StrID 获得单独的行。使用Join(Fields!StrID.Value, ", ") 会导致“#Error”出现在表格单元格中,我假设因为Fields!StrID.Value 实际上不是一个多值字段,它是每个人的单个值。
谁能告诉我一种通过 SQL 或 Report Builder 2.0/Visual Basic 在一行中按人显示相关 StrID 列表的方法?
编辑:如果有人能想到一个创造性的解决方案,我可以使用LAG function。原来我也可以将PARTITION BY 与LAG 函数结合使用。
【问题讨论】:
标签: oracle string reporting-services aggregate reportbuilder