我对MDX非常陌生,我对我的一个度量方法的聚合有一些问题。
在我的DSV中,我有一个“事件”表。我们跟踪运行这些事件的代理,因为在运行单个事件时可能涉及多个代理,因此我将其拆分为一个单独的"Agent“表,中间有一个桥接表:
我想要跟踪什么是所谓的“覆盖”,这是在一个特定的星期举行的事件的数量,也是每一个代理谁运行事件。因此,如果有3个活动举行了一周,其中一个事件是由两个代理人,这将是一个覆盖4。
当我去分析多维数据集时,在一周开始的时候拖动和我的事件计数,我注意到它是不正确的-它只考虑单个事件,而不考虑代理的数量。拖动代理解决了这一问题,但我仍然希望看到一个总体数字,而不必拖着代理。
所以我创建了一个像这样的计算成员:
CREATE MEMBER CURRENTCUBE.[Measures].[Visit Coverage] AS IIF([Agents].[Agent].currentmember.parent IS NULL, SUM([Agents].[Agent].[Agent], [Measures].[Events Count]), [Measures].[Events Count]);
因此,基本上,如果选择了所有代理(父代理为null),则对每个代理的所有事件计数进行汇总,否则,如果我按代理进行分析,只需给出每个代理的事件。如果我想通过一个特定的代理进行筛选,那么这个great...and也能工作,但是如果我尝试过滤多个代理(但比所有代理都少),则会失败,从而给出一个空值。
我完全搞不懂怎么解决这个问题,有人能帮我吗?
克里斯
发布于 2014-08-18 22:29:53
您的表设计涵盖了计算事件数量的要求,避免了通过主事实表和代理维度表之间的多到多桥接表重复计算代理。如果您希望有一个而不是避免重复计数的度量,那么它的事实表应该直接链接到维度表。
因此,我将创建一个视图或命名查询,其中包含指向您的三维表的外键,并将其用作除现有度量值之外的新度量值组的基础。可以将此视图或命名查询构建为主事实表和桥表的联接。然后向此度量值组添加一个计数作为覆盖度量值。
https://stackoverflow.com/questions/25359372
复制相似问题