我的维度如下:
我希望一次获得一个市场。
当我使用此查询时,我正在获取所有成员的列表,因为我正在使用.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];
我该如何解决这个问题?
答案 0 :(得分:2)
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];
这将返回所选当前市场的名称或轴(在范围内)。
答案 1 :(得分:1)
准确地说 - currentmember
不会迭代mdx
中的任何内容。我在原帖中看到的mdx都没有使用任何迭代。
此函数与mdx
:
GENERATE
也可以将Filter视为迭代器。
CURRENTMEMBER
通常在WITH
子句中用于计算。它的作用是为上下文中的每个成员选择当前成员 - 这基本上意味着你在结果表中看到的内容。