2016-09-22 11 views
0

私はこのMDXクエリの背後にある数学を理解しようとしています。mdxの計算を理解しようとしています

TL; DR:このクエリはどのように実行されますか? (どのように "DIV" が計算されます?)

WITH 
member [Customer].[Country].[x] as (([Customer].[Country].[Australia]) - ([Customer].[Country].[France], [measures].[sum sales])) 
member [measures].[div] as ([Measures].[Sum Sales]/[Measures].[Sum Cost]) 

SELECT 
{ [measures].[div] } 
ON COLUMNS, 
{ [Customer].[Country].[x] } 
ON ROWS 

長い物語:。

私は、[顧客] [国]の階層構造を持っており、売上とコストを測定します。このクエリの

SELECT 
{ [Measures].[Sum Sales], [Measures].[Sum Cost] } 
ON COLUMNS, 
{ [Customer].[Country].[Australia] , [Customer].[Country].[France] } 
ON ROWS 

私は結果を得る:私はこのメンバーを作成

Australia: cost = 8266005, sales = 18005422 
France: cost = 4478131, sales = 9610041 

を:

// substract france from australia 
member [Customer].[Country].[x] as (([Customer].[Country].[Australia]) - ([Customer].[Country].[France])) 

、それの代わりに、2でクエリを実行しましたメンバー:

WITH 
member [Customer].[Country].[x] as (([Customer].[Country].[Australia]) - ([Customer].[Country].[France])) 

SELECT 
{ [Measures].[Sum Sales], [Measures].[Sum Cost] } 
ON COLUMNS, 
{ [Customer].[Country].[x] } 
ON ROWS 
01これは理にかなって

x: cost = 3787874, sales = 8395381 

とはの結果を得ました。それから私はこのように、メンバーに販売を使用するためにフランスを変更します。この結果を得た

WITH 
member [Customer].[Country].[x] as (([Customer].[Country].[Australia]) - ([Customer].[Country].[France], [measures].[sum sales])) 

SELECT 
{ [Measures].[Sum Sales], [Measures].[Sum Cost] } 
ON COLUMNS, 
{ [Customer].[Country].[x] } 
ON ROWS 

x: cost = -1344036, sales = 8395381 

と私はオーストラリアのためにそれを見ることができ、列からの尺度が使用されており、フランスの場合、タプルの売上高は「強」であり、コストを超えて維持されます。つまり、 "コスト"の差は実際には(AU、コスト) - (FR、売上)です。

だから私は(ここでの問題は、IS !!!)これを試してみてください

私は、カスタム・メジャーを設定します。

member [measures].[div] as ([Measures].[Sum Sales]/[Measures].[Sum Cost]) 

そして、他の施策との列の上に置く:

WITH 
member [Customer].[Country].[x] as (([Customer].[Country].[Australia]) - ([Customer].[Country].[France], [measures].[sum sales])) 
member [measures].[div] as ([Measures].[Sum Sales]/[Measures].[Sum Cost]) 

SELECT 
{ [Measures].[Sum Sales], [Measures].[Sum Cost], [measures].[div] } 
ON COLUMNS, 
{ [Customer].[Country].[x] } 
ON ROWS 

xの売上とコストの結果は同じです。 "div" = -6.2463950147143。 どのように計算されますか?

div = ((AU,sales) - (FR,sales))/((AU,cost) - (FR,cost)) = (18005422 - 9610041)/(8266005 - 4478131) = 2.216383 
:私は期待した結果が
member [Customer].[Country].[x] as (([Customer].[Country].[Australia]) - ([Customer].[Country].[France]])) 

フランス

から販売を取り出し、得

...

(AU,sales)/(AU,cost) - (FR,sales) = 18005422/8266005 - 9610041 = -9610038.82175 

をしかし、それは間違っている: 私はそれがあるべきことを推測すると思います

ありがとうございました

答えて

0

最後に私にやって来た!

私が得た数は次のとおりです。

div = ((AU,sales) - (FR,sales))/((AU,cost) - (FR,sales)) = (18005422 - 9610041)/(8266005 - 9610041) = -6.2463959 

フランスは計算に使用するための措置を必要と今まで、それは販売を得たとき。それがルールです。

これは将来的に誰かを助けてくれることを期待していますが、誰もこれではintrestedに見えませんでした... :(

関連する問題