【问题标题】:MDX - Sum only selected dimension members?MDX - 仅对选定的维度成员求和?
【发布时间】:2014-08-18 08:47:09
【问题描述】:

我对 MDX 还很陌生,我在聚合我的一项度量时遇到了一些问题。

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

http://imgur.com/uAy3moC

我想跟踪所谓的“覆盖率”,即特定周内举办的活动数量以及举办活动的每个代理。因此,如果一周举办了 3 场活动,其中一场活动由两名特工举办,则覆盖范围为 4。

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

所以我创建了一个这样的计算成员:

CREATE MEMBER CURRENTCUBE.[Measures].[Visit Coverage] AS IIF([Agents].[Agent].currentmember.parent IS NULL, SUM([Agents].[Agent].[Agent], [Measures].[Events Count]), [Measures].[Events Count]);

因此,基本上,如果选择了所有代理(父级为空),则汇总每个代理的所有事件计数,否则,如果我按代理进行分析,则只给我每个代理的事件。这很好用……如果我想按一个特定的代理进行过滤,它也可以工作,但是如果我尝试按多个(但少于所有)代理进行过滤,就会失败,给我一个空值。

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

克里斯

【问题讨论】:

    标签: sql ssas mdx olap olap-cube


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多