为什么在MDX
中可以执行以下操作:
SELECT
[MyDim].[MyHier].[MyLevel] ON COLUMNS
FROM [CubeName]
但不以下内容:
SELECT
[MyDim].[MyHier].[MyLevel] ON ROWS
FROM [CubeName]
答案 0 :(得分:2)
似乎有一个轴的层次结构。 Columns
是定义Tuple的第一个也是最小的部分:
在查询中为集合指定轴(在本例中由单个元组组成)时,必须先为列轴指定集合,然后才能为行轴指定集合。列轴也可以称为轴(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
答案 1 :(得分:2)
我从来没有找到任何合理的理由;-)在列上,在行上定义结果的“形状”(元组完全相同)并且已经确定在列上只是可以但是不仅仅是行;即:
a | b | c
1 | 2 | 3
但不是:
a | 1
b | 2
c | 3
很奇怪,因为我认为从MDX服务器实现的角度来看返回这些值没有问题。顺便说一句,没有列和没有行是有效的:
select from [cube]