Sql MDX-仅对所选维度成员求和?

Sql MDX-仅对所选维度成员求和?,sql,ssas,mdx,olap,olap-cube,Sql,Ssas,Mdx,Olap,Olap Cube,我对MDX很陌生,我对我的一个度量值的聚合有点问题 在我的DSV中,我有一个事件表。我们跟踪运行这些事件的代理,由于运行单个事件可能涉及多个代理,因此我将其拆分为一个单独的代理表,中间有一个桥接表: 我想跟踪所谓的覆盖率,即在特定的一周内举办的活动数量,以及举办活动的每个代理人。因此,如果一周内举行3次活动,其中一次活动由两名代理人主持,则覆盖率为4 当我去分析多维数据集时,拖拽了一周的开始和我的事件计数,我注意到这是不对的——它只考虑单个事件,而不考虑代理的数量。拖动代理解决了这个问题,但我仍

我对MDX很陌生,我对我的一个度量值的聚合有点问题

在我的DSV中,我有一个事件表。我们跟踪运行这些事件的代理,由于运行单个事件可能涉及多个代理,因此我将其拆分为一个单独的代理表,中间有一个桥接表:

我想跟踪所谓的覆盖率,即在特定的一周内举办的活动数量,以及举办活动的每个代理人。因此,如果一周内举行3次活动,其中一次活动由两名代理人主持,则覆盖率为4

当我去分析多维数据集时,拖拽了一周的开始和我的事件计数,我注意到这是不对的——它只考虑单个事件,而不考虑代理的数量。拖动代理解决了这个问题,但我仍然希望看到一个整体的数字,而不必拖动代理

因此,我创建了一个计算成员,如下所示:

创建成员CURRENTCUBE。[度量值].[访问覆盖率] 像 IIF[Agents].[Agents].currentmember.parent为空, 求和[Agents].[Agents].[Agents],[Measures].[Events Count], [措施][事件计数]

所以,基本上,如果所有代理都被选中,父项为空,则将每个代理的所有事件计数相加,否则,如果我按代理进行分析,只需给我每个代理的事件。这很好用…如果我想通过一个特定的代理进行过滤,也很有效,但是如果我尝试通过多个但少于所有的代理进行过滤,就会失败,给我一个空值

我完全不知道如何解决这个问题,有人能帮我吗


Chris

您的表设计涵盖了对事件数量进行计数的要求,避免了通过主事实表和代理维度表之间的多对多桥接表对代理进行重复计数。如果您希望有一个不会避免重复计数的度量,那么它的事实表应该直接链接维度表

因此,我将创建一个视图或命名查询,其中包含三维表的外键,并将其用作现有度量值组之外的新度量值组的基础。此视图或命名查询可以作为主事实表和桥接表的联接构建。然后将计数作为覆盖率度量添加到此度量值组