MDX过滤会员

时间:2013-03-15 18:09:11

标签: ssas mdx dimensions olap-cube ssas-2008

这更像是一个普通的MDX问题。我想从报告日期过滤那些日期。财政层次。我以前使用的是计算成员,但我只是把它放在查询中,它不会返回任何结果。

    SELECT 
               { 
                FILTER (
                         [Reporting Date].[Fiscal].MEMBERS
                        ,[Reporting Date].[Fiscal].currentmember > [Reporting Date].[Fiscal].[Date].&[2013-03-06]
                         AND
                         [Reporting Date].[Fiscal].currentmember < [Reporting Date].[Fiscal].[Date].&[2013-03-11]
                       )

               }   on 1
              , 
               {
                  Measures.Gross
               } on 0
    FROM [Revenue]

2 个答案:

答案 0 :(得分:3)

此表达式实际上是在评估2个元组,然后对评估值执行比较:

  

[报告日期]。[财政] .currentmember&gt; [报告   。日期] [财政] [日期]&安培; [2013年3月6日]

是:

  

([报告日期]。[财政]。当前成员)&gt; ([报告   日期]。[财政]。[日期]。&amp; [2013-03-06])

其中()表示元组(即,对立方体中的单元格的引用)。所以你要比较单元格值而不是成员日期。我想你想要的是:

  

选择... {[报告日期]。[财政]。[日期]。&amp; [2013-03-06]:   [报告日期]。[财政]。[日期]。&amp; [2013-03-11]} 1

答案 1 :(得分:2)

您可以使用MDX范围运算符:指定文字成员范围

SELECT 
    { Measures.Gross } ON 0,
    {[Reporting Date].[Fiscal].[Date].&[2013-03-06] : [Reporting Date].[Fiscal].[Date].&[2013-03-11] } ON 1
FROM [Revenue]

请参阅此处的文档:http://msdn.microsoft.com/en-us/library/ms146001.aspx