2017-09-22 1 views
0

계층 구조는 최대 4 단계까지입니다. 수준 4 항상 존재하지 않지만 내 SSRS 보고서를 일부 논리 (null 처리됩니다) 사용하고 있습니다. 내 MDX 쿼리의 이 부분은 일부 데이터와 계층 구조의 모든 수준을 반환합니다 : 사용자가 몇 가지 매개 변수를 사용하는 경우 내 결과는, 그러나 레벨 4에 대해 최소한 하나 개의 행이있는 경우이 보고서는 잘 작동완전히 비어있는 계층 구조로 작업하기

{ DESCENDANTS([Hierarchy].[Hierarchy], [Hierarchy].[Hierarchy].[Level4], LEAVES) } ON ROWS 

보고서에서 레벨 4가 아닌 데이터 집합을 지정하면 다음 오류가 표시됩니다.

The dataset 'Data' contains a definition for the Field 'Level4'. 
This field is missing from the returned result set from the data source. 

어떻게 처리해야합니까? 기본적으로 사용자가 레벨 4 노드가없는 데이터의 작은 하위 집합을 필터링 할 수 있다면 내 보고서가 작동하지 않습니다.

편집 : 일부 테스트를 수행하고 있는데 어떤 이유로 오류가 더 이상 표시되지 않습니다. 그러나 Level4 값의 필드가 보고서에서 그냥 비어 있고 거기에 IsNothing() 논리를 추가하면 True/False 대신 #Error가 발생하므로 보고서가 작동하지 않습니다. 대신이의

+0

당신이 전체 쿼리를 게시 할 수 있을까요? –

답변

1

:

{ DESCENDANTS([Hierarchy].[Hierarchy], [Hierarchy].[Hierarchy].[Level4], LEAVES) } ON ROWS 

당신은 레벨 4를 지정해야합니까? 나는 위의 반환 계층 구조의 가장 낮은 수준 (4)의 모든 구성원 가정 - 다음 '패턴'와 같은 아마 뭔가 :

[Dimension].[Hierarchy].LEVELS([Dimension].[Hierarchy].Levels.Count-1) 

을하지만 당신은 아마 다음 함수 후손이 '패턴을 고수 할 경우 '

DESCENDANTS([Dimension].[Hierarchy].[All], ([Dimension].[Hierarchy].Levels.Count - 1), SELF) 

하지만 필요한 일을 할 수있는 다음과 같은도 뭔가 :

DESCENDANTS([Dimension].[Hierarchy].[All], , LEAVES) 
+0

이것은 내 쿼리와 동일한 결과를 반환하지만 레벨 4 계층 멤버가없고 보고서 논리가없는 데이터에서 필터링하는 사용자와 동일한 문제가 발생합니다. (IsNothing 검사는 #Error를 반환합니다) –

+0

@ Alex_404 IsNothing은 MDX 함수가 아닙니다. – whytheq

+0

누락 된 행을 처리하는 데 사용하려고 시도한 SSRS의 함수입니다. MDX 쿼리에는 문제가 없습니다. –

관련 문제