SSAS中的MDX脚本

MDX中的脚本可以看作是Analysis Services中已有计算单元功能的一个升级版本,但是它并不能完全取代计算单元。

MDX脚本:就是一串能够对SSAS2005多维数据集中数据产生影响的命令。使用这些命令可以创建计算成员,命名集,计算单元以及本书中其他地方所处理的所有主体。MDX脚本中的每条命令都必须以分号结尾。

一个多维数据集可以拥有0个一个或者多个与之关联的MDX脚本,如果某个多维数据集中没有MDX脚本,那么服务器将会假设他拥有一个仅包含单条CALCULATE()语句的空脚本。当一个多维数据集中包含多个MDX脚本的时候,在任何时刻都只能有一个处于活跃状态。处于活跃状态的MDX脚本是多维数据集定义中省略了<DefaultScript>标记或者将其设置为真的第一个MDX脚本。在使用VS创建一个多维数据集的时候,将会自动地向其添加一个MDX脚本,而且您无法对其进行删除操作或者创建其他的MDX脚本,这个MDX脚本可以在VS中多维数据集编辑器打开的时候通过选择Calculations标签来查看和进行修改。

CALCULATE语句将会指导多维数据集将每个度量值中的所有数据从粒度的最底层到较高层聚合起来。因为基本上所有的多维数据集都希望将数据进行这样的处理,因此该命令总是被默认执行,可以把cube中的计算成员的 CALCULATE  注释掉,之后你就会发现在ALL上不会有数值

子多维数据集

MDX脚本的实际用途在于它可以在多维数据集空间中改写值。这个步骤包括两个:1首先您必须定义在多维数据集中所期望改写的值,然后要么需要提供新的值,要么需要给出一个返回新值得mdx表达式

//calculate;

([Measures].[NPS],[Time].[P Year].&[2012],[Dim OC].[Plant Type].&[CP])=50;

可以定义在计算成员那个里面

实际上,在定义多维数据集中想要修改的部分的时候,我们并不是在定义一个元组,而是定义了一个子多维数据集。

元组是一列独立的成员,这些成员来自定义多维数据集中一个域的各个维度。而一个子多维数据集同样也是来自不同维度的一列独立的成员或者成员集,

只不过这些维度可以更容易地定义多维数据集空间中的一个更大子集。

( not reach the end and there will be continus)

原文地址:https://www.cnblogs.com/honkcal/p/2640041.html