2011-07-28 2 views
0

일부 레코드가 무한대 또는 무한대 일 수있는 SSAS에서 반환 된 데이터 집합이있는 경우 (보고서에없는 SSAS에서 계산).SSRS에서 double이 무한대, 무한대 또는 Nan이 아닌지 어떻게 결정합니까?

이 열의 평균을 계산하지만 양수 또는 음수 무한대 인 레코드는 무시하고 싶습니다. 내가 알아낼 수 없습니다 무엇

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

IsInfinity 또는 IsNegativeInfinity을 수행하는 방법이다 :

내 생각은 논리적으로이 작업을 수행 할 계산 필드를 만드는 것입니다.

반대로 이러한 레코드를 무시하는 열의 평균을 계산하는 방법이 있습니까?

답변

3

이 문제를 우연히 발견하고 숫자 필드가 무한대인지 여부를 결정하는 간단한 해결책을 발견했습니다.

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

보고서 작성 도구가 아닌 비즈니스 인텔리전스 스튜디오를 사용한다고 가정합니다.

SSAS MDX 쿼리를 변경할 수 없기 때문에 수식을 시도하고있을 수도 있지만 가능하다면 무한대는 0으로 나누기 때문일 수 있습니다. NaN은 NULL 값을 사용하여 Math를 수행하려고 시도했을 때 발생했을 가능성이 큽니다.

측정 값이 0으로 나누어 지도록 큐브 자체를 변경하는 것이 이상적입니다 (예 : IIF [measure] = 0, 나누기를 수행하지 말고 ""). 두 번째 옵션은 유사한 작업을 수행하는 MDX 쿼리에서 계산 된 계수를 만드는 것입니다.

수식의 경우 IsInfinity 함수가 없으므로 필드 값을보고 1의 # IND 또는 1 INF 또는 NaN을 확인해야합니다.

관련 문제