SSAS中度量值组之间的父子关系
我很难弄清楚我应该如何在SSAS中实现我的测量组之间的亲子关系。本质上,我只是尝试重新创建一个标准的SQL联接,以便在使用子组中的键时可以在父组中查找度量值 例如,假设我有以下维度:SSAS中度量值组之间的父子关系,ssas,parent-child,mdx,olap,dimensions,Ssas,Parent Child,Mdx,Olap,Dimensions,我很难弄清楚我应该如何在SSAS中实现我的测量组之间的亲子关系。本质上,我只是尝试重新创建一个标准的SQL联接,以便在使用子组中的键时可以在父组中查找度量值 例如,假设我有以下维度: 母公司 子(FK:父ID) 时间 我有以下度量组 ParentFact(键:ParentID,TimeID-随时间推移与父级相关的度量) ChildFact(键:ChildID,TimeID-随时间变化与孩子相关的度量) 我没有为任何事实数据表创建任何特定维度 最后,我只想运行如下查询,列出与父表中的度量值
- 母公司
- 子(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的度量值,或者我尝试执行的操作是否需要这些度量值?这里不需要创建两个事实
由于明显的粒度问题,我认为您不应该尝试创建单个事实表 我认为应该在多维数据集定义中添加维度关系,在子事实和父维度之间,使用现有的FK列
ParentID作为度量标准的唯一有效用途可能是获得一个不同的计数。通过创建一个事实表,这不会在我的父母和孩子之间创建一对一的关系吗?当我按父ID分组时,这将如何影响父事实的聚合?在这种情况下,您必须按ParentID、ChildID分组。