版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xiaocxks/article/details/52668162
MDX基本多维表达式查询就是SELECT语句
1)指定结果集
select语句可指定一个结果集,其中包含从多维数据集中返回的多维数据子集
结果集中包含的轴数,最多可以指定128个轴
(但一般用不了这么多,大概就5个,如果用数字表示,0,1,2,3,4
也可以使用COLUMNS,ROWS,PAGES,SECTIONS,CHAPTERS别名
或者使用AXIS(0),AXIS(1),AXIS(2) 等,
MDX不能跳过查询轴,就是包括一个或多个查询轴的查询不能排除编号较低的轴或中间轴)
在各个轴上的成员或元组集
包括多维数据集的名称
包括在切片器轴上的成员或元组集
2)基本单位
成员:[ ]
元组:()
集:{ }
3)指定查询轴的内容
[ NON EMPTY ] Set_Expression [ <SELECT dimension property list clause> ] [<HAVING clause>]ON {Integer_Expression |AXIS( Integer_Expression ) |{COLUMNS | ROWS | PAGES | SECTIONS | CHAPTERS}}
ON后面的表示轴数
NON EMPTY从轴中删除所有空元组
HAVING自居基于特定条件筛选某个轴的内容
例如
SELECT {[Measures].[Internet Sales Amount]}ON COLUMNS,NON EMPTY{[Date].[Calendar].[Date].MEMBERS}HAVING [Measures].[Internet Sales Amount]>15000ON ROWSFROM [Adventure Works]
4)指定切片器轴的内容
切片器轴将对SELECT语句返回的数据进行筛选,限定返回的数据
<SELECT slicer axis clause> ::= WHERE Set_Expression
如果要使用来自同一层次结构的多个成员,需要在where子句中包括一个集
SELECT {[Measures].[Internet Sales Amount]} ON COLUMNS,[Date].[Calendar Year].MEMBERS ON ROWSFROM [Adventure Works]WHERE({[Customer].[Customer Geography].[Country].&[United States], [Customer].[Customer Geography].[Country].&[United Kingdom]}, [Product].[Category].&[1])
上述查询说明了针对在 Category Bikes 中购买了产品并居住在美国或英国的客户的所有日历年的 Internet Sales Amount 的值
5)
使用members函数指明MDX将使用层次结构或级别的成员来构造一个集
使用Members函数意味着不必再MDX查询中显示声明特定层次结构或级别的每个成员