2016-07-25 37 views
0

我需要爲每個當前成員使用mdx查詢獲取以前(上述)會員的銷售額。以訂單選擇的方式獲取mdx中的以上會員價值

以下mdx可以正常查詢使之前的成員值正常工作,但如果我設置按銷售排序以獲取頂部的行,則先前的值會混淆,並且它不會遵循有序成員。

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]; 

我需要將上一個成員值放在頂部,才能獲得銷售額之間的差異。 我使用蒙德里安3. enter image description here

回答

0

我只是設法解決使用下列公式計算出會員的問題:

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] 

結果是確定的,但我的下一個問題是要計算的成員這會爲所有上述成員帶來所有銷售額的總和。 例如,法國銷售的價值應該是美國+西班牙銷售額,澳大利亞銷售額需要美國+西班牙+法國銷售額。

有什麼想法?

相關問題