Ste*_*ven 2 expression divide-by-zero reporting-services ssrs-expression
希望你好.我正在编写一份报告,似乎得到了#error.似乎它是一个零除错误,但我无法找到解决方案.表达方式:
=( Sum(Fields!Line_Sell.Value) - Sum(Fields!Line_Cost.Value) ) / Sum(Fields!Line_Sell.Value)
Run Code Online (Sandbox Code Playgroud)
我对RS比较新,但已经尝试过了
ISNULL( )
Run Code Online (Sandbox Code Playgroud)
但没有成功.
任何帮助,我都会很高兴.
谢谢
假设你有一个表达式设置为x/y,其中y可能为零.如您所见,SSRS会将此值更改为#ERR(或有时为NaN).你的第一直觉是测试零
=Iif(y = 0, 0, x/y)
Run Code Online (Sandbox Code Playgroud)
不幸的是,这可能导致调试器警告,表示您试图除以零.这是因为SSRS尝试在编译期间评估整个语句.因此,我们需要为SSRS提供可以评估的值
=x * y ^ -1
Run Code Online (Sandbox Code Playgroud)
这与除以y值相同,但SSRS将其视为除以无穷大,因此可以进行评估.最后一步,您需要确保您的代码可以正确导出到Excel.根据2012 SSRS(可能以后,我还没有测试过),SSRS存在一个问题,即可能将零值导出到Excel为0.000000000000000并导致数据错误丢失.为了纠正这个问题,我们明确输出零值
=Iif(x = 0 OR y = 0, 0, x * y ^ -1)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4538 次 |
最近记录: |