SSAS维度设计中CustomRollupColumn的用法-自定义聚合方式

      CustomRollupColumn说明:指定包含多维表达式的列,该表达式可用于聚合特性的度量值。这个属性覆盖给定度量值的AggregateFunction的属性。

  解释:通常我们的度量值,默认是按照总计的聚合方式聚合的,当然在SSAS中还有很多种内置的聚合方式(如图),但是,这也许不能满足我们实际需要的聚合方式;例如:我们接下来要举得里实例中的聚合方式。 CustomRollupColumn这个属性就会覆盖给定度量值的AggregateFunction的属性按照自定义的聚合方式进行聚合。

1、我们首先要建立一个维度表:先不要理会Custom里面的值,C作为主键。

2、接着建立与之对应的事实表:

3、建立一个简单的多维数据集:这个过程就不说了,结果如图:

 

4、我们的维度表设计:将P标志为父子键,以便SSAS自动创建父子维度,另外将C的NameColumn属性设置为Cname以便显示中文。其他属性不变,处理之后,浏览维度是这样的:

5、浏览此时的多维数据集:按照下图的方式浏览数据,此时的净收入:1100 =9000+200,净收入=总收入+总投入,明显跟现实不符合,这时候需要更改SSAS的默认的聚合方式,使净收入=总收入-总投入,也就是 7000=9000-200;

 

6、修改聚合方式:是净收入按照我们预想的方式进行聚合,这是后就用到了维度的 CustomRollupColumn属性了。首先明确,这个属性属于那个成员?简单想想就知道这个属性属于此实例中父子层级;我们需要的聚合方式是:净收入所对应的量值=总收入对应的量值-总投入对应的量值;这时候,我们需要将维度表做些手脚了,就如前面的维度表中将净收入的Custom字段填入图中的内容(就表示净收入所对应的量值=总收入对应的量值-总投入对应的量值),此时将维度中P的 CustomRollupColumn属性设置为Custom字段即可,如图:

此时,在处理之后,浏览维度会发现净收入处多出一个ƒ符号,其他没有什么变化:

 

7、最后在按照第5步骤所做的一样浏览多维数据集,会发现净收入=总收入-总投入,也就是7000=9000-2000;达到了我们期望:这就是我们说的CustomRollupColumn用法。

 

补充:与CustomRollupColumn属性对应的属性CustomRollupPropertiesColumn是同样的用法:会将关系表中的一列作为输入,用于定义单元的属性,例如背景颜色和前景颜色等。还有一种自定义汇总的方法使用UnaryOperatorColumn

 

posted @ 2016-04-22 21:13  ABO-阿博  阅读(1264)  评论(0编辑  收藏  举报