如何在第三级应用筛选器后获取第一级数据成员(Mondrian MDX)

如何在第三级应用筛选器后获取第一级数据成员(Mondrian MDX),mdx,mondrian,Mdx,Mondrian,我有一个名为PERIOD的维度,有三个级别YEAR、quarty和MONTH 我已筛选出三级数据,如下所示: With SET [*BASE_MEMBERS_Period.Period] AS ' Filter ( [Period.Period].[Month].Members , (NOT( [Period.Period].CurrentMember In { [Period].[All Periods].[FY 2008-2009].[Q4 2008-09].[Mar 2009 ] } )

我有一个名为
PERIOD
的维度,有三个级别
YEAR
quarty
MONTH

我已筛选出三级数据,如下所示:

With SET [*BASE_MEMBERS_Period.Period] AS ' Filter ( [Period.Period].[Month].Members , (NOT( [Period.Period].CurrentMember In { [Period].[All Periods].[FY 2008-2009].[Q4 2008-09].[Mar 2009 ] } ) ) ) ' 
这意味着,我们需要所有数据,除了
[2009年3月]

现在,我必须为以下要求编写查询:

  • 通过应用上面的过滤器,获取年度级别所有成员的数据。 这意味着……成员
    [2008-2009财年]
    的值应在排除
    [2009年3月]
    的值之后

  • 要获取季度级别所有成员的数据…请应用上面的筛选器。 这意味着……成员
    [2008-09年第4季度]
    的值应在排除
    [2009年3月]
    的值之后


  • 提前感谢。

    蒙德里安不太清楚,但如果它符合MDX标准:

    首先,您可以使用-运算符写入集合:

    With SET [*BASE_MEMBERS_Period.Period] AS '[Period.Period].[Month].Members - [Period].[All Periods].[Mar 2009 ]'
    
    为了获得您想要的行为,您可以使用:

    从结果中可以看出,2009年3月的数据已被删除。Subselect不仅适用于事实数据(请参见可视标志),还适用于mdx函数。您可以检查以下语句,其中月份也从members函数中过滤:

    Select
     [Period.Period].[Month].members on 0 // -> March 2009 is not there
    From
      (Select 
        [Period.Period].[Month].Members - [Period].[All Periods].[Mar 2009 ] on 0 
        from [MyCube] )
    

    不确定Mondrian是否符合MDX标准:

    首先,您可以使用-运算符写入集合:

    With SET [*BASE_MEMBERS_Period.Period] AS '[Period.Period].[Month].Members - [Period].[All Periods].[Mar 2009 ]'
    
    为了获得您想要的行为,您可以使用:

    从结果中可以看出,2009年3月的数据已被删除。Subselect不仅适用于事实数据(请参见可视标志),还适用于mdx函数。您可以检查以下语句,其中月份也从members函数中过滤:

    Select
     [Period.Period].[Month].members on 0 // -> March 2009 is not there
    From
      (Select 
        [Period.Period].[Month].Members - [Period].[All Periods].[Mar 2009 ] on 0 
        from [MyCube] )
    

    拉姆,答案有用吗?拉姆,答案有用吗?