2010-03-18 54 views
24

我的报告中有以下表达式。SSRS - 检查数据是否为空

=FormatNumber(MAX(Fields!Reading.Value, "CellReading_Reading"),3) 

现在,当数据集为空时,'Fields!Reading.Value'变为空,并且找到它们的最大值是无效的。我如何检查整列是否为空?

我尝试了以下,没有运气。

=iif(IsNothing(Fields!.Reading.Value),"",FormatNumber(MAX(Fields!Reading.Value, "CellReading_Reading"),3)) 

但是我仍然在报告中发现#错误。我也检查了link,并没有得到它的线索。我想在报告级别处理它。

回答

42

尝试这样

= IIF(MAX(iif(IsNothing(Fields!.Reading.Value), -1, Fields!.Reading.Value)) = -1, "", FormatNumber( MAX(iif(IsNothing(Fields!.Reading.Value), -1, Fields!.Reading.Value), "CellReading_Reading"),3))) 
2

或者在您的SQL查询包裹的那场与ISNULL或COALESCE(SQL服务器)。

无论哪种方式的作品,我喜欢把这个逻辑放在查询中,这样报告就少了。