如何在SSRS Tablix中计算百分比行?

时间:2011-10-06 22:11:03

标签: reporting-services matrix count

我正在使用SSRS 2008并尝试在我的Tablix中计算以下百分比:

sum(Fields!Last14Days_Ct.Value) / countdistinct(Fields!Client.Value)

所以Last14Days_Ct可以是= 1或0.我想总结所有这些整数值。客户端字段是VARCHAR,并且可以有多行/ Client。所以我想要做的是计算过去14天内客户的百分比。换句话说,每个客户端都有一个字段“Last14Days_Ct”= 1或0.所以我只想计算过去14天内发生的客户百分比。这是我现在尝试的SSRS公式:

=iif(countdistinct(Fields!Client.Value)=0,0,sum(Fields!Last14Days_Ct.Value)
/iif(countdistinct(Fields!Client.Value)=0,1,countdistinct(Fields!Client.Value)))

我将这一行分组到Fields!Last14Days_Ct.Value。

但问题是,现在当我在ReportViewer中查看它时,它显示了2行:当Last14Days_Ct = 1和0.我只想要显示it = 1的行。但是如果我在= 1上对该组应用过滤器,它总是显示100%。我怎样才能正确计算出这个值呢?

1 个答案:

答案 0 :(得分:0)

当您关闭过滤器时,计算是否正确显示?如果是,则打开Last14Days_Ct的组属性,转到“可见性”,对于“最初运行报告时”,选择“基于表达式显示或隐藏”。使用表达式:

=Fields!Last14Days_Ct.Value = 0

这样,您只能查看1个值,但所有值仍在报表的范围内,因此计算中的数学运算仍然有效。