SSRS行合并

时间:2013-09-27 14:32:42

标签: reporting-services sql-server-2008-r2

我正在为Server 2008 R2运行SSRS并在Report Builder 3.0中创建报告

我有一份名为“缺失周”的报告,这些报告向我展示了我们错过公司财务报表的一年中的数周。现在,报告显示了报告单独行中所有缺失的周数,如下所示:

Group  Cmp_code  town      Owner    Year  Week
001    004       townname  mr ozzy  2012  50
                                          52
                                    2013  25
                                          26
       005       townname  mr bark  2013  32
                                          33
002    235       townname  mr woof  2013  17
ETC..

是否有可能让所有周都显示在该组和cmp_code的同一行?

Group  Cmp_code  town      Owner    Year  Week
001    004       townname  mr ozzy  2012  50, 52
                                    2013  25, 26, etc...
       005       townname  mr bark  2013  32, 33, etc...
002    235       townname  mr woof  2013  17

理想情况下,我想在SSRS中实现这一点,而不是改变我在sql server上所做的事情。

2 个答案:

答案 0 :(得分:2)

您可以使用LookupSet功能来帮助解决此问题。

这是我的测试数据集:

enter image description here

我在数据集中添加了一个名为CmpYear的计算字段,其表达式为:

=Fields!Cmp_code.Value & CStr(Fields!Year.Value)

我们稍后会使用它。

现在,制作报告表:

enter image description here

您可以看到基于GroupCmp_codeYear的行组。我假设townOwner基于Cmp_code

最重要的部分是Week的表达式:

=Join(LookupSet(Fields!CmpYear.Value, Fields!CmpYear.Value, Fields!Week.Value, "DataSet1")
  , ",")

由于我们对特定公司/年组合的所有周数感兴趣,因此我们使用基于这些的计算字段作为查找键 - 使用此LookupSet返回特定公司中所有周的数组/ year group,然后我们使用Join将数组转换为分隔列表:

enter image description here

对我来说很好看。当然,您可能需要稍微更改您的基础数据,但希望这会为您提供一些有用的想法。

答案 1 :(得分:0)

在本周创建一个列组。

enter image description here