2011-07-07 78 views
1

我有這樣的一個表:自加盟SSAS

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

然後,我需要得到關聯規則之間的人的工作父母的城市

我已經使用了自引用和定義了大小寫/嵌套表格,但是在依賴圖的結果中,人的工作或城市與家長的工作或城市之間沒有區別!

SSAS項目中針對此問題的最佳解決方案是什麼?

回答

0

不知道你想什麼來acheive但下面的SQL將是一個很好的起點:

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

謝謝,但我需要SQL Server分析服務關聯規則而不是Linq quey的解決方案。 – ARZ

1

SSAS層次應該解決您的問題。然而,在不瞭解更多關於您的特定情況的情況下,很難確切地說明如何使用它們。

1

我在自己的工作中遇到了類似的需求。到目前爲止,我只調查了 SQL Server分析服務表格模型。一旦我完成了多維模型的研究,我會用更多的信息更新這個答案。

根據Relationships (SSAS Tabular),SSAS表格模型不支持自連接(請參閱下面的相關引用)。你最終不得不做的是將它們的父元素和他們的子元素的每個級別作爲單獨的模型表。一旦擁有模型表格,您可以使用圖表視圖來繪製相關關係。

自連接和循環

自聯接不在表格模型表允許的。自連接是表和自身之間的遞歸關係。通常用於定義父子層次結構的自連接是 。例如,您可以將 加入到自己的Employees表中,以生成顯示業務管理鏈的 的層次結構。

模型設計者不允許在模型中的 關係中創建循環。換句話說,以下幾組 關係是被禁止的。 +

表1中,列中的表2,f欄

表2中,列F至表3中,列n

表3中,列n表1,欄一

如果您嘗試創建會導致創建循環 的關係,則會生成錯誤。