3

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

    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]
4

2 回答 2

4

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

[报告日期].[财政].currentmember > [报告日期].[财政].[日期].&[2013-03-06]

是 :

( [报告日期].[财政].currentmember ) > ( [报告日期].[财政].[日期].&[2013-03-06] )

其中 () 表示一个元组(即,对多维数据集中的单元格的引用)。因此,您正在比较单元格值而不是成员日期。我想你想要的是这样的:

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

于 2013-03-15T19:24:26.500 回答
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

于 2013-03-15T19:06:36.577 回答