如何在Root上存在重复属性时在SSAS中创建层次结构

时间:2012-11-20 11:41:21

标签: ssas ssas-2008

我有一个Dimensional表结构,类似于以下内容:

enter image description here

理想情况下,层次表示应该是

CodeClassDesc - > CodeDesc

所以A将成为A和B的父母; B将成为Analysis Server Cube中A,B和C的父级。问题是因为CodeClassDesc在表中有多个条目,它在我的Cube中生成多个重复的Parent,每个Parent有一个相应的子元素,这不是我认为真正的层次结构。或者至少不是我期待的结果。

我相信这可以在SSAS中实现,而不必通过VIEW操作表中的数据,但我不知道我缺少什么。

我已经尝试将CodeClassDesc和CodeDesc字段定义为复合键,但这不起作用,但我几乎可以肯定有一种方法可以做到这一点。

2 个答案:

答案 0 :(得分:0)

在尝试了所有可能的方法排列方法以获得解决方案后,我得出结论,所需属性的规范化是解决每个相应子元素具有多个Parent条目的问题的唯一方法。

所以我使用DISTINCT SELECT创建了表的VIEW,该DISTINCT SELECT仅包含Cube中DSV(DataSource View)中的CodeClass和CodeClassDesc字段。然后我将CodeClass字段设置为逻辑主键,并在它与主表的CodeClass字段之间创建关系。

然后我使用VIEW的CodeClassDesc字段在我的Dimension中创建顶级父级,这为每个值只提供了1个不同的记录;并从表中添加CodeDesc字段以创建子关系。像魅力一样工作,所以我想答案必须是,如果源有多个记录,你就不能创建一个由每个父单个值组成的父层次结构。

答案 1 :(得分:0)

在维度结构中,您应该更改属性" CodeClassDesc"的属性KeyColumn。到包含" CodeClassDesc"的复合键和#34; CodeDesc"然后更改NameColumn属性以显示自己