ON COLUMNS和ON ROWS的比较



为什么在MDX中可以这样做:

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

不是以下内容:

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

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

a | b | c
1 | 2 | 3

但不是:

a | 1 
b | 2
c | 3

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

select from [cube]

似乎有一个轴的层次结构。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 

最新更新