我很难弄清楚我应该如何在SSAS中的度量组之间实现父子关系。基本上我只是尝试重新创建一个标准的SQL连接,这样我就可以在我的子组中使用键时在我的父组中查找度量。
例如,假设我有以下维度:
我有以下措施组
我没有为任何事实表创建任何特定尺寸。
最后,我只想运行这样的查询,列出我的Child表中与我父表中的度量相关联的度量:
SELECT
{
[ChildMeasure]
, [ParentMeasure]
} ON COLUMNS
, [Child].Children ON ROWS
FROM
[MyCube]
WHERE
[Time].[100]
当此查询运行时,正确列出子行以及时间ID 100的相应度量值。不幸的是, ParentMeasure 完全相同,并且似乎是此值的聚合时间ID为100的所有父母。我希望此列显示每个孩子在时间ID 100的相关父母的价值。
我在这里做错了什么?我是否需要为每个FactTable创建FactDimensions,并以某种方式将它们联系起来?我应该在我的数据源视图中创建父和子之间的关联吗?这会使它成为Snowflake架构,我认为我应该避免这种架构吗?
作为旁注,我的ChildFact表实际上包含ParentID作为度量之一,因为它位于数据源的关系表中(可能是由于DB开发人员之前的一些非规范化工作)。我应该删除在我的事实表中实际为FK的任何措施,还是以某种方式需要我想要做的事情?
答案 0 :(得分:2)
由于明显的粒度问题,我认为您不应该尝试创建单个Fact表。
我认为您应该使用现有的FK列在您的Child Fact和Parent Dimension之间的Cube定义中添加Dimension Relationship。
将ParentID作为衡量标准的唯一有效用途可能是获得一个不同的计数。
答案 1 :(得分:1)
这里没有必要创建两个事实。