MDX処理空値NULLおよびフォーマット結果について
1367 ワード
MDXクエリーの結果には、ある次元で対応する量の値が存在しないため、より良い効果を示すために、「NULL」のスライス値を0に置き換える必要がある場合があります.これらの置き換えは、レポート側で処理したり、MDXスクリプトで実行したりすることができます.ここでは、MDX NULLについて、クエリー結果のフォーマット処理について説明します.
次の例では、空の値をフォーマット処理する前の状態を示します.
対応するMDXスクリプトは次のとおりです.
次に、上記の各スライスの(NULL)値を0に変更し、(NULL)以外のスライスの数値を千分位フォーマットに変換する必要がある.
対応するMDX処理スクリプトは次のとおりです.
上記MDXでは、属性FORMAT_STRING=「#,##;-#,##;0;0」の値はセミコロン(;)4つの部分に分けてフォーマットします.すなわち、正、負、0、空の値NULLの順にフォーマットします.#はフォーマットプレースホルダです.すなわち、スライス値が正の場合、千分位付きの正を返します.スライス値が負の場合、千分位の負の数を返します.スライス値が0の場合は0を返します.スライスがNULLの場合は0を返し、「N/A」に設定することもできます.
詳細はFORMAT_についてSTRING参照:FORMAT_STRING Contents
本明細書の最初のアドレス:http://pengzhiyong.com/blog/281.html
次の例では、空の値をフォーマット処理する前の状態を示します.
対応するMDXスクリプトは次のとおりです.
SELECT {
[Measures].[TransInQty],
[Measures].[TransOutQty]
} ON 0,
{[Time].[Day].&[2014-04-07T00:00:00]
:[Time].[Day].&[2014-04-10T00:00:00]} ON 1
FROM [RMS]
次に、上記の各スライスの(NULL)値を0に変更し、(NULL)以外のスライスの数値を千分位フォーマットに変換する必要がある.
対応するMDX処理スクリプトは次のとおりです.
WITH
MEMBER [Measures].[TransInQtyFormatted]
AS [Measures].[TransInQty],FORMAT_STRING = "#,##0;- #,##0;0;0"
MEMBER [Measures].[TransOutQtyFormatted]
AS [Measures].[TransOutQty],FORMAT_STRING = "#,##0;- #,##0;0;0"
SELECT {
[Measures].[TransInQty],
[Measures].[TransInQtyFormatted],
[Measures].[TransOutQty],
[Measures].[TransOutQtyFormatted]
} ON 0,
{[Time].[Day].&[2014-04-07T00:00:00]
:[Time].[Day].&[2014-04-10T00:00:00]} ON 1
FROM [RMS]
上記MDXでは、属性FORMAT_STRING=「#,##;-#,##;0;0」の値はセミコロン(;)4つの部分に分けてフォーマットします.すなわち、正、負、0、空の値NULLの順にフォーマットします.#はフォーマットプレースホルダです.すなわち、スライス値が正の場合、千分位付きの正を返します.スライス値が負の場合、千分位の負の数を返します.スライス値が0の場合は0を返します.スライスがNULLの場合は0を返し、「N/A」に設定することもできます.
詳細はFORMAT_についてSTRING参照:FORMAT_STRING Contents
本明細書の最初のアドレス:http://pengzhiyong.com/blog/281.html