Если значение возвращается в бесконечность, по умолчанию оно равно 0 - Отчет SQL - PullRequest
0 голосов
/ 25 октября 2018

Я создаю отчет SQL, и один из столбцов - это расчет, который вычисляет количество поддонов на складе.

Проблема в том, что для некоторых полей может быть установлено значение 0, что дает мнеразделить на 0 ошибок и дать результат бесконечности.Я хочу суммировать строки, которые имеют результирующие значения, но значения бесконечности мешают этому быть возможным.

Как я могу установить значение по умолчанию 0, если результат вычисления не является значением?

Мое выражение ниже:

=CDBL((Fields!AVAIL.Value/Fields!pack.Value)/Fields!units.Value)

Ответы [ 2 ]

0 голосов
/ 25 октября 2018

Мне нравится добавлять заказной код в мои отчеты, использование этого ниже упростит формулы.

Public Function Divider (ByVal Dividend As Double, ByVal Divisor As Double) 
If IsNothing(Divisor) Or Divisor = 0 
Return 0
Else Return Dividend/Divisor 
End If 
End Function

Ваша формула (которая устраняет ошибки #Infinity и # Div / 0) будет тогда

=Code.Divider((Fields!AVAIL.Value,Fields!pack.Value),Fields!units.Value)
0 голосов
/ 25 октября 2018

Попробуй это.Мы в основном делаем вычисления, только если оба поля не установлены в 0

=Iif(Fields!pack.Value = 0 Or Fields!units.Value = 0,0,CDBL((Fields!AVAIL.Value/Fields!pack.Value)/Fields!units.Value))
...