2016-07-25 6 views
0

각 현재 회원에 대해 mdx 쿼리를 사용하여 이전 (위) 멤버의 매출을 얻어야합니다.정렬 된 선택에서 위의 회원 값을 mdx로 가져 오기

다음의 mdx은 정상적인 쿼리에서 이전 멤버 값을 가져 오는 데는 문제가 없지만 Sales를 기준으로 행을 정렬하도록 설정하면 이전 값은 혼합되어 있으며 정렬 된 멤버를 따르지는 않습니다.

WITH 
    MEMBER [Measures].[PrevMemberSales] AS 
     'SUM(
     [Markets].[Country].CurrentMember.PREVMEMBER 
     , [Measures].[Sales] 
     )' 
SELECT 
    NON EMPTY 
     ({[Measures].[Sales], [Measures].[PrevMemberSales]}) ON COLUMNS, 
    NON EMPTY 
     //ORDER(
      {[Markets].[Country].Members} 
     // , [Measures].[Sales], BDESC) 
     ON ROWS 
FROM [SteelWheelsSales]; 

Sales의 차이점을 알아보기 위해 이전 멤버 값을 맨 아래로 가져와야합니다.

WITH 
    MEMBER [Measures].[PrevMemberSales] AS 
     (Order(
      [Markets].[Country].Members 
     ,[Measures].[Sales] 
     ,BDESC 
     ).Item(
       Rank(
        [Markets].[Country].CurrentMember 
        ,Order(
         [Markets].[Country].Members 
        ,[Measures].[Sales] 
        ,BDESC 
        ) 
       ) - 2 
       ).Item(0) 
     , [Measures].[Sales] 
     ) 
SELECT 
    NON EMPTY ({[Measures].[Sales], [Measures].[PrevMemberSales]}) ON COLUMNS, 
    NON EMPTY 
     ORDER(
      {[Markets].[Country].Members} 
      , [Measures].[Sales], BDESC) 
     ON ROWS 
FROM 
    [SteelWheelsSales] 

결과는 OK입니다하지만 내 다음 질문은 계산 된 구성원을 만드는 것입니다 : 난 그냥 계산 된 구성원에 대해 다음 공식을 사용하여 문제를 해결하기 위해 관리 3. enter image description here

답변

0

몬드리안 내가 사용하고 이는 위의 모든 멤버에 대한 모든 Sales의 합계를 가져옵니다. 예를 들어, 프랑스 영업의 경우 미국 + 스페인 영업, 호주 영업의 경우 미국 + 스페인 + 프랑스 영업이 필요합니다.

아이디어가 있으십니까?