SSAS中度量值组之间的父子关系

SSAS中度量值组之间的父子关系,ssas,parent-child,mdx,olap,dimensions,Ssas,Parent Child,Mdx,Olap,Dimensions,我很难弄清楚我应该如何在SSAS中实现我的测量组之间的亲子关系。本质上,我只是尝试重新创建一个标准的SQL联接,以便在使用子组中的键时可以在父组中查找度量值 例如,假设我有以下维度: 母公司 子(FK:父ID) 时间 我有以下度量组 ParentFact(键:ParentID,TimeID-随时间推移与父级相关的度量) ChildFact(键:ChildID,TimeID-随时间变化与孩子相关的度量) 我没有为任何事实数据表创建任何特定维度 最后,我只想运行如下查询,列出与父表中的度量值

我很难弄清楚我应该如何在SSAS中实现我的测量组之间的亲子关系。本质上,我只是尝试重新创建一个标准的SQL联接,以便在使用子组中的键时可以在父组中查找度量值

例如,假设我有以下维度:

  • 母公司
  • 子(FK:父ID)
  • 时间
我有以下度量组

  • ParentFact(键:ParentID,TimeID-随时间推移与父级相关的度量)
  • ChildFact(键:ChildID,TimeID-随时间变化与孩子相关的度量)
我没有为任何事实数据表创建任何特定维度

最后,我只想运行如下查询,列出与父表中的度量值关联的子表中的度量值:

SELECT
    {
        [ChildMeasure]
        , [ParentMeasure]        
    } ON COLUMNS
    , [Child].Children ON ROWS
FROM
    [MyCube]
WHERE
    [Time].[100]
运行此查询时,将正确列出子行以及时间ID 100的相应度量值。不幸的是,ParentMeasure是相同的,并且似乎是时间ID为100时所有父级上该值的聚合。我希望此列显示时间ID为100时每个子级的关联父级的值

我做错了什么?我是否需要为每个FactTable创建FactDimensions,并以某种方式将它们关联起来?我应该在我的数据源视图中建立父级和子级之间的关联吗?这会使它成为雪花模式吗?我想我应该避免这样做


作为旁注,我的ChildFact表实际上包含ParentID作为度量之一,因为它位于数据源中的关系表上(可能是由于DB开发人员之前的一些非规范化工作)。我是否应该删除事实表中实际为FKs的度量值,或者我尝试执行的操作是否需要这些度量值?

这里不需要创建两个事实

  • 创建单个事实表(ParentID、ChildID、TimeID)
  • 创建三维DimParent、DimChild、DimTime
  • 事实表的FK将参考各自的维度表
  • 此外,请检查属性关系—事实是如何与维度分割的

  • 由于明显的粒度问题,我认为您不应该尝试创建单个事实表

    我认为应该在多维数据集定义中添加维度关系,在子事实和父维度之间,使用现有的FK列


    ParentID作为度量标准的唯一有效用途可能是获得一个不同的计数。

    通过创建一个事实表,这不会在我的父母和孩子之间创建一对一的关系吗?当我按父ID分组时,这将如何影响父事实的聚合?在这种情况下,您必须按ParentID、ChildID分组。