MDX処理空値NULLおよびフォーマット結果について

1367 ワード

MDXクエリーの結果には、ある次元で対応する量の値が存在しないため、より良い効果を示すために、「NULL」のスライス値を0に置き換える必要がある場合があります.これらの置き換えは、レポート側で処理したり、MDXスクリプトで実行したりすることができます.ここでは、MDX NULLについて、クエリー結果のフォーマット処理について説明します.
次の例では、空の値をフォーマット処理する前の状態を示します.
対応する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