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