2011-10-03 10 views
1

平均的なメジャーを動的に作成する方法についてアドバイスをいただけます。特定のスライスを指定するのではなく、現在のビューを使用しますか?私はフロントエンドのOLAPビューア(Strategy Companion)内で作業しています。データビューで現在フィルタリングされているディメンションに基づいて、 "動的"な実装が必要です。MDX AVG関数の動的使用

私のファクトテーブルは次のようなものになります "[対策] [AmountA]"

Key AmountA IndicatorA AmountB Other Data 
1 5  1   null  25 
2 6  1   null  52 
3 7  1   2  106 
4 null  0   4  108 

は、今私は、単純な平均値を指定することができるために、「[対策]で[AmountA]/[対策]。 "[IndicatorA]"は、 "[AmountA]"のnull以外の値の数まで合計します。また、ビュー内で選択されている次元に関係なく、これは素晴らしい結果をもたらします。常にフィルタリングされた行数で除算されます。

[AmountB]はどうですか?私はヌルインジケータ列を持っていません。私は現在のビューでフィルタリングされた行の[AmountB]の平均値を取得したいと考えています。単純な数式(擬似コード "[Measures]。[AmountB]/Count([Measures]。[Key])")として行の数を使用しようとすると、間違った結果になります。平均ではヌル行。

AVG関数を使用して、現在使用しているディメンションに基づいて、現在フィルタリングしている行の[AmountB]の平均を指定する方法が必要です。この動的セットを指定するにはどうすればよいですか?

私はAVG関数のいくつかの異なる用途を試しました。彼らはnullを返すか、巨大な数値に集計しました。明らかに私が探している平均ではありません。

Thanks- マット

答えて

0

申し訳ありませんが、私の最初の提案は間違っていました。 OLAPキューブにアクセスできない場合は、この目的のためにmdx-query(IMHO)を書くことはできません。このアクセスレベルでは、ファクトテーブルからの詳細なデータがなく、キューブの集計データとディメンションのみを使用できるためです。 これ以外の場合(olap dbにアクセスできる場合)、メジャーグループ内でこのメトリック(NULLでない行の数)を作成し、その後でAVG計算に使用できます(キューブ内の計算メンバーまたはあなたのmdx-query)。

+0

私は現在、{あなたのセット}を動的セットとして指定する方法を探していますが、特定のスライスではなく、現在OLAPツールでフィルタリングしているものを指定しています。 – user977080

+0

私はこのクエリを改善し、近い将来に回答を更新することができます。 – Max

関連する問題