为什么MDX
可以执行以下操作:
SELECT
[MyDim].[MyHier].[MyLevel] ON COLUMNS
FROM [CubeName]
但不是以下内容:
SELECT
[MyDim].[MyHier].[MyLevel] ON ROWS
FROM [CubeName]
为什么MDX
可以执行以下操作:
SELECT
[MyDim].[MyHier].[MyLevel] ON COLUMNS
FROM [CubeName]
但不是以下内容:
SELECT
[MyDim].[MyHier].[MyLevel] ON ROWS
FROM [CubeName]
似乎有一个轴的层次结构。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
我从来没有找到任何好的理由;-) 在列上,在行上定义结果的“形状”(元组完全相同),并且已经决定仅在列上是可以的,但不是在行上只要; IE:
a | b | c
1 | 2 | 3
但不是:
a | 1
b | 2
c | 3
很奇怪,因为我认为从 MDX 服务器实现的角度返回这些值没有问题。顺便说一句,没有列和行是有效的:
select from [cube]