Sql server 2005 SSAS OLAP 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查询中,这种关系似乎没有被强制执行。如果我为父项、子项选择记录计

我是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子句影响了两个度量值组:父度量值组和子度量值组。

为维度和事实添加描述会有所帮助