BI开发之——Mdx基础语法(2)
结合webcast中老师的讲解,现在把基础语法应用通过几个案例应用如下: 一、维度的概念
上图中一个维度(Dimension):Region 改为度下有四个级别(Levels):country、province、city、county,他们属于层次集合(Hierarchy) 通过维度和级别我们可以定义一个元素(Member)如: Levels(1).members(2)=china Levels(2).members(3)=shanghai 二、维度建模
上图中时一个维度建立的模型(cube) 该图中包含四个维度(Dimension):时间、源、路线、度量方式值(Measure) 源维度中包含两个级别:东半球、西半球 级别西半球中包含两个成员:北美洲、南美洲 图中一个方框就是就是一个单元:上图中240的单元表示为: (? Sorce.[EasternHemisphere].Africa, ????Time.[2ndhalf].[4thquarter],sans-serif; font-size:14.4444446563721px; line-height:23.3333339691162px"> ????Route.Air,sans-serif; font-size:14.4444446563721px; line-height:23.3333339691162px"> ???Mesures.Packages ?) 图中的元组即表示一连串的方框组成的长方形集合: {(Time.[1sthalf].[1stquarter])}记住大括号不能去掉 元组集合就是有元组组合而成: { (Time.[1sthalf].[1stquarter]),sans-serif; font-size:14.4444446563721px; line-height:23.3333339691162px"> ??Time.[2ndhalf].[3rdquarter] } 三、成员名称
上图中可以看出通过坐标值可以定义出每个成员的名称 比如图中黑色的成员名称: (Products.Clothing,Measures.Units,Time.98) 这里面有个通用的技巧,就是可以根据一个成员名称追踪到旁边的成员
四、Mdx语法结构?
?和SQL语法结构类似,但是在实际应用中集(Set)往往会很长 ?来看一个Mdx查询语句,我们想查询MKAS集市中上海和北京在十三号和十四号的实际销售量 ?SELECT ??? {[Dim Region].[City].&[上海],[Dim Region].[City].&[北京]} ?ON COLUMNS,sans-serif; font-size:14.4444446563721px; line-height:23.3333339691162px"> ??? {[Dim Time].[Day Of Month].&[13],[Dim Time].[Day OfMonth].&[14]} ?ON ROWS FROM ??? [MKAS] WHERE ([Measures].[Fact Ind Count]) 这里面”于“&符号可以标记出其父级中的元素集合中的值也叫做元素值。 五、切片的定义 切片(Silce)是一种操作方法,基于Tuple,而非集合(set) ?
?如上图中可以看出元组(Tuple)表示为 (0≤x≤5,1≤y≤3)? 数据集(Set) {0≤X≤1,2≤X≤3,4≤X≤5} 切片(Slice) ?(X=1,Y=0) Mdx和SQL的区别 引用维度的能力:SQL只能引用2个维度,MDX可以引用多个维度 创建查询的过程:SQL编写1个或多个表的查询,MDX编写对一个多维数据集的查询 Select子句:SQL定义查询的列布局,MDX定义几个轴维度 Where子句:SQL定义查询的行布局,筛选查询返回的数据,MDX将数据限定于特定维度/成员查询返回的数据切片 语法功能:SQL相对较弱,简单,MDX更强大,更复杂 结果集视觉形象:SQL直观,Mdx不直观 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |