2017-05-05 8 views
3

icCubeのMDX文の下にあります。 (icCubeには、関数と呼ばれる非母国語のコンポーネントがあります。icCube - 別の関数を呼び出す関数がNULLになる

with function article_list() as topcount([Product].[Product].[Article], [amount], 10) 
function benchmark_best_index2(i) as sum(order(topcount([Product].[Product].[Article], [amount], 10), [measures].[amount], desc).(i-1) , [measures].[amount]) 


// why doesnot the following function work? 
function benchmark_best_index(list,i) as sum(order(list, [measures].[amount], desc).(i-1), [measures].[amount]) 


member [measures].[bm_top_amount_doesnotwork] as benchmark_best_index(article_list(),1) 
member [measures].[bm_top_amount_doesnotwork_either] as benchmark_best_index(topcount([Product].[Product].[Article], [amount], 10),1) 
member [measures].[bm_top_amount_works] as benchmark_best_index2(1) 

select { [measures].[amount],[measures].[bm_top_amount_doesnotwork], [measures].[bm_top_amount_doesnotwork_either], [measures].[bm_top_amount_works]} on 0 
,article_list() on 1 
from sales 

は私が計算されるメジャーが[bm_top_amount_doesnotwork]と[bm_top_amount_doesnotwork_either]動作させることはできません。

私の考えは、2つ目は1つ目の関数を呼び出すという2つの汎用関数を持つことです。最終結果は、チャート、計算などに使用できるベンチマーク値です。

上記のMDXでは不可能です。しかしそれは可能ですか?はいの場合はどうですか?

+0

PS。スキーマSalesのicCubeデフォルト環境でステートメントを起動できます。 – Arthur

+1

MDXデバッガを試しましたか? – ic3

+0

はい、セルにループを表示してNULLを表示し、根本原因をドリルダウンする方法がありません....自分で試してみてください。コードをコピー&ペーストして販売スキーマに適用するだけで済みます。あなたは私が何を意味するか見るでしょう。 – Arthur

答えて

2

私たちは、MDXパーサは、それが集合であることを知っているので、あなたはパラメータの型を強制することができ、その間に(issue)何が悪かったのかを詳細に確認することしました:

sum(order({list} , [measures].[amount], desc).(i-1), [measures].[amount]) 
関連する問題