问题
下面我的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]}})}
返回:
New Repeat = New
订单数= 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) ):
e.g。 (11.63 + 37.7063636363636)/ 2 = 24.668
然而,为了获得正确的数字,它应该将总毛利中的值相加并除以原始数据中的行数:
e.g。 (23.26 + 414.77)/ 13 = 33.69
(在多维数据集中,总利润和平均毛利润是使用毛利润指标/列上的总和和平均函数定义的度量。)
有没有办法解决问题以获得正确的数字?
非常感谢任何建议。
答案 0 :(得分:0)
您的MDX非常简单。它只是从立方体中提取数字,而不是以任何方式调整它们。如果存在错误,则必须使用agregation方法或测量OLAP多维数据集中的计算。
我相信您希望使用SOLVE_ORDER
命令指示多维数据集执行计算以首先获取total_gross_profit,然后执行平均计算。对不起,我不能给你一个插入的确切语法;你必须阅读文档。