복붙노트

[SQL] SSRS 2008 보고서의 제로 / 널 해결 방법으로 나누기

SQL

SSRS 2008 보고서의 제로 / 널 해결 방법으로 나누기

나는 값을 표현했다 필드와 보고서가 :

Fields!TotalPrice.Value/Fields!TotalSlots.Value

때때로의 TotalSlots 있지만 빈이었고, 따라서 나는 제로 런타임 오류에 의해 나누기를 얻고 있었다. 이에 식을 변경 나는 그래서 :

=IIF(Fields!TotalSlots.Value > 0, Fields!TotalPrice.Value/Fields!TotalSlots.Value,"unknown")

하지만, 난 여전히 영으로 나누기 오류를 받고 있어요. 어떻게이 영 인자의 문제를 해결할 않습니다.

해결법

  1. ==============================

    1.인수가 오류를 발생의 경우에 오류가 발생합니다 그래서 VB IIF는 모든 인수를 평가 :

    인수가 오류를 발생의 경우에 오류가 발생합니다 그래서 VB IIF는 모든 인수를 평가 :

    수식은 다음과 같이 쓸 수있다 :

    =IIF(Fields!TotalSlots.Value > 0,
       Fields!TotalPrice.Value /
       IIF(Fields!TotalSlots.Value > 0,
           Fields!TotalSlots.Value,
           1 ),
       "unknown")
    

    TotalSlots가 제로 그런 경우에도, 화학식 여전히 분할 문제가 발생하지 않을 것이다.

  2. ==============================

    2.제이미 F의 대답은 올바른 것입니다. 팁으로, 당신은 여러 셀, 예를 들어,에 구현하기 위해 좀 더 쉽게 분할을 만들기 위해 보고서 코드에 기능을 추가 할 수 있습니다

    제이미 F의 대답은 올바른 것입니다. 팁으로, 당신은 여러 셀, 예를 들어,에 구현하기 위해 좀 더 쉽게 분할을 만들기 위해 보고서 코드에 기능을 추가 할 수 있습니다

    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 
    

    당신은 다음과 같이 셀이를 호출 할 수 있습니다 :

    =Code.Divider(Fields!FieldA.Value, Fields!FieldB.Value)
    
  3. ==============================

    3.나는 당신의 오류가 계산을 생각하지 않습니다. 우선, SSRS이 상황을 자동으로 다루고있다. 세 번째 열을 참조하십시오. 그리고 앞으로 당신의 식을 보여줍니다 :

    나는 당신의 오류가 계산을 생각하지 않습니다. 우선, SSRS이 상황을 자동으로 다루고있다. 세 번째 열을 참조하십시오. 그리고 앞으로 당신의 식을 보여줍니다 :

    귀하의 문제는 다른 곳에 아마

  4. ==============================

    4.그냥 다른, 예를 들어,에 의해 분할 하나 수식을 쓸 경우 부문, IIF의 결과 중 하나입니다 때 발생이는 것 같다

    그냥 다른, 예를 들어,에 의해 분할 하나 수식을 쓸 경우 부문, IIF의 결과 중 하나입니다 때 발생이는 것 같다

    =IIF(thing=1,10/0,0)
    

    이 일을 평가하기 전에, 이미 오류의 원인이 모두 결과를 계산하기 위해 노력하고 있습니다. 당신은 사업부의 수익성, 예를 들어,에 IIF을 넣어 0에서 보호하기 위해이 방법으로 IIF을, 당신은 사용할 수 없습니다

    =IIF(thing=1, 10/IIF(divisor=0,-99999999999,divisor),0)
    

    우리가 introcudes에게 결과로 이상한 작은 비 제로의 수를했습니다 때문에 이것은, 만족하지 않습니다,하지만 당신은 단지 이외의 오류를 원하는 경우가 확인 될 수있다.

    기술적으로, # 오류가 정답이다.

  5. from https://stackoverflow.com/questions/10432714/divide-by-zero-null-workaround-in-ssrs-2008-report by cc-by-sa and MIT license