2016-06-15 7 views
3

у меня размер, как показано ниже:функция CurrentMember дает ошибку в MDX

Market Base Dimension

Я хочу, чтобы получить один рынок в то время.

Когда я использую этот запрос, я получаю список всех членов, как я использую .MEMBERS функцию:

SELECT [MARKET BASE].[Market Base].[Market Base].MEMBERS ON 1, 
[Measures].[% OTC Sales] ON 0 
FROM [PharmaTrend Monthly Ext]; 

Но когда я использую следующий запрос, чтобы получить только текущий элемент, то я получаю ошибка: Функция CURRENTMEMBER ожидает выражения иерархии для аргумента 1. Использовалось выражение члена.

SELECT [MARKET BASE].[Market Base].[Market Base].CURRENTMEMBER ON 1, 
[Measures].[% OTC Sales] ON 0 
FROM [PharmaTrend Monthly Ext]; 

UPDATE:

Когда я использую ниже запрос, я получаю результат с All member:

WITH 
MEMBER [Market] AS 
    [MARKET BASE].[Market Base].[Market Base].CURRENTMEMBER 

SELECT [Measures].[% OTC Sales] ON 0, 
     [Market] ON 1 
FROM [PharmaTrend Monthly Ext]; 

Как я могу идти о решении этого?

+0

Как вы думаете, является ли текущий участник? Если вы на самом деле не повторяете элементы измерения, их нет. Неясно, каков результат вашего запроса. –

+0

Что я на самом деле хочу, все члены измерения даны на каком-то другом языке. Я хочу повторить каждую из них по одному и дать перевод на английский для каждого из них в моем отчете SSRS. –

+0

Вышеприведенный запрос, который я пытаюсь получить, просто дает представление о том, как итерации каждого из них динамически –

ответ

2

CURRENTMEMBER неявно выбрано, если у вас есть какой-либо член из иерархии в scope и выложен на оси. По умолчанию это член ALL.

WITH MEMBER [Measures].[Market] AS 
[MARKET BASE].[Market Base].CURRENTMEMBER.NAME 

SELECT [MARKET BASE].[Market Base].[Market Base].MEMBERS ON 1, 
{[Measures].[% OTC Sales], [Measures].[Market]} ON 0 
FROM [PharmaTrend Monthly Ext]; 

Это вернет название текущего рынка, выбранного или по оси (в области).

1

Для точного определения числа голосов - currentmember не перебирает ничего в mdx. Ни один из mdx, который я вижу в исходном сообщении, не использует любую итерацию.

Эта функция так близко, как вы получите петлю в mdx:

GENERATE 

Фильтр также можно рассматривать в качестве итератора.

CURRENTMEMBER обычно используется в статье WITH для клакуляций. То, что он делает, это взять текущий член для каждого члена, который равен в контексте - это в основном означает, что вы видите в таблице результатов.