首先 ,给大家看一下创建父子维度时所要使用的维表,如下图所示。注: 这里需要说明一下,因为我们要做的是父子维度,所以我们要使用的表必须要有父子关系,即表中要有"上级代码"这一列。
我们现在开始制作,首先打开SQL Server Business Intelligence Development Studio工具。
1、再做维度之前我们需要做以下几步(如果你已经熟悉请跳过,如果不知道如何操作,请点击相应链接):
1)、新建项目;
2)、建立数据源;
3)、在数据源视图中中添加表;
2、新建维度
在维度上—右键—新建维度
选择使用现有表,点击下一步,如图:
如上图所示,我们有4项工作要做:
★选择维度对应的数据源视图
★选择维度对应的主表
★选择维度的主键值,如果有多列主键,请选择多列,
★选择维度的显示名称。
完成后,点击下一步,进入下列界面
选择需要的维度属性,单击下一步,完成了我们的维度制作。
右键处理一下 我们可以浏览一下,但我们会发现,不是我们所要的结果,虽然,维度出来了,但没有相应的父子关系。在上级代码上—右键—设置属性用法—父级,如图:
处理维度,处理成功后,浏览维度,浏览方法如下。在维度上右键—浏览,如图:
我们可以看到
哈哈,做到这里可以看到,现在的维度按我们所预想的层级关系显示了,恭喜你,成功了,但是细心的同学会发现一个问题,就是"中国"下级,还有个"中国","北京"的下级还有个"北京",也就是说多了个本级值的显示。在某些时候,我们是不需要这样显示的,即:上级名称不在下级区域显示。如何处理呢?跟我来,还需要一个很简单的设置。好,我们回到维度界面,在"上级代码"上右键,选择属性,如图:
选择属性后,将弹出属性窗口(在界面的右下角,不是太好找哦)呵呵,如图:
找到第一个属性MembersWithData,这个属性默认是NonleafDataVisible,我们要修改为NonleafDataHidden,意思是将本级在列表中隐藏。选择完成后,处理维度。之后,浏览维度。
需要安装Oracle的客户端,并链接对应的Oracle数据源(注意:服务命名后续要用到)。
在SSAS2008中,数值的数据类型有两种"System.Decimal"和"System.Int64",必须保持数据类型一致才可以建"关系",因此,对于Oracle,可以通过To_number()函数把"System.Int64"变成"System.Decimal"。
处理Cube时出现该错误信息
OLAP 存储引擎中存在错误: 为非重复计数记录指定的排序顺序不正确。 OLAP 存储引擎中存在错误: 处理"TJ VIEW TX"分区时出错,该分区属于 YTSSAS 数据库的"他项"多维数据集的"度量值(件数)"度量值组:YWh。
解决办法
Google and in particular Eggheadcafe came to the rescue with a solution:
值 | 说明 |
---|---|
ProcessFull | 删除受影响的对象中的所有数据,然后处理该受影响的对象。 |
ProcessAdd | 将新数据添加到受影响的对象。 |
ProcessUpdate | 刷新受影响的对象中的数据。 |
ProcessIndexes | 创建或重新生成受影响的对象中的索引和聚合。 |
ProcessScriptCache | 如果已处理该多维数据集,则服务器将重新生成 MDX 脚本缓存。 如果未处理,将引发一个错误。 |
ProcessData | 仅处理受影响的对象中的数据。 |
ProcessDefault | 检测受影响的对象的状态,然后对受影响的对象执行合适的处理选项,使之完全优化并使它恢复到完全处理的状态。 |
ProcessClear | 删除受影响的对象和所有相关对象中的数据。 |
ProcessStructure | 仅处理受影响的对象的结构。 |
ProcessClearStructureOnly | 仅清除受影响的对象中的数据。 |