2016-07-28 54 views
2

我需要用我的SSAS cube替换null与。什么是实现这一目标的正确方法?如何用0代替SSAS立方体中的空值

这是我当前的查询:从当前查询

SELECT {([Measures].[Employee Age Count])} 
ON COLUMNS, { ([Dim Gender].[Gender Name].[Gender Name].ALLMEMBERS * 
[Dim Age Ranges].[Age Range ID].[Age Range ID].ALLMEMBERS) } ON ROWS 
FROM (SELECT ({ [Dim Location].[Location].[Location Grp Name].&[BOSTON] }) ON COLUMNS 
FROM [People Dashboard]) 
WHERE ([Dim Location].[Location].[Location Grp Name].&[BOSTON]) 

结果:

enter image description here

回答

2

我认为IIF(ISEMPTY...是非常标准的。

WITH MEMBER [Measures].[MEASURE_NONEMPTY] AS 
    IIF(
    ISEMPTY([Measures].[Service Period Count]) 
    ,0 
    ,[Measures].[Service Period Count] 
) 
SELECT 
    {[Measures].[MEASURE_NONEMPTY]} ON 0, 
     [Dim Gender].[Gender Name].[Gender Name].ALLMEMBERS 
    * [Dim Age Ranges].[Age Range ID].[Age Range ID].ALLMEMBERS 
    ON 1 
FROM [People Dashboard] 
WHERE [Dim Location].[Location].[Location Grp Name].&[BOSTON] 
; 
0

我没有测试过,但你可以尝试像下面如果它的工作原理,

SELECT {COALESCE (([Measures].[Employee Age Count]),"0") as AgeCount} 
ON COLUMNS, { ([Dim Gender].[Gender Name].[Gender Name].ALLMEMBERS * 
[Dim Age Ranges].[Age Range ID].[Age Range ID].ALLMEMBERS) } ON ROWS 
FROM (SELECT ({ [Dim Location].[Location].[Location Grp Name].&[BOSTON] }) ON COLUMNS 
FROM [People Dashboard]) 
WHERE ([Dim Location].[Location].[Location Grp Name].&[BOSTON]) 
+0

返回COALESCE功能在Microsoft SQL Server分析服务不存在:

我也被删除了不少括号&也动逻辑出来的子查询到一个基本WHERE条款简化您的脚本。我尝试使用COALESCEEMPTY(([Measures]。[Employee Age Count]),“0”,并在以下代码中出现错误:Query(1,9)该函数需要1个参数的元组表达式。 。 –

+0

让我检查它,因为我告诉你我目前无法测试它,但让我再次检查它 – Vickyexpert

+0

你也可以在这里查看:http://www.w3schools.com/sql/sql_isnull.asp – Vickyexpert

0
WITH MEMBER [Measures].[MEASURE_NONEMPTY] AS COALESCEEMPTY([Measures].[Service Period 
Count], 0) 
SELECT {[Measures].[MEASURE_NONEMPTY]} ON COLUMNS, { ([Dim Gender].[Gender Name].[Gender 
Name].ALLMEMBERS * [Dim Age Ranges].[Age Range ID].[Age Range ID].ALLMEMBERS) 
} ON ROWS FROM (SELECT ({ [Dim Location].[Location].[Location Grp Name].& 
[BOSTON] }) ON COLUMNS FROM [People Dashboard]) WHERE ([Dim Location]. 
[Location].[Location Grp Name].&[BOSTON]) 

我用上面的代码来解决我的问题。