Как определить, что двойное число не равно бесконечности, бесконечности или Nan в SSRS? - PullRequest
0 голосов
/ 29 июля 2011

Если получен набор данных, возвращенный из SSAS, где некоторые записи могут иметь бесконечность или -infinity (рассчитывается в SSAS, которого нет в отчете).

Я хочу вычислить среднее значение этого столбца, но игнорировать те записи, которыеположительная или отрицательная бесконечность.

Моя мысль состоит в том, чтобы создать вычисляемое поле, которое логически могло бы сделать это:

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

Что я не могу понять, так это как IsInfinity илиIsNegativeInfinity.

Или, наоборот, есть ли способ вычисления среднего для столбца, игнорирующего эти записи?

Ответы [ 2 ]

3 голосов
/ 22 декабря 2011

Просто наткнулся на эту проблему и нашел простое решение для определения, является ли числовое поле бесконечностью.

=iif((Fields!Amount.Value+1).Equals(Fields!Amount.Value), false,true)
0 голосов
/ 13 января 2012

Я предполагаю, что вы используете студию бизнес-аналитики, а не инструмент построения отчетов.

Возможно, вы пытаетесь использовать формулу, потому что вы не можете изменить запрос SSAS MDX, но если бы вы могли, то бесконечность, скорее всего, была бы вызвана делением на ноль. Вероятно, NaN вызван попыткой выполнить математику со значениями NULL.

В идеале измените сам куб так, чтобы мера была защищена от деления на ноль (например, IIF [measure] = 0, делайте только возврат "", в противном случае сделайте это). Второй вариант - создать вычисляемый показатель в запросе MDX, который выполняет нечто подобное.

Что касается формулы, то здесь нет функций IsInfinity, поэтому вам нужно посмотреть на значение поля и посмотреть, равно ли оно 1. # IND или 1. # INF или NaN.

...