是否可以在 SSAS 中没有桥接表的情况下进行多对多关系?我有一个带有 SubjectId 的事实表和另一个带有 FK_SubjectId 和许多其他键(与其他维度相关)的事实表。
在我的视图数据源中,两个事实表相互连接,但我不能在维度选项卡中选择多对多关系?
我可能错过了什么?
非常感谢。
是否可以在 SSAS 中没有桥接表的情况下进行多对多关系?我有一个带有 SubjectId 的事实表和另一个带有 FK_SubjectId 和许多其他键(与其他维度相关)的事实表。
在我的视图数据源中,两个事实表相互连接,但我不能在维度选项卡中选择多对多关系?
我可能错过了什么?
非常感谢。
您至少必须定义一个中间维度。这可以基于第一个事实表来定义,并且可以将其SubjectId
作为唯一的属性。这对用户来说可能是不可见的。但是 Analysis Services 需要一个用于多对多关系的中间维度。
您可以创建一个公用表。这个意思; 例如,您有两个事实表创建一个仅包含事实主键的表。像这样;
选择 id as fact1ID , id as fact2ID from FactTable1 As F1 inner join FactTable2 As F2 ON F1.FK_ID = F2.ID
并在这个隐藏的表格中创建您的度量。当你写你的度量公式时,不要使用 COUNT,使用 DISTINCTCOUNT。然后创建从这个公用表到事实表的关系。现在您的事实表将像维度表一样工作。通过这种方式,您可以从彼此之间的所有其他维度表中获取报告。