0

问题

下面的 MDX 没有返回我期望的平均毛利润数字。

MDX

select NON EMPTY {Hierarchize({[New Repeat].[New Repeat].[New]})} ON COLUMNS,
NON EMPTY {Hierarchize({[Measures].[Order Count], [Measures].[Total Gross Profit], [Measures].[Average Gross Profit]})} ON ROWS
from [USAOrders]
where {({{[Voucher Code].[ABC], [Voucher Code].[DEF]}})}

回报:

新重复=新

订单数 = 13

总毛利 = 438.03

平均毛利润 = 24.668

(平均毛利润应为 438.03/13 = 33.69)

数字是如何得出的

从此 MDX 派生的 SQL 返回 2 行:

new repeat voucher_code | order_count | total_gross_profit | avg_gross_profit    

       "ABC"                    2                23.26      11.63                
       "DEF"                   11               414.77      37.7063636363636

因此,查看这些数字,MDX 似乎通过将每个凭证的平均毛利润相加,然后除以不同凭证的行数(在本例中为 2)来计算所有指定凭证的平均毛利润:

例如 (11.63 + 37.7063636363636)/2 = 24.668

然而,为了获得正确的数字,它应该将 Total Gross Profit 中的值相加并除以原始数据的行数:

例如 (23.26 + 414.77)/13 = 33.69

(在多维数据集中,总毛利和平均毛利是在毛利度量/列上使用 sum 和 avg 函数定义的度量)。

有没有办法解决问题以获得正确的号码?

非常感谢您的任何建议。

4

1 回答 1

0

您的 MDX 非常简单。它只是从立方体中提取数字,而不是以任何方式调整它们。如果有错误,一定是在聚合方法或者OLAP多维数据集中的度量计算中。

相信你想用SOLVE_ORDER命令指示cube先进行计算得到total_gross_profit,然后再进行平均计算。对不起,我不能给你确切的语法来插入;您必须阅读文档。

于 2012-09-11T21:47:57.183 回答