2011-06-15 140 views
0

有一个很难做这个简单的事:而不是“空”MDX查询 - 0,如果空

SELECT 
{ 
    [Measures].[Count] 
} ON COLUMNS 
, { 
CASE WHEN 
     [TimeDMY].[Month] = 0 
    Then 0 
    Else 
    [TimeDMY].[Month] 
    End 

} ON ROWS 
FROM [Views] 
WHERE { 
    (
    [TimeDMY].[Year - Month - Date].[Month].&[2011-07-01T00:00:00] 

这将返回如果计数不为空,特定月份的正确值返回0。

如果该值是无效对于给定的月份,我得到:

查询(20,1)函数需要为1个 参数一 元组集合的表达。使用了字符串或数字 表达式。

我试图使这个工作与IIF和IsEmpty函数..与此类似的成功。

回答

1

我会用一个calculated measure

with member [Measures].[count-x] as 
     IIF(isEmpty(([Measures].[Count], [TimeDMY].[Month].currentMember)), 
      0, 
      ([Measures].[Count], [TimeDMY].[Month].currentMember) 
    ) 

SELECT 
    [Measures].[count-x] ON 0, 
    [TimeDMY].[Month].members on 1 
FROM [Views]