Фильтр MDX по членам

Это более общий вопрос MDX. Я хочу отфильтровать эти даты из отчетной иерархии date.fiscal. Ранее я использовал вычисляемый элемент, но я просто поместил его в запрос, он не возвращает никаких результатов.

    SELECT 
               { 
                FILTER (
                         [Reporting Date].[Fiscal].MEMBERS
                        ,[Reporting Date].[Fiscal].currentmember > [Reporting Date].[Fiscal].[Date].&[2013-03-06]
                         AND
                         [Reporting Date].[Fiscal].currentmember < [Reporting Date].[Fiscal].[Date].&[2013-03-11]
                       )

               }   on 1
              , 
               {
                  Measures.Gross
               } on 0
    FROM [Revenue]

2 ответа

Решение

Это выражение фактически оценивает 2 кортежа, а затем выполняет сравнение по оцененному значению:

[Отчетная дата]. [Фискальный].currentmember > [Отчетная дата]. [Фискальный]. [Дата].&[2013-03-06]

является:

([Отчетная дата]. [Фискальный]. Текущий член) > ( [Отчетная дата]. [Фискальный]. [Дата].&[2013-03-06])

где () представляет кортеж (т. е. ссылку на ячейку в кубе). Итак, вы сравниваете значение ячейки, а не даты членства. Я думаю, что вы хотите что-то вроде:

выберите... {[Дата отчетности]. [Фискальный]. [Дата].&[2013-03-06]: [Дата отчетности]. [Фискальный]. [Дата].&[2013-03-11] } в 1

Вы можете использовать оператор диапазона MDX : указать буквенный диапазон членов

SELECT 
    { Measures.Gross } ON 0,
    {[Reporting Date].[Fiscal].[Date].&[2013-03-06] : [Reporting Date].[Fiscal].[Date].&[2013-03-11] } ON 1
FROM [Revenue]

См. Документацию здесь: http://msdn.microsoft.com/en-us/library/ms146001.aspx

Другие вопросы по тегам