MDX基础.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MDX基础 一、什么是MDX MDX是一种和SQL类似的语言,它也可以用于查询、计算和定义一些元数据。只不过SQL是基于OLTP的,而MDX是基于OLAP的,也就是说,MDX是对多维数据进行查询的。和其它的OLAP语言不同,MDX并不完全是一种报告形式语言。但用MDX查询出来的结果仍然可以在客户端程序中以表格形式进行展现。MDX和SQL一样,也有很多不同功能的API来支持MDX。其中包括对象链接和为在线分析处理的内嵌数据功能(也就是OLE DB for OLAP)、ADO MD、ADOMD.Net、XMLA(XML for Analysis)等。OLE DB for OLAP的规范描述了MDX查询和将被查询信息发送给客户端的数据结构之间的完整关系。 ? 二、第一次使用MDX ??? 在本节中,我们将按着步骤来执行一系列简单的MDX查询。通过对本节的学习,读者可以很轻松地将MDX的概念转化为实际的例子。 ??? 我们可以想象有一个非常简单的立方体,这个立方体有三个维度,分别代表时间、地理位置和销售业绩。我们给这个立方体起名为Sales。现在让我们看看下面的一个表格。这个表格中的数据是在2007年头两个季度在北京的销售量和销售额。这个表格有两个维度,就象一个电子表格一样,但是在第一列表示了两个维度,因此,这个表格实际上是三个维度。表格如表1-1所示: 表1-1 ? 销售金额 销售数量 Q1, 2007 102,949.10 3,462 Q2, 2007 89,125.12 2,156 ? Q1,2007 Q2,2007 Q3,2007 MA 96,949.10 12,688.40 ? 104,510.20 ? CT 24,660.70 ? 91,025.00 ? 16,643.90 { [Time].[Q1, 2005], [Time].[Q2, 2005], [Time].[Q3, 2005] } on axis(0), {[Customer].[MA], [Customer].[CT] } on axis(1) axis(n)的表达形式确定这些成员将被放到序号为n的辆上。对于没有名称的轴,必须使用索引来引用轴。我们还可以在查询中混合使用索引和名称,代码如下: SELECT {[Customer].[MA], [Customer].[CT] } on rows, { [Time].[Q1, 2005], [Time].[Q2, 2005], [Time].[Q3, 2005] } on axis(0) FROM Sales WHERE ( [Measures].[Dollar Sales] ) 然而,一个使用轴的查询还必须使用索引为0的轴,并且一个使用轴2的查询必须使用轴1和0。否则将会出现错误。如以下的代码将抛出一个错误: SELECT {[Customer].[MA], [Customer].[CT] } on axis(2), { [Time].[Q1, 2005], [Time].[Q2, 2005], [Time].[Q3, 2005] } on axis(0) FROM Sales WHERE ( [Measures].[Dollar Sales] ) 四、MDX语法基础 ??? 在这一节让我们学习一下MDX频繁使用的一些操作符和函数。我们将介绍它们,并描述它们常用的使用方法。下面是本节将介绍的内容。 1.逗号(,) and 冒号 (:) 2..Members 3..Children和 Descendants() ? 逗号(,) and 冒号 (:) 到现在为此我们已经看到逗号操作符被应用到了Mdx语句中;现在让我们学习更多的 关于逗号的知识。首先我们可以使用逗号来分割组件和它的属性。如下面的代码如示: ? { [Time].[January 2007], [Time].[February 2007], [Time].[March 2007] } ??? 上面语句的功能是列出2007年头三个月数据。 ??? 在每一个维度的第一层的成员通常按着一个顺序排列(通常是按着key或是名称进行排列)。根据这个顺序,我们可以将两个成员中间的数据作为一个集合列出。而集合的两端就是两个成员。这两个成员使用冒号(:)分割。这有些和在Excel中指定单元格之间的范围类似。如下面的查询的结果是列出2005年9月和2007所10月的月份以及在产生目录中从Tools到Audio的数据。代码如下: SELECT { [Time].[Sep,2005] : [Time].[Oct,2007] } on columns, { [Product].[Tools] : [Product].[Home Audio] } on ro

文档评论(0)

中华书局 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档