按维度成员过滤MDX度量

时间:2014-05-26 11:07:36

标签: mdx

假设我有一个客户的维度,我想得到所有那些产生收入超过100的客户......你如何在MDX中做到这一点?我使用像

这样的过滤器创建了一个成员
Filter([Dim Customer].[Id].Members, [Measures].[Revenue] > 150)

然而,它没有按预期工作。你怎么经常绕过这个?我希望看到1行,有2列,所有收入和来自客户的收入超过150.我的问题是因为我不希望客户行显示在行轴上 - 它是不考虑每个客户的过滤器,而是整体[测量]。[收入]。

2 个答案:

答案 0 :(得分:1)

请记住,Filter() - 函数返回一个集合,即收入超过150的所有客户的集合。然后,您需要指定要在此集合上聚合某些内容。这意味着您计算出的度量应该是这样的:

WITH MEMBER [Measures].[Revenue for Customers over 150] AS
    Aggregate(
        Filter(Existing ([Dim Customer].[Id].Members),
            [Measures].[Revenue] > 150),
        [Measures].[Revenue]
    )

答案 1 :(得分:0)

filter()函数应该:

SELECT [Measures].[Internet Sales Amount] ON 0,
filter(
[Customer].[Customer].[Customer].MEMBERS
, [Measures].[Internet Sales Amount] > 150
) ON 1 
FROM [Adventure Works]

大约一半的客户被过滤掉了。

菲利普,