为什么在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