如果值小于阈值,则计算 SSRS 总计数

SSRS Total Count calculation if value is less than threshold

我有一个非常独特的问题,我已经阅读了无数关于它的主题,但没有找到正确的答案。 请帮助我。

  1. 我有一个矩阵,我在其中计算所有满意、非常满意、既不满意也不不满意、非常不满意或不满意的数量。 即使计数值小于 5,我也会使用下面的代码来隐藏 5 的计数。

    =(开关(计数(字段!Q27_A_1.Value)<5, "*", 计数(字段!Q27_A_1.Value)>5 , 计数(字段!Q27_A_1.Value)))

我需要将这个单元格的总数计算到行中的另一个单元格中并显示它们的值

But if it contains any "*" values 
then total will be "*" 
else display = Count(Fields!Q27_A_1.Value).

我已经编写了这些自定义代码行,但没有用。 : 出现错误:输入字符串的格式不正确

Public Function SafeConvert(ByVal num As String) As String

Dim s as String
IF IsNumeric(num) <5 
Then
Return "*"
Else :
For i as integer = 0 to 4
s += num
Next 
Return s
End IF

End Function

最后,我使用

将此函数调用到该单元格中
=Code.SafeConvert(ReportItems!Textbox4.Value)

您的自定义代码的问题似乎是多余的,因为除了您已经拥有的表达式之外,它不会完成任何事情。所以我建议不要为此使用任何自定义代码。

这里的主要问题是引用其他单元格中的值。 SSRS 对此内置的支持有限。您不能有一个分组表达式,然后引用它并再次聚合它。但是有一些方法可以解决它以获得所需的最终结果。

执行此操作的一种方法是在 SQL 中使用子查询来获取所需的附加值。然后在报告中您将引用新列来计算过滤后的值。如果可能,我建议使用这种方法。

另一种选择是将计算字段添加到您的数据集。您需要编写一个表达式来逐行过滤数据。根据您的具体要求,这可能还不够。同样,您将在 table.

中引用这个新列

我知道这不是一个具体的答案,但我希望它能为您指明正确的方向。