CURRENTMEMBER 函数在 MDX 中给出错误

CURRENTMEMBER function gives an error in MDX

我的尺寸如下:

我想一次获得一个市场。

当我使用这个查询时,我得到了所有成员的列表,因为我正在使用 .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]; 

更新:

当我使用下面的查询时,我得到的结果是 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];

我该如何解决这个问题?

准确地说,伙计们 - currentmember 不会迭代 mdx 中的任何内容。 None 我在原始 post 中看到的 mdx 正在使用任何类型的迭代。

此函数与 mdx 中的循环一样接近:

GENERATE

也可以将 Filter 视为迭代器。

CURRENTMEMBER 通常用在 WITH 从句中进行计算。它的作用是为 上下文 中的每个成员获取当前成员 - 这基本上意味着您在结果 table.

中看到的内容
如果您在 scope 中的层次结构中有任何成员并在轴上布局,则隐式选择

CURRENTMEMBER。默认情况下,它是 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];

这将 return 当前所选市场或轴上(在范围内)的名称。