2016-07-25 2 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]; 

Мне нужно получить предыдущее значение члена, следующее сверху, чтобы получить разницу между продажами. Я использую Mondrian 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] 

В результате в порядке, но мой следующий вопрос, чтобы сделать вычисляемый элемент который приносит сумму всех продаж для всех вышеперечисленных членов. Например, для Франции Продажи должны быть проданы в США + Испания, для Австралии Продажи Мне нужны США + Испания + Франция Продажи.

Любая идея?

 Смежные вопросы

  • Нет связанных вопросов^_^