如何确定SSRS中的双精度是不是无穷大,无穷大还是无穷?

时间:2011-07-28 22:29:46

标签: double ssrs-2008 infinity

如果从SSAS返回了一些数据集,其中某些记录可能是无穷大或无穷大(在SSAS中计算不在报告中)。

我想计算此列的平均值,但忽略那些正或负无穷大的记录。

我的想法是创建一个逻辑上可以执行此操作的计算字段:

= IIF(IsInfinity(Fields!ASP.Value) or IsNegativeInfinity(Fields!ASP.Value), 0 Fields!ASP.Value)

我无法弄清楚如何IsInfinityIsNegativeInfinity

或者相反,有没有办法计算忽略这些记录的列的平均值?

2 个答案:

答案 0 :(得分:3)

偶然发现了这个问题并找到了一个简单的解决方案,用于确定数字字段是否为无穷大。

=iif((Fields!Amount.Value+1).Equals(Fields!Amount.Value), false,true)

答案 1 :(得分:0)

我假设您使用的是商业智能工作室而不是报表生成工具。

也许你正在尝试一个公式,因为你不能改变SSAS MDX查询,但如果你可以,那么无穷大可能是由零除以引起的。 NaN可能是由于尝试使用NULL值进行数学运算而引起的。

理想情况下,更改多维数据集本身,以便将度量安全除以零(例如,IIF [measure] = 0,不执行除法只返回“”,否则执行此操作)。第二个选项是在MDX查询中创建一个类似的计算度量。

对于公式,没有IsInfinity函数,因此您必须查看字段的值并查看其是否为1.#IND或1.#INF或NaN。