Фильтр 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