2011-08-03 5 views
2

YEAR, 및 MONTH의 세 가지 수준으로 PERIOD이라는 차원이 있습니다.세 번째 수준 (몬드리안 MDX) 적용 필터 후 첫 번째 수준 데이터 멤버를 얻는 방법

의미
With SET [*BASE_MEMBERS_Period.Period] AS ' Filter ([Period.Period].[Month].Members , (NOT([Period.Period].CurrentMember In { [Period].[All Periods].[FY 2008-2009].[Q4 2008-09].[Mar 2009 ] }))) ' 

, 우리가 [Mar 2009 ]를 제외한 모든 데이터를 원하는 다음과 같이

나는 세 번째 수준의 데이터를 필터링했다.

지금, 나는 다음과 같은 요구 사항에 대한 쿼리를 작성해야 :

  1. 위의 필터를 적용하여 ... 년 수준의 모든 구성원에 대한 데이터를 얻을 수 있습니다. 즉, 구성원 [FY 2008-2009]의 값은 [Mar 2009]의 값을 제외하고 와야합니다.

  2. 위의 필터를 적용하여 QUARTER 레벨의 모든 회원에 대한 데이터를 가져옵니다. 즉, 구성원 [Q4 2008-09]의 값은 [Mar 2009]의 값을 제외하고 와야합니다.

미리 감사드립니다.

+0

램, 대답은 도움이됩니까? – ic3

답변

0
몬드리안 확실

하지하지만 MDX 준수의 경우 :

첫째, 당신은 당신의 세트를 작성할 수 있습니다 - 운영자 :

당신이 찾고있는 동작을하기 위해
With SET [*BASE_MEMBERS_Period.Period] AS '[Period.Period].[Month].Members - [Period].[All Periods].[Mar 2009 ]' 

subselect 사용할 수 있습니다 : 당신이 결과에서 볼 수 있듯이

Select 
[Period.Period].[Year] on 0 
From 
    (Select 
    [Period.Period].[Month].Members - [Period].[All Periods].[Mar 2009 ] on 0 
    from [MyCube]) 

을, 2009 년 3 월 데이터가 제거됩니다. Subselect는 사실 데이터 (VISUAL 플래그 참조)뿐만 아니라 mdx 함수에도 적용됩니다. 회원 함수에서도 달이 필터링 된 다음 문장을 확인할 수 있습니다.

Select 
[Period.Period].[Month].members on 0 // -> March 2009 is not there 
From 
    (Select 
    [Period.Period].[Month].Members - [Period].[All Periods].[Mar 2009 ] on 0 
    from [MyCube]) 
관련 문제