MDX初识

一、MDX基础

       MDX是最初由MS设计,并且1998年在SSAS 7.0中引用,它MDX支持两种不同的模式:

      1、表达式语言:定义和操纵SSAS对象和数据以计算。

      2、查询语言:SSAS中检索数据。

     一般来说:SSAS中的度量值组主要用于导航,提高可读性容易在客户端中使用,绝对不会在MDX中查询使用,但是在一些MDX函数中可以使用度量值组。

       成员:每个层次结构都包含一个或多个项,这些项就是成员。

       wKioL1YCq87SPVHcAAG_Q67YZUc518.jpg

在MDX中,某一层次结构的每个特定成员都是通过唯一名称进行标识的。有三种,如下实例:

1、[Date].[Calendar].[Q1 CY 2006]

2、[Date].[Calendar].[CY 2006].[H1 CY 2006].[Q1 CY 2006]

3、[Date].[Calendar].[Calendar Quarter].&[2006]&[1]

上面第一种是按照[维度名称].[层次结构].[成员名称]的格式表示的。没有同名的成员可以使用。

第二种是就是最安全的方式,因为完全显示了路径中的所有成员。

第三种就是键路径,路径中成员的键表示为.&[成员名称]。

单元,元组:直接上图(来源百度),

wKiom1YCtVOD7C6yAAIKRgp8Ejg777.jpg然后在用MDX结合多维数据集(MDX跟上图不一致呦),

select  Measures.[Internet Sale Amount] ON columns 

from  [Adventure Works]

where ( [Date].[Calendar].[Calendar Quarter].&[2011]&[2]),[Product].[product Line].[Mountain],

             [Customer].[Country].[Australia])

知道一点MDX的都看得明白,这样的查询结构,就是多维数据集中一个一个小方块体。就是单元。

在说元组:

select  Measures.[Internet Sale Amount] ON columns 

from  [Adventure Works]

where  [Customer].[Country].[Australia]

这样结果集,就是多维数据集中的一个切片。从多维数据集中就可以看出,元组是由单元组成的。

:一组元组构成的新的对象就是集。这些元组是使用在类型和数量上均完全相同的一组维度定义的。

(可以简单在上图中理解为,如果同时选择了东半球的非洲、亚洲和西半球的南美洲,那么这样的结果就是非洲、亚洲、南美洲所在的切面)MDX表示: {([Customer].[Country].[Australia]),([Customer].[Country].[Canada)}

要点:

维度成员本身即构成一个元组和集

如果某个元组是仅通过一个层次结构指定的,那么不需要使用括号即可将其指定为集。

如果某个查询仅指定了一个元组,那么不需要使用花括号来指示应该将其视为集。

一般情况下尽量使用括号和花括号!

本文出自 “SeaSky” 博客,谢绝转载!

你可能感兴趣的:(MDX)