[英]SQL Report Builder: how to use functionality of WHERE clause inside SSRS?
我需要能够进行计算,得到每加仑美分的价值。 这可以通过 PRICE / GALLONS = CPG 轻松实现。
由于我显然不能在报告表达式功能中使用实际的 WHERE 子句,因此我能找到的最接近的是使用 IIF() function。 但是,我并没有完全得到我想看到的东西。
这是表达式:
=IIF(Fields!gallons.Value=0,"-", Fields!GP.Value/Fields!gallons.Value)
如您所见,该报告适用于加仑值不为零的值。 但是当涉及到零的位置时,我得到了可怕的#Error
。
我该如何处理零? 可能需要注意的是,我无法事先过滤掉 SQL 查询中的零,因为相关列必须存在于其他计算中。
SSRS 尝试评估 iif 条件的两侧。 因此,如果分子或分母为 0,则会出现错误!
如果其中一个值为 0,您需要做的是使用 function 返回 0。
Go 报告属性 -> 代码然后将以下代码粘贴到其中自定义代码部分
' Fix for divide by zero problem in VB
Public Shared Function VarPercent(ByVal Standard As Decimal, ByVal Actual As Decimal) As Decimal
If Actual = 0 Then
Return 0
End If
If Standard = 0 Then
Return 0
End If
Return (Standard / Actual )
End Function
否在您的报告中,无论您在哪里划分两个值,请使用以下内容:
=Code.VarPercent(Fields!GP.Value,Fields!gallons.Value)
SSRS就是那样愚蠢。 无论如何,您必须修复除以零:
=IIF(Fields!gallons.Value = 0,"-",
Fields!GP.Value / IIF(Fields!gallons.Value = 0 , 1, Fields!gallons.Value))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.