繁体   English   中英

SQL 报表生成器:如何在 SSRS 中使用 WHERE 子句的功能?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM