学习MDX首先要了解MDX 的一些重要概念,下面将通过一个MDX查询来描述单元、元组、和集的概念。
1 准备数据
i. SQL Server2005数据库;
ii. …/Program Files/Microsoft SQL Server/90/Tools/Samples/AdventureWorks Analysis Services Project/Enterprise目录下打开Adventure Works.sln项目,部署此项目;
iii. 开始 —〉所有程序 —〉Microsoft SQL Server 2005 —〉SQL Server Management Studio —〉在Server type 选择Analysis Services —〉右键点击Adventure Works DW数据库新建MDX查询—〉将MDX代码拷贝到查询编辑器 —〉分析、执行MDX;
select
[Measures].[Internet Sales Amount]
on columns,
{
/* 元组中有两个成员分别来自Date维度的[Calendar Year]属性层次的[2002]成员
和[Product]维度的[Category]属性层次的[1]成员*/
([Date].[Calendar Year].&[2002],[Product].[Category].&[1]),
([Date].[Calendar Year].&[2003],[Product].[Category].&[3])
}//{}集中有两个元组
on rows
from [Adventure Works]
2 分析查询
查询效果如下:
i. 集:MDX查询语句语法中使用大括号{}表示集
注意:集成员必须来自同一维度的同一层次结构
例如
{
[Geography].[Country].&[Australia],
[Geography].[Country].&[Canada]
}
两个成员同来自[Geography].[Country]层次。
ii. 元组:语句中用圆括号()表示,成员可以来自一个或者多个维度层次
例如:([Date].[Calendar Year].&[2002],[Product].[Category].&[1]);
注意:不能有两个员来自同一维度中的同一层次,如果写成([Date].[Calendar Year].&[2002], ([Date].[Calendar Year].&[2003]) 查询分析器就会报错。“Calendar Year”层次结构在该元组中出现了多次。