在ON COLOWNS上与ON ROWS相比

时间:2013-06-21 07:59:26

标签: sql-server sql-server-2012 ssas mdx

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

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

以下内容:

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

2 个答案:

答案 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]