SQLServer OLAP MDX 函数的使用介绍

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MDX 函数的使用介绍

根据SqlServer2000 Analysis Services提供的帮助材料展开,略作说明并且根据各个函数的侧重点编写相应的MDX。

数组函数

函数描述

SetToArray将一个或多个集合转换为数组,以用于用户定义函数中。

维度函数

函数描述

Dimension返回包含指定的层次结构、级别或成员的维度。

成员

«Member».Dimension

返回包含«Member»的维度。

级别

«Level».Dimension

返回包含«Level»的维度。

层次结构

«Hierarchy».Dimension

返回包含«Hierarchy»的维度

WITH Member [Measures].[abc] As '[Time]'

SELECT { [Time].&[1997] } ON COLUMNS ,{ [Product].[All Products] } ON ROWS

FROM [Sales]

WHERE ( [Measures].[abc])

Dimensions返回多维数据集中基于零的位置是由数值表达式指定的维度,或者其名称是由字符串指定的维度。

数字

Dimensions(«Numeric Expression»)

返回这样的维度,该维度在多维数据集中以零为基的位置是由«Numeric Expression»指定的。

说明Measures 维度总由Dimensions(0) 表示。

字符串

Dimensions(«String Expression»)

返回这样的维度,该维度的名称是由«String Expression»指定的

WITH Member [Measures].[abc] As 'Dimensions("[Time]").Name'

SELECT { [Time].&[1997] } ON COLUMNS ,

{ [Product].[All Products] } ON ROWS

FROM [Sales]

WHERE ( [Measures].[abc])

层次结构函数

函数描述

Hierarchy返回级别或成员的层次结构。

成员

«Member».Hierarchy

返回包含«Member»的层次结构。

级别

«Level».Hierarchy

返回包含«Level»的层次结构。

示例

成员

[January].Hierarchy

该示例返回 Time.FiscalYear。

级别

[Quarter].Hierarchy

该示例返回 Time.FiscalYear。

级别函数

函数描述

Level返回成员的级别。

«Member».Level

示例

如果Time 维度有"(全部)"、Year、Quarter、Month、Week 和Day 级别,则以下示例返回Month 级别:

January.Level

下面的示例返回Month 级别的名称:

WITH Member [Measures].[abc] As ' [Time].&[1997].&[q1]'

SELECT { [Time].&[1997] } ON COLUMNS ,

{ [Product].[All Products] } ON ROWS

FROM [Sales]

WHERE ( [Measures].[abc])

Levels返回维度中其位置是由数值表达式指定的级别,或者其名称是由字符串表达式指定的级别。

数字

«Dimension».Levels(«Numeric Expression»)

返回其基于零的位置是由«Numeric Expression»指定的级别。

字符串

Levels(«String Expression»)

返回其名称是由«String Expression»指定的级别。

注释

字符串版本的Levels 函数用于用户定义的函数。

示例

下面的示例假定Time 维度有"(全部)"、Year、Quarter、Month、Week 和Day 级别。

数字

以下示例返回Quarter 级别:

Time.Levels(2)

字符串

以下示例返回Year 级别:

Levels("Year")

WITH Member [Measures].[abc] As 'Levels([Time]).Name'

SELECT { [Time].&[1997], [Time].&[1997].&[Q1], [Time].&[1997].&[Q1].&[1], [Time].&[1997].&[Q1].&[2], [Time].&[1997].&[Q1].&[3] } ON COLUMNS ,

{ [Product].[All Products] } ON ROWS

FROM [Sales]

WHERE ( [Measures].[abc])

逻辑函数

函数描述

Is如果两个相比较的对象相等,则返回 True,否则返回 False。

«Object 1» IS «Object 2»

如果在«Object 1»和«Object 2»中指定的两个元组或成员完全等同,则返回TRUE,否则返回FALSE。

替代语法

«Object 1» IS NULL

如果在«Object 1»中指定的级别、元组或成员为NULL,则返回TRUE,否则返回FALSE。

注释

Is 函数通常用于元组或成员以确定对象是否幂等。

示例

以下示例返回FALSE:

Time.[1996] IS NULL

WITH Member [Measures].[abc] As '[Time].CurrentMember.Level Is quarter'

SELECT { [Time].AllMembers} ON COLUMNS ,

{ [Product].[All Products] } ON ROWS

FROM [Sales]

WHERE ( [Measures].[abc])

IsAncestor确定指定的成员是否为另一个指定成员的祖先。

IsAncestor(«Member1»,«Member2»)

注释

如果«Member 1»中指出的成员是«Member 2»中指定成员的祖先,则该函数返回TRUE。

示例

如果[Time].CurrentMember 是[Time].[January] 的祖先,则下列示例返回TRUE:

IsAncestor([Time].CurrentMember, [Time].[January])

WITH Member [Measures].[abc] As 'IsAncestor([Time].CurrentMember, [Time].[1997].[Q2].[4])'

SELECT { [Time].AllMembers} ON COLUMNS,

{ [Product].[All Products] } ON ROWS

FROM [Sales]

WHERE ( [Measures].[abc])

IsEmpty确定表达式是否取值为空单元值。

IsEmpty(«Value Expression»)

注释

IsEmpty 函数是可靠地对空单元进行测试的唯一方法,因为空单元值对Microsoft SQL Server 2000 Analysis Services 有特殊的意义。有关空单元的更

多信息,请参见OLE DB 文档。

示例

如果Measures.CurrentMember 是空单元,则以下示例返回TRUE:

IsEmpty(Measures.CurrentMember)

相关文档
最新文档