SSRS Pivot专栏

时间:2014-07-16 12:41:35

标签: reporting-services ssrs-2008

我试图以捕获重复数据,重复数据等的方式处理数据的转换,并将它们放入正确的列中。我想要计算一个客户在我的数据集中出现多次的次数。客户出现超过2倍,3倍等的次数。并将这些计数放入正确的列中。

我尝试了很多Count(iif(value,1,Nothing))配置,但无法使用。这是我最近的努力没有达到我想要的结果:

=Count(IIF(CountDistinct(Fields!Deposit_AcctNo.Value) > 1, 
Count(Fields!Deposit_AcctNo.Value), Nothing), "Accounts")

没有工作

= Count(IIF(Fields!Deposit_AcctNo.Value = 2,1,Nothing))

没有工作

=CountDistinct(IIF(Fields!Deposit_AcctNo.Value = 2, 1,Nothing))

没有工作

=Count(IIF(Fields!Deposit_AcctNo.Value = 2, 
Count(Fields!Deposit_AcctNo.Value),Nothing))

没有工作

=Count(IIF(Fields!Deposit_AcctNo.Value = 2, 
Count(Fields!Deposit_AcctNo.Value),Nothing), "DataSet1")

没有工作

=count(IIF(CountDistinct(Fields!Deposit_AcctNo.Value) = 2, 1, Nothing))

这是我想要的结果的照片:

enter image description here

1 个答案:

答案 0 :(得分:2)

如果可能的话,我建议在SQL中使用它,因为我相信与使用报表服务中的表达式相比,汇总计数更有效。

那就是说,我将如何汇总报告服务中的计数:

在列上创建一个包含单个行组和组的表,其中包含重复项(示例中的客户帐户,下图中的FirstName):

Example table with one row group

使用如下表达式计算项目在列表中的显示次数(Count的第二个参数是将聚合函数范围限定为组的组名称。)

=IIF(Count(Fields!FirstName.Value, "FirstNameGroup") = 2, 1, 0)

这应该为每个列表项提供一个1或0的表,表明该项属于哪个集合:

Sample output using above expression

最后将行组的可见性更改为隐藏,并添加一个包含原始表达式的sum函数的总计行:

=Sum(IIF(Count(Fields!FirstName.Value, "FirstNameGroup") = 2, 1, 0))

哪个应该为您提供您正在寻找的输出:

Sample output using totals and after hiding groups