自我加入SSAS

时间:2011-07-07 08:14:54

标签: sql-server data-mining ssas bids

我有一张这样的表:

PersonId    Job    City    ParentId
---------   ----   -----   --------
101          A      C1      105
102          B      C2      101
103          A      C1      102

然后我需要在人的工作父母的城市之间获得关联规则。

我使用了自引用并定义了案例/嵌套表,但在依赖图的结果中,人的工作或城市与父母的工作或城市没有区别!

SSAS项目中此问题的最佳解决方案是什么?

3 个答案:

答案 0 :(得分:1)

SSAS层次结构应该解决您的问题。但是,如果不知道更多关于你的具体情况的话,很难确切地说出如何使用它们。

答案 1 :(得分:1)

我在自己的工作中遇到了类似的需求。到目前为止我只是调查过 SQL Server Analysis Services表格模型。一旦我完成了对多维模型的研究,我将用更多信息更新这个答案。

Relationships (SSAS Tabular),SSAS表格模型不支持自联接(参见下面的相关引用)。您最终要做的是将父元素组和子元素的每个级别分解为单独的模型表。获得模型表后,可以使用图表视图绘制相关关系。

  

自我加入和循环

     

表格模型表中不允许自联接。自我加入是一个   表与自身之间的递归关系。自我加入   通常用于定义父子层次结构。例如,你可以   将Employees表连接到自身以生成显示的层次结构   一个企业的管理链。

     

模型设计者不允许在其中创建循环   模型中的关系。换句话说,以下一组   关系是被禁止的。 +

     

表1,列a至表2,列f

     

表2,列f至表3,第n列

     

表3,表1的第n列,第a列

     

如果您尝试创建一个会导致循环的关系   创建后,会生成错误。

答案 2 :(得分:0)

不确定您要实现的目标,但以下SQL将是一个很好的起点:

select c.PersonId , p.City 
from ptable c, ptable p
where c.ParentId = p.PersonId