具有多个组的SSRS矩阵

时间:2017-05-18 14:15:32

标签: sql sql-server matrix reporting-services pivot

我有一个数据集可以生成结果。

 Parent |   NodeName    |   Value   |   ID  |
---------------------------------------------
AAA     |   Name        |   blah1   |   1   |   
AAA     |   val         |   1       |   1   |
BBB     |   tag         |   tag2    |   2   |
BBB     |   Name        |   blah2   |   2   |
BBB     |   val         |   2       |   2   |
AAA     |   tag         |   tag1    |   1   |
CCC     |   Name        |   blah3   |   3   |
CCC     |   tag         |   tag3    |   3   |
CCC     |   val         |   3       |   3   |       
AAA     |   Name        |   blah4   |   4   |
AAA     |   tag         |   tag4    |   4   |   
AAA     |   val         |   4       |   4   |

我想将此分组

AAA
-----------------------------------------
    |   Name    |   Val     |   Tag     |
-----------------------------------------
    |   blah1   |   1       |   tag1    |
    |   blah4   |   4       |   tag4    |

BBB
-----------------------------------------
    |   Name    |   Val     |   Tag     |
-----------------------------------------
    |   blah2   |   2       |   tag2    |


CCC
-----------------------------------------
    |   Name    |   Val     |   Tag     |
-----------------------------------------
    |   blah3   |   3       |   tag3    |

我从这个链接尝试了一些技巧,但仍然没有运气。谢谢。 http://agilebi.com/jjames/2010/09/10/how-to-pivot-data-in-ssrs/

我尝试了@ jimmy8ball在评论中建议的内容。设计表面看起来像 Design surface

最终结果如下 final result. But with gaps

目前我只有三组AAA,BBB和CCC。我创建了三个不同的数据集,其中包含过滤器,仅包含一个组,例如AAA。结果看起来像这样。

Filtered Data for each parent

我不确定这是否是最佳方式。欢迎任何建议。

另一个基于@ Jimmy8ball的更新。根据@ Jimmy8ball的回复,我无法让它继续工作。

我的数据集结果如下所示 enter image description here

我的设计界面看起来像这样。 enter image description here

根据@ jimmy8ball响应的结果如下所示,缺少第二组AAA值。有什么建议? enter image description here

2 个答案:

答案 0 :(得分:0)

更新上一个答案,按照下面的设置,我调整了矩阵,将NodeName显示为每个Parent的分割,就像之前一样,删除所有自动计数或总和

enter image description here

在这里使用行号和分区有助于维护分组级别,这里是我使用过的SQL

view.Fetch

答案 1 :(得分:0)

一种解决方案是按Parent分组,然后按Maxtix Rows分组,使用NodeName代表列(和值代表值)。它以您需要的方式对数据进行分组,但格式与您想要的格式不完全相同。

enter image description here

如果要为每个Parent重复列标题,一种方法是使用外部List或Tablix进行分组。

  • 在Matrix中,按行分配ID,为列分组NodeName
  • 还要创建一个List,它将Parent作为其行组。 (在组的实例之间没有分页符)
  • 将矩阵放入列表
  • 在Matrix上方的列表中为Parent值添加TextBox。

enter image description here