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

(キューブ内で、総利益と平均総利益は、総利益メジャー/列の合計関数と平均関数を使用して定義されたメジャーです)。

問題を解決して正しい番号を取得する方法はありますか?

ご提案いただきありがとうございます。

4

1 に答える 1

0

MDX は非常に単純です。立方体から数値を引き出すだけで、数値を調整することはありません。エラーがある場合は、OLAP キューブの集計方法またはメジャー計算にエラーがある必要があります。

コマンドを使用して、SOLVE_ORDER最初に total_gross_profit を取得する計算を実行し、次に平均計算を実行するようにキューブに指示する必要があると思います。申し訳ありませんが、プラグインするための正確な構文を提供することはできません。ドキュメントを読む必要があります。

于 2012-09-11T21:47:57.183 に答える