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属性时,产生的结果会随着您刷新页面而立即呈现.而另 ...
随机推荐
- 网易2014校园招聘杭州Java笔试题
10) ABC http://soft.chinabyte.com/os/56/12516056.shtml 11) BD. 12) AC. http://blog.sina.com.cn/s/blo ...
- 阿里巴巴集团2013实习生招聘技术类笔试题(B)
一.单向选择题 1.在常用的网络协议中,___B__是面向连接的.有重传功能的协议. A. IP B. TCP C. UDP D. DXP 2.500张骨牌整齐地排成一行,按顺序编号为1.2.3... ...
- 怎样使用淘宝npm镜像
淘宝的 NPM 镜像是一个完整的npmjs.org镜像.你可以用此代替官方版本(只读),同步频率目前为 15分钟 一次以保证尽量与官方服务同步. 当前 registry.npm.taobao.org ...
- OSA-MAC: A MAC Protocol for Opportunistic Spectrum Access in Cognitive Radio Networks
This full text paper was peer reviewed at the direction of IEEE Communications Society subject matte ...
- js中获取键盘事件
<script type="text/javascript" language=JavaScript charset="UTF-8"> docume ...
- uva 101 by sixleaves
这是一道很好的模拟题,用vector<int> p[maxn],建立模型,映射为maxn个堆.主要要掌握vector模拟堆操作的简单方法.接下来得思路是自顶向下的方式,逐步完善程序.首先根 ...
- openstack vm image
1,openstack 基于iso生成镜像
- C语言结构体的内存对齐问题
在C语言开发当中会遇到这样的情况: #include <stdio.h> struct test { int a; char b; }; int main(int argc, const ...
- 给Visual Studio更替皮肤和背景图
给Visual Studio更换皮肤和背景图 1.先安装更换皮肤的插件 VS菜单栏里面找到:工具>扩展和更新>联机>搜索: Theme Editor 下载并安装: 安装后先不着 ...
- 水池数目(DFS)
水池数目 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 南阳理工学院校园里有一些小河和一些湖泊,现在,我们把它们通一看成水池,假设有一张我们学校的某处的地图,这个地 ...