Reporting Services - 水平而不是垂直显示一列的多个值

Reporting Services - show multiple values for a column horizontally rather than vertically

我有一份报告,其中行数据可以具有相同的数据,除了最后一列中的数据。只需将数据添加到 table 结果如下:

Column 1 Column 2 Column 3 Column 4
1 abc 1111 234345
1 def 2222 435656
1 def 2222 423233
1 xyz 1234 145423

我想像这样显示数据,如果一行的第 4 列值有多个值,则会水平添加额外的第 4 列:

Column 1 Column 2 Column 3 Column 4 Column 4
1 abc 1111 234345
1 def 2222 435656 423233
1 xyz 1234 145423

我已经尝试将父组添加到第 4 列,这接近我想要的,但是每一行都为第 4 列值指定了自己的列,所以它最终是这样的:

Column 1 Column 2 Column 3 Column 4 Column 4 Column 4 Column 4
1 abc 1111 234345
1 def 2222 435656 423233
1 xyz 1234 145423

等...

有没有办法实现我需要的布局?

您可以通过对数据集查询进行少量更改来执行此操作。

我在这里重新创建了您的示例数据 table 作为一个名为 `@t' 的 table 变量。然后我查询 table 并添加一个列,它为每个 Column1-3 组

中的每个 'Column4' 值提供了一个唯一索引
DECLARE @t TABLE (Column1 int,  Column2 varchar(10), Column3 int, Column4 int)
INSERT INTO @t VALUES
(1, 'abc', 1111, 234345) ,
(1, 'def', 2222, 435656) ,
(1, 'def', 2222, 423233) ,
(1, 'xyz', 1234, 145423) 

SELECT 
          *
        , ROW_NUMBER() OVER(PARTITION BY Column1, Column2, Column3 ORDER BY Column4) as Col4Index
    FROM @t

现在在您的报表中,添加一个具有一个行组的矩阵。这将在 Column1Column2Column3

上分组

现在添加一个按 Col4Index

分组的列组

将前 3 列添加到矩阵中,确保它们都在单个行组中(只需先在组内添加其他列,然后 select 为每个列添加正确的字段。

Column4 字段放入 [Data] 占位符中,最后将此列的 header 设置为这样的表达式(可选)

="Column4_" & Fields!Col4Index.Value

报表设计如下所示

最终输出如下所示