Known Issue: NullProcessing プロパティを Preserve にすると「Preserve は、個別のカウント メジャー 'XXXX' の有効な NullProcessing 値ではありません。」が発生する。

小林 真治
SQL Developer Support Escalation Engineer

 今回は、SQL Server Analysis Services 2012 (以下 SSAS 2012) において、「メジャーの AggregateFunction に DistinctCount を指定している」場合における  NullProcessing プロパティ値の選択方法について解説します。

問題

SSAS 2012 では、 DistictCount 利用時における NULL 評価を厳密にするため、 NullProcessing プロパティに Preserve が利用されることを制限しました。
このため、SSAS 2012 において、下記条件を含むデータベースを配置/作成しようとすると、エラー「メタデータ マネージャーでエラーが発生しました。 Preserve は、個別のカウント メジャー 'XXXX' の有効な NullProcessing 値ではありません。」が発生します。

    - メジャーの AggregateFunction として DistinctCount を指定しているメジャーがキューブ内に存在する。
    - 該当メジャーの Source 内の NullProcessing プロパティにおいて Preserve を指定している。

対処策

このエラーに対処するためには、下記の対処策を実施します。

    - NullProcessing プロパティの値として、Automatic または ZeroOrBlank を指定する。

尚、これらのプロパティを選択することで、 NULL 値が 数値 0 に変換されます。
また、弊社では ZeroOrBlank を指定することを推奨します。

補足事項

NULL 値を数値 0 と区別して集計する必要がある場合に、Automatic または ZeroOrBlank を選択すると NULL を 0 に変換するため、 NULL 値と数値 0 を区別して集計できません。
DistinctCount で NULL 値を集計する必要がある場合、データソース側で NULL の値を -1 などの値に置換した上で、集計をするよう変更します。