【问题标题】:How do I make this calculated measure roll up properly in SSAS?如何在 SSAS 中正确汇总此计算的度量?
【发布时间】:2009-02-03 18:52:04
【问题描述】:

我在 Analysis Services 中有一个计算度量,它根据过去三个时期返回某个位置的平均每日收入。期间是位置定义的时间长度,因此一个位置可能会每月关闭其期间,而另一个位置可能会每季度关闭其期间。

要返回平均每日收入,我有一个 factPeriods 表,该表返回一个时期的收入,以及该时期的天数。以下 MDX 在位置级别返回正确的值,([Measures].[Days In AR Charges]) / ([Measures].[Days In AR Days])。

问题是当我汇总到更高级别时,假设我想按州返回平均每日收入,计算不正确,因为它首先汇总了对期间有贡献的天数,然后除以。我希望首先在最低级别进行平均,然后将每日平均收入的结果相加。这是发生的事情与我想要发生的事情的示例。

假设我只有两个地点,A 和 B。A 每月关闭,B 每季度关闭。最后关闭的结果是:

位置/收入/贡献收入的天数

位置 A / $3000 / 30 天 地点 B / $1800 / 90 天

地点 A 每天产生 100 美元的收入,地点 B 每天只产生 20 美元的收入。我的总金额应该是每天 120 美元。相反,它将返回 40 美元/天。以下是计算级别发生的情况。

我希望公式采用伪代码 SUM(([Measures].[Days In AR Charges]) / ([Measures].[Days In AR Days]))

但它实际上给了我 (SUM([Measures].[Days In AR Charges])) / (SUM([Measures].[Days In AR Days]))

谁能帮我确定合适的公式以使这项工作按需要进行?它最终应该是 100 美元/天 + 20 美元/天,而不是 4800 美元/120 天。我怀疑我可能需要使用后代,但我不清楚我将如何使用它们,或者这是否是正确的方向。

【问题讨论】:

    标签: sql-server ssas


    【解决方案1】:

    强制计算在叶级别进行然后汇总的最简单方法是将其移动到 CALCULATE 之前; MDX 脚本中的语句。

    通常您应该离开 CALCULATE;应该是脚本中的第一条语句,但我认为您描述的情况是在 CALCULATE 之前有一个计算成员是合理的例外情况之一;

    【讨论】:

      【解决方案2】:

      【讨论】:

        【解决方案3】:

        如果您可以在 ETL 或处理中获得所需的数字,请不要使用 SSAS 计算,因为它会执行得更好。

        在这种情况下,我会添加一个 DSV 计算来进行除法,然后让 SSAS 正常求和。

        【讨论】:

          【解决方案4】:

          我的直接解决方案是计算 ETL 流程中的平均每日收入,然后 SSAS 将仅对值求和。如果有人知道的话,我仍然希望看到 MDX 解决方案。

          【讨论】:

            【解决方案5】:

            这只是在计算中指定正确的“求解顺序”。我不能给你具体的 MDX 来解决你的问题,因为我不知道你的多维数据集结构是什么,但是在文档中或通过谷歌查看“解决顺序”。这正是“解决订单”应该解决的问题。您将基本上告诉分析服务首先要做什么。

            【讨论】:

            • 我尝试使用解决顺序解决此问题,但它不起作用。这不是一个计算依赖于另一个计算并且它们以错误的顺序求解的情况,而是在一个简单的计算中,先求和然后除,而不是先求和再求和。
            【解决方案6】:

            减少一个方程 3 个单独的方程?计算一个中的分子,另一个中的分母,然后第三个中的除法?我不知道您在谈论的工具,所以我不知道您是否可以按顺序进行多次计算。但这肯定会强制执行命令。

            【讨论】:

              猜你喜欢
              • 2016-04-25
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2019-04-28
              • 1970-01-01
              • 2023-03-24
              相关资源
              最近更新 更多