MDX查詢結果中往往會含有“NULL”值,這是某維度下對應的的量值不存在導致的,為了讓報表呈現更好的效果,在有些情況下,需要將“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 1FROM [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 1FROM [RMS]
在上述MDX中,屬性FORMAT_STRING = "#,##0;- #,##0;0;0"值以分號(;)分隔成四部分格式化,即按正數,負數,0,空值NULL的順序進行格式化,#為格式化占位符,即當切片值為正數地返回帶千分位的正數;當切片值為負數時返回帶千分位的負數;當切片值為0時返回0;當切片為空值時返回0,你也可以設成“N/A”。
更多有關FORMAT_STRING參見:FORMAT_STRING Contents
本文首發地址:http://pengzhiyong.com/blog/281.html
新聞熱點
疑難解答