mdx层次结构XXX已出现在axis0轴中

时间:2013-09-18 08:46:49

标签: sql-server ssas mdx

我正在尝试创建一个MDX语句,但我收到此错误:mdx层次结构文章已经出现在axis0轴上。我的问题是......只有当“Where”子句项在列或行中时才会出现此错误,我该如何解决这个问题呢?无论如何在没有子选择的情况下解决它?

SELECT 
NON EMPTY { [Articles].[Article].[Article].ALLMEMBERS } ON COLUMNS  , 
NON EMPTY { [Measures].[%Uds] } DIMENSION PROPERTIES MEMBER_CAPTION ON ROWS 
FROM  [Modelo]  
WHERE  ( {[Articles].[Article].&[A] , 
[Articles].[Article].&[B]} )  CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS

谢谢!

1 个答案:

答案 0 :(得分:4)

一个层次结构只能出现在MDX中的一个轴(列,行,位置)中。因此,当您想限制您的选择时,只需直接在列轴上执行此操作,并且根本不使用where子句:

SELECT 
NON EMPTY {[Articles].[Article].&[A] , [Articles].[Article].&[B]} ON COLUMNS  , 
NON EMPTY { [Measures].[%Uds] } DIMENSION PROPERTIES MEMBER_CAPTION ON ROWS 
FROM  [Modelo]  
CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS

或者,您可以使用子选择:

SELECT 
NON EMPTY { [Articles].[Article].[Article].ALLMEMBERS } ON COLUMNS  , 
NON EMPTY { [Measures].[%Uds] } DIMENSION PROPERTIES MEMBER_CAPTION ON ROWS 
FROM  (
    SELECT {[Articles].[Article].&[A] , [Articles].[Article].&[B]}
    FROM [Modelo]
    )  
CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS

子轴中的子选择和where / direct参考之间的结果略有不同,但在很多情况下结果是相同的。