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。
SSAS维度设计中CustomRollupColumn的用法-自定义聚合方式的更多相关文章
- SSAS 度量值中的distinct count局聚合方式会数为null的值
我们来看一个例子 Analysis Services: For Distinct Count measure NULL = 0 If you are to look at the table of v ...
- flex中dispatchEvent的用法(自定义事件) .
Evevt和EventDispatcher类在as3的事件机制中是很重要的角色,dispatchEvent()是EventDispatcher类的一个事件发送方法,它可以发送出Event类或其子类的实 ...
- 微软BI 之SSAS 系列 - 基于雪花模型的维度设计
基于雪花模型的维度以下面的 Product 产品与产品子类别,产品类别为例. DimProduct 表和 DimProductSubcategory 表有外键关系,而 DimProductSubcat ...
- 微软BI 之SSAS 系列 - 自定义的日期维度设计
SSAS Date 维度基本上在所有的 Cube 设计过程中都存在,很难见到没有时间维度的 OLAP 数据库.但是根据不同的项目需求, Date 维度的设计可能不大相同,所以在设计时间维度的时候需要搞 ...
- jQuery中Animate进阶用法(一)
jQuery中animate的用法你了解多少呢?如果仅仅是简单的移动位置,显示隐藏,哦!天哪你在浪费资源!因为animate太强大了,你可以有很多意想不到的用法!让我们一起研究一下吧~~ 首先要了解j ...
- SSAS维度上有多个表的注意事项
在Sql Server Analysis Service中维度上有多张表(大于一张表)时,一定要注意将第二张表开始用到维度属性中的KeyColumns下的NullProcessing要设置为Unkno ...
- Delphi中ClientDataSet的用法小结
Delphi中ClientDataSet的用法小结 TClientDataSet控件继承自TDataSet,其数据存储文件格式扩展名为 .cds,是基于文件型数据存储和操作的控件.该控件封装了对数据进 ...
- 数据库设计中的Soft Delete模式
最近几天有点忙,所以我们今天来一篇短的,简单地介绍一下数据库设计中的一种模式——Soft Delete. 可以说,该模式毁誉参半,甚至有非常多的人认为该模式是一个Anti-Pattern.因此在本篇文 ...
- 一个CSS中Z-index的用法
一个CSS中Z-index的用法 CSS教程:彻底掌握Z-index属性 大多数的CSS属性都很容易使用.常常,当您对标记语言的元素使用CSS属性时,产生的结果会随着您刷新页面而立即呈现.而另 ...
随机推荐
- GTW likes gt(BC 模拟 or 优先队列)
GTW likes gt Accepts: 54 Submissions: 782 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 13107 ...
- Java程序员需要学习的知识点
Java是全世界最受欢迎的3大编程语言之一,它可以开发出许多实用的WEB应用程序和桌面应用程序,更重要的一点,Java是跨平台的语言——编写一次,可以再任何地方运行.另外,Java也很容易入门,如果你 ...
- ExtJs Model之convert的使用
convert: function(value,record){} value:为当前属性的值,record.get('属性')用来获取其他属性的值. 以下案例是:将年龄减去2. Ext.define ...
- 如何检索Android设备的唯一ID
关于本文档 Android的开发者在一些特定情况下都需要知道手机中的唯一设备ID.例如,跟踪应用程序的安装,生成用于复制保护的DRM时需要使用设备的唯一ID.在本文档结尾处提供了作为参考的示例代码片段 ...
- css案例学习之span边框实现的特殊效果
bottom left bottom right top left top right 配合颜色来使用,实现一些神奇的效果 #menu a span{ height:; width:; /*borde ...
- netstat和telnet命令在Windows7中的用法(转载)
在网络方面我们常常会用到如下命令: (1)ping命令:我们常常用来判断2台或2台以上的机器间是否网络连通. ping 192.168.1.88 -t 如果想看任何命令的参数是什么意思,我们只需要:命 ...
- First Missing Positive 解答
Question Given an unsorted integer array, find the first missing positive integer. For example,Given ...
- Bucket Sort
(referrence: GeekforGeeks) Bucket sort is mainly useful when input is uniformly distributed over a r ...
- python连续爬取多个网页的图片分别保存到不同的文件夹
python连续爬取多个网页的图片分别保存到不同的文件夹 作者:vpoet mail:vpoet_sir@163.com #coding:utf-8 import urllib import ur ...
- ZOJ2913Bus Pass(BFS+set)
Bus Pass Time Limit: 5 Seconds Memory Limit: 32768 KB You travel a lot by bus and the costs of ...