2013-10-25 21 views
2

在MDX你如何填寫用零空/空值,例如:如何填寫結果MDX - 蒙德里安

如果我有一個尺寸A和兩個措施XY,之後MDX查詢我得到這個:
(「 - 」表示「空」或「空」的值)

 X Y 
A.A1 1 - 
A.A2 - 2 
A.A3 - - 

如果我使用「NON EMPTY」 A.A3走了,但我在嘗試使用CoalesceEmpty填寫用零我這個:

 X Y 
A.A1 1 0 
A.A2 0 2 
A.A3 0 0 

假設有像A.A3太多的元組,我不希望顯示的話,我如何填寫空值以零,不顯示在所有列空的元組。

其結果必然是:

 X Y 
A.A1 1 0 
A.A2 0 2 

注:我沒有嘗試filter但如果是在蒙德里安的支持,我沒有得到任何改善

+0

仍然相當不清楚WH在你試圖說或做。請嘗試澄清你正在嘗試做什麼?將空的東西改爲0?如果它們都是空的,將它們全部刪除?等等? – UpAndAdam

+0

我稍微澄清一下我的問題,我想「將空白的東西改爲0」,如果它們都是空的,就把它們全部刪除。謝謝 – aptiliux

回答

0

我不知道,但在分析服務,你可以在行軸上使用HAVING這樣的:

SELECT {Measures.X, Measures.Y} 
     ON COLUMNS, 
     A.Members 
     HAVING Measures.X <> 0 AND Measures.Y <> 0 
     ON ROWS 
    FROM MyCube 

相反NON EMPTY只着眼於爲空(即NULL)的值,對於HAVING,您可以自己陳述條件。而在Analysis Services中,數字比較將NULL視爲零,因此上面的條件不包括null和零。

另一種方法 - 稍微取決於客戶端工具 - 將使用NON EMPTY使用MDX,而不使用CoalesceEmpty,但通過FORMAT_STRING將NULL值轉換爲0。這要求客戶端工具使用由多維數據集提供的格式字符串或格式化值,而不是實現其自己的數字格式。

+0

你的回答是相當正確的,我解決了我的問題,使用「非空」和format_string ='#0 ;;; 0'。蒙德里安不支持「有」,謝謝 – aptiliux

相關問題