1

为什么MDX可以执行以下操作:

SELECT
[MyDim].[MyHier].[MyLevel] ON COLUMNS
FROM [CubeName]

不是以下内容:

SELECT
[MyDim].[MyHier].[MyLevel] ON ROWS
FROM [CubeName]
4

2 回答 2

2

似乎有一个轴的层次结构。Columns是定义Tuple的第一个也是最小的部分:

在查询中为集合(在这种情况下由单个元组组成)指定轴时,必须首先为列轴指定一个集合,然后再为行轴指定一个集合。列轴也可以称为axis(0) 或简称为0。

所以你应该首先定义Columns, 然后Rows, 然后Pages等等。

<SELECT query axis clause> ::=
   [ NON EMPTY ] Set_Expression
   [ <SELECT dimension property list clause> ] 
      ON 
            Integer_Expression 
       | AXIS(Integer) 
       | COLUMNS 
       | ROWS 
       | PAGES 
       | SECTIONS 
       | CHAPTERS 
于 2013-06-21T09:59:07.333 回答
2

我从来没有找到任何好的理由;-) 在列上,在行上定义结果的“形状”(元组完全相同),并且已经决定仅在列上是可以的,但不是在行上只要; IE:

a | b | c
1 | 2 | 3

但不是:

a | 1 
b | 2
c | 3

很奇怪,因为我认为从 MDX 服务器实现的角度返回这些值没有问题。顺便说一句,没有列和行是有效的:

select from [cube]
于 2013-06-22T07:11:23.200 回答