MDX使用维度过滤器创建成员

时间:2014-02-26 22:49:28

标签: sql-server-2008 mdx olap-cube

我正在尝试使用维度过滤器在MDX多维数据集中创建一个度量。以下代码有效。

CREATE MEMBER CURRENTCUBE.[Measures].[SOda] AS
(
    [Measure].[SOda_pre],
    [Case].[Outage Cause].&[CustomerA],
    [Case.[SO Filter].&[1]
)

当我向过滤器添加另一个客户名称时,它返回#VALUE。以下是我的尝试。

CREATE MEMBER CURRENTCUBE.[Measures].[SOda] AS
(
    [Measure].[SOda_pre]
    *{[Case].[Outage Cause].&[CustomerA], [Case].[Outage Cause].&[CustomerB]}
    *{[Case.[SO Filter].&[1]}
)

2 个答案:

答案 0 :(得分:0)

您可以将成员定义为元组,就像在第一个代码示例中所做的那样。但是,您不能像在第二个代码示例中那样将成员定义为包含多个元组的集合。但您可以使用Aggregate函数计算集合中的成员和可选的数字表达式,如下所示:

CREATE MEMBER CURRENTCUBE.[Measures].[SOda] AS
Aggregate(
    {[Case].[Outage Cause].&[CustomerA], [Case].[Outage Cause].&[CustomerB]}
    *{[Case.[SO Filter].&[1]}
    ,[Measure].[SOda_pre]

) 

答案 1 :(得分:0)

语法上,表达式不能是(度量)成员。无论何处将表达式暴露给另一个轴,它都会产生2个结果:一个针对每个客户。

您能详细说明客户A和B的过滤流程吗?

菲利普,