Sql server 2005 SSAS OLAP MDX及其关系
我是OLAP新手,仍然不知道如何在两个或多个实体之间创建关系 我的立方体是基于视图的。为了简单起见,我们这样称呼他们: viewParent(父ID主键) viewChild(ChildID主键,ParentID FK) 这些视图有更多的字段,但它们对于这个问题并不重要 在我的数据源中,我使用链接的ParentID定义了viewParent和viewChild之间的关系 至于措施,我被迫为父母和孩子创建单独的措施 然而,在我的MDX查询中,这种关系似乎没有被强制执行。如果我为父项、子项选择记录计数,并为父项添加一些筛选器,则子项计数不会反映它Sql server 2005 SSAS OLAP MDX及其关系,sql-server-2005,ssas,olap,Sql Server 2005,Ssas,Olap,我是OLAP新手,仍然不知道如何在两个或多个实体之间创建关系 我的立方体是基于视图的。为了简单起见,我们这样称呼他们: viewParent(父ID主键) viewChild(ChildID主键,ParentID FK) 这些视图有更多的字段,但它们对于这个问题并不重要 在我的数据源中,我使用链接的ParentID定义了viewParent和viewChild之间的关系 至于措施,我被迫为父母和孩子创建单独的措施 然而,在我的MDX查询中,这种关系似乎没有被强制执行。如果我为父项、子项选择记录计
SELECT {
[Measures].[ParentCount],[Measures].[ChildCount]
} ON COLUMNS
FROM [Cube]
WHERE {
(
{[Time].[Month].&[2011-06-01T00:00:00]}
,{[SomeDimension].&[Foo]}
)
}
所选ParentCount正确,但ChildCount不受任何筛选器的影响(因为它们是父筛选器)。但是,既然我定义了一个关系,我如何利用它使用WHERE子句按父级筛选子级
事实:
viewParent,viewChild
尺寸:
ParentDimension(包含父视图中我要聚合的属性)
ChildDimension(包含我要聚合的子视图中的属性)
这只是我提出的一个想法,但可能我的设计/关系已经中断。可能是我对您在描述中选择的措辞读得太仔细了,但您可能想澄清过滤器的含义。从技术上讲,WHERE子句不是过滤器,而是结果数据集的过滤器。如果您指的是FILTER,那么您可能需要查看名为的MDX函数,您可以将该函数应用于集合表达式 您可以尝试重新排列MDX查询以定义轴行和列
SELECT
{
[Measures].[ParentCount],[Measures].[ChildCount]
} ON COLUMNS,
{
[SomeDimension].&[Foo]
} ON ROWS
FROM [Cube]
WHERE ([Time].[Month].&[2011-06-01T00:00:00])
我明白了
查看vs2008中多维数据集的“维度”选项卡,它变得显而易见
我的维度和度量之间的关系设置不正确。我的维度在uniqueID上键入,该ID对应于parentView uniqueID
我将(SomeDimension的)关系更改为在另一个ID字段(由parentView和childView共享)上设置键,我们称之为ViewID
我的MDX查询开始按预期工作。也就是说,WHERE子句影响了两个度量值组:父度量值组和子度量值组。为维度和事实添加描述会有所帮助