Фильтрация иерархий в предложении WITH MDX - PullRequest
0 голосов
/ 08 июня 2011

Используя ответ MDX для нескольких иерархических измерений У меня следующий запрос MDX:

with
member L1Y1 as ([Dim Location].[Hierarchy].[Center].&[1],
        [Dim Date].[Calendar Date].[Year].&[2010],
        [Measures].[x])                 
select ([Dim Attribute].[Parent Code].&[10000]) on 0, 
       ({L1Y1}) on 1
from DS

Теперь проблема в том, как отфильтровать L1Y1 по его дочерним элементам. Например, предположим, что мы хотим отфильтровать его, чтобы в запрос были включены только сезон 2 и месяц 7. Следующий вывод запроса такой же, как и выше, и предложение where не имеет никакого эффекта:

with
member L1Y1 as ([Dim Location].[Hierarchy].[Center].&[1],
        [Dim Date].[Calendar Date].[Year].&[2010],
        [Measures].[x])                 
select ([Dim Attribute].[Parent Code].&[10000]) on 0, 
       ({L1Y1}) on 1
from DS
where [Dim Date].[Calendar Date].[Season].&[2] and 
      [Dim Date].[Calendar Date].[Month].&[7]

Ответы [ 2 ]

2 голосов
/ 09 июня 2011

Если вы не удалили атрибуты, у вас должно быть несколько иерархий, доступных в вашем измерении времени.Можете ли вы попробовать это:

with
member L1Y1 as ([Dim Location].[Hierarchy].[Center].&[1],
    [Dim Date].[Calendar Date].[Year].&[2010],
    [Measures].[x])                 
select ([Dim Attribute].[Parent Code].&[10000]) on 0, 
   ({L1Y1}) on 1
from DS
where [Dim Date].[Season].&[2] and [Dim Date].[Month].&[7]

Обратите внимание, поскольку мы не , используя иерархию [Календарная дата]: элемент времени не перезаписывается, а фильтруется.

1 голос
/ 09 июня 2011

Как насчет:

with
member L1Y1 as ([Dim Location].[Hierarchy].[Center].&[1],
        [Dim Date].[Calendar Date].[Year].&[2010],
        [Measures].[x])
member S2 as ([Dim Location].[Hierarchy].[Center].&[1],
        [Dim Date].[Calendar Date].[Season].&[2],
        [Measures].[x])
member M7 as ([Dim Location].[Hierarchy].[Center].&[1],
        [Dim Date].[Calendar Date].[Month].&[7],
        [Measures].[x])     
select ([Dim Attribute].[Parent Code].&[10000]) on 0, 
       (L1Y1, S2, M7) on 1
from DS

Я понимаю, что это несколько более трудоемкий подход, но вы получите результат.Если вы хотите получить только одно значение, попробуйте сохранить только меру M7.

...