所以可以说我有这个MDX查询:

select
    NON EMPTY {([Dim 1].[Member 1].[Member 1])} on columns
    ,NON EMPTY {([Dim 2].[Member 2].[Member 1])} on rows
from [Cube 1]
where
{(
    [Dim 3].[Hierarchy 3].[Member 3].&[Value 3]
    ,[Measures].[Measure 1]
)}


但是现在我也需要过滤,就像我对[Dim 3]。[Hierarchy 3]。[Member 3]。&[Value 3]所做的一样,但是具有来自不同维度的层次结构的多个成员值,我们称它们为:

[Dim 4].[Hierarchy 4].[Member 4].&[Value 2]
[Dim 4].[Hierarchy 4].[Member 4].&[Value 4]
[Dim 4].[Hierarchy 4].[Member 4].&[Value 8]


我已经试过了:

select
    NON EMPTY {([Dim 1].[Member 1].[Member 1])} on columns
    ,NON EMPTY {([Dim 2].[Member 2].[Member 1])} on rows
from [Cube 1]
where
{(
    [Dim 3].[Hierarchy 3].[Member 3].&[Value 3]
    ,[Dim 4].[Hierarchy 4].[Member 4].&[Value 2]
    ,[Dim 4].[Hierarchy 4].[Member 4].&[Value 4]
    ,[Dim 4].[Hierarchy 4].[Member 4].&[Value 8]
    ,[Measures].[Measure 1]
)}


明白啦:

The 'Hierarchy 4' hierarchy appears more than once in the tuple.


也尝试了这个(我知道,在这里没有太多意义):

select
    NON EMPTY {([Dim 1].[Member 1].[Member 1])} on columns
    ,NON EMPTY {([Dim 2].[Member 2].[Member 1])} on rows
from [Cube 1]
where
{(
    [Dim 3].[Hierarchy 3].[Member 3].&[Value 3]
    ,[Dim 4].[Hierarchy 4].[Member 4].&[Value 2]
    :[Dim 4].[Hierarchy 4].[Member 4].&[Value 4]
    :[Dim 4].[Hierarchy 4].[Member 4].&[Value 8]
    ,[Measures].[Measure 1]
)}


并得到了:

The : function expects a member expression for the 2 argument. A tuple set expression was used.


我对MDX相当陌生(对T-SQL经验更深),甚至不知道Google到底要使用什么,所以我很笨。

任何帮助都将受到欢迎。

提前致谢。

最佳答案

知道了:http://msdn.microsoft.com/en-us/library/ms146047.aspx


如果要使用同一层次结构中的多个成员,则需要
在WHERE子句中包含一个集合


另一件事,在我的示例中Dim 2 = Dim 3,因此要获得我期望的结果,我需要这个:

select
    NON EMPTY {([Dim 1].[Member 1].[Member 1])} on columns
    ,NON EMPTY
       {(
          [Dim 2].[Hierarchy 3].[Member 3].&[Value 3]
          ,[Dim 2].[Member 2].[Member 1]
       )} on rows
from [Cube 1]
where
(
    {
       [Dim 4].[Hierarchy 4].[Member 4].&[Value 2]
       ,[Dim 4].[Hierarchy 4].[Member 4].&[Value 4]
       ,[Dim 4].[Hierarchy 4].[Member 4].&[Value 8]
    }
    ,([Measures].[Measure 1])
)

关于sql-server-2008-r2 - 按层次结构的多个成员过滤,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17116138/

10-12 13:57