CURRENTMEMBER函数在MDX中给出错误

CURRENTMEMBER函数在MDX中给出错误,mdx,members,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].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];

我怎样才能解决这个问题呢?

准确地说,chaps-
currentmember
不会在
mdx
中迭代任何内容。我在原始帖子中看到的mdx都没有使用任何形式的迭代

mdx
中,此函数与循环最接近:

GENERATE
过滤器也可以看作是迭代器


CURRENTMEMBER
通常用在
WITH
子句中进行计算。它所做的是为上下文中的每个成员拾取当前成员-这基本上意味着您在结果表中看到的内容。

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];

这将返回当前选定市场的名称或axis(范围内)上的名称。

您认为“当前成员”是什么?除非您实际上是在迭代维度的成员,否则没有。不清楚您希望查询的结果是什么。我实际希望的是,所有维度成员都用其他语言给出。我想一个接一个地迭代它们,并在我的SSRS报告中给出它们的英文翻译。我尝试的上述查询只是想知道如何动态迭代它们。在这种情况下,您的上一个查询是正确的,但您仍然需要包括
[MARKET BASE].[MARKET BASE].[MARKET BASE].MEMBERS
(或
子项
,如果要排除
所有
[Market]
可以作为您的翻译,并且可以使用
CURRENTMEMBER
。谢谢。。。。你的建议奏效了