具有动态列的SSRS数据透视

时间:2018-07-07 10:51:17

标签: sql-server matrix reporting-services pivot ssrs-2008-r2

我的查询如下表...

df

下面是表格:

Input Table

我期望下面的输出如下。

Output Table

有人可以帮助我实现所需的输出吗?

1 个答案:

答案 0 :(得分:0)

创建一个空白报告,并创建一个数据源和一个数据集以连接到数据。将矩阵添加到报告中。将“名称”字段从“报表数据”窗口中的数据集拖到矩阵的第一个“行”字段中,然后使用“列”标题字段中的字段选择器选择“月”字段。在“月”标题下的数据单元中选择“点击次数”字段,这将自动产生总和。在“月份列组”的属性窗口中,将排序顺序更改为类似

的表达式
=CDate(Fields!Month.Value)

将“名称”字段的宽度更改为足够宽,以包含“名称”,“清除”,“联系人”和“查看”四列(我选择12厘米)。

  1. 现在,右键单击“名称”标题单元格,然后通过上下文菜单插入一个表。不用担心价格高昂,并在该表中添加其他列。
  2. 在“名称”数据单元格中执行相同的操作

现在设计应如下所示:

Two Tables inside Matrix

在“月”字段旁边的表中(我将其称为“标题表”),删除“数据”行(以及在询问时关联的组):

Delete Data Row in "Header Table"

然后在Sum(Clicks)字段旁边的表中(我将其称为“数据表”),依次删除标题行:

Delete Header Row in "Data Table"

这些步骤可以解决这些问题。

在“标题表”中,输入列名称并根据需要设置其格式。在“数据表”中,选择要显示的相应字段。在“数据表”的行组“ Details1”的属性中。按正确的顺序添加所有4个字段,以便进行分组和排序。

对于“数据表”中的第3个字段,请使用“属性”表将HideDuplicates属性设置为数据集的名称。

对于“总和(点击)”文本框,将TextAlign设置为“ Center”,将VerticalAlign设置为“ Middle”。

哦,然后为外部矩阵的“名称”组添加总计,按需要对齐所有内容。

Voilà:

Resulting Report

已添加

要合并“名称”,“清除”和“联系人”的单元格,请执行以下操作:

  • 在“数据表”的行组“ Details1”的属性中,删除“分组”下的“ 名称”,“ 清除”和“ Contact ”。对属性进行排序,因此只剩下 Viewed 。将群组重命名为已查看
  • 删除“数据表”的前三列(名称清除 Contact )。
  • 始终右键单击“数据表”的最上面的行组,依次添加 Contact 清除 Name 的父组。