私は単純な問題を抱えていると思いますが、グーグルで検索しても解決策が見つかりません。MeasureA、MeasureB、および MeasureC を持つキューブがあります。3 つのメジャーすべてに各レコードの値があるわけではありません。場合によっては null になることもありますが、適用可能かどうかによって異なります。
合計については、平均化する必要がありますが、平均値は null を考慮してはいけません。どんな助けでも大歓迎です。メジャーを表示すると、null 値がゼロとして表示されます。
私は単純な問題を抱えていると思いますが、グーグルで検索しても解決策が見つかりません。MeasureA、MeasureB、および MeasureC を持つキューブがあります。3 つのメジャーすべてに各レコードの値があるわけではありません。場合によっては null になることもありますが、適用可能かどうかによって異なります。
合計については、平均化する必要がありますが、平均値は null を考慮してはいけません。どんな助けでも大歓迎です。メジャーを表示すると、null 値がゼロとして表示されます。
NonEmpty()MDX関数を使用して、平均化するセットをラップできますか?
デフォルトでは、SQL Server は null を無視します - したがって、メッセージが表示されます -Warning: Null value is eliminated by an aggregate or other SET operation.
例:
create table #test (id int null)
insert #test values (1)
insert #test values (1)
insert #test values (null)
insert #test values (1)
select avg(id), sum(id), count(id) from #test
メジャーごとに、そのプロパティでソース列の設定に移動し、NullProcessing="Preserve" を選択すると、メジャーは 0 ではなく NULL を返します。
AVG() 関数を使用せずに平均を計算してみませんか?
例:
([MEASURES].[MEASUREA] + [MEASURES].[MEASUREB] + [MEASURES].[MEASUREC]) / 3
もちろん、これは、この平均が 3 つのメジャーのみで構成される場合にのみ機能します。セットを評価する必要がある場合にのみ、AVG() 関数を実際に使用します
。