iif 函数计算 SSRS 中的两条路径还是短路?

发布于 2024-07-29 06:52:20 字数 363 浏览 6 评论 0原文

我正在尝试根据产品的销量评估每公斤的价格(美元/公斤)。 如果产品在指定期限内实际售出,则此方法效果很好。 但是,如果产品未售出,Kg(分母)最终将变为 0(零)并产生错误。 - 除以零误差。

我尝试了这个

=iif(KgSold=0,0,Revenue/KgSold)

看来 iif 函数正在计算 true 和 false 结果。 我该如何解决这个问题。

我应该使用 switch 函数吗?

=switch(KgSold=0,0
        KgSold<>0,Revenue/KgSold)

I am trying to evaluate a Price per Kilo ($/Kg) based on sales of a product. This works fine if the product was acutally sold during the period specified. However if the product is not sold the Kg (the denominator) ends up being 0 (zero) and an error results. - Divide by Zero error.

I tried this

=iif(KgSold=0,0,Revenue/KgSold)

It appears that the iif function is calculating both the true and false results. How do I get around this.

Should I be using the switch function instead?

=switch(KgSold=0,0
        KgSold<>0,Revenue/KgSold)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

瑕疵 2024-08-05 06:52:20

你是对的,它不会短路。 太糟糕了。

您必须执行以下操作:

= Iif(KgSold = 0, 0, Revenue) / Iif(KgSold = 0, 1, KgSold )

switch 功能也应该起作用。

You're right, it doesn't short circuit. That sucks.

You'll have to do something like this:

= Iif(KgSold = 0, 0, Revenue) / Iif(KgSold = 0, 1, KgSold )

The switch function should also work.

你又不是我 2024-08-05 06:52:20

发生这种情况是因为在 VBScript 中,在发生任何功能之前,将首先评估 IIF 内的所有条件。

This happens because in VBScript all conditions within an IIF will be evaluated first before any functionality occurs.

爱*していゐ 2024-08-05 06:52:20

将以下内容添加到您的代码中:

Public Function SafeDiv(byval num as double, byval den as double) as object

    If den = nothing then return nothing
    If den = 0 then return nothing

    return num / den

End Function

调用epression

=Code.SafeDiv(Revenue,KgSold) 

然后在文本框中

Add the following to your code:

Public Function SafeDiv(byval num as double, byval den as double) as object

    If den = nothing then return nothing
    If den = 0 then return nothing

    return num / den

End Function

Then call

=Code.SafeDiv(Revenue,KgSold) 

in the text box epression

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文