排除SSRS列中的空值

时间:2018-08-01 16:38:44

标签: reporting-services reportbuilder3.0

SSRS的新手

我的表的第1列是Department,第2列是The计算

例如费用总和...

我用下面的表达式求和

但是我想排除那些为空的部门,但这并不令人高兴。

  

= Sum(IIF(Fields!ReturnOrder.Value =“ 1” + IsNothing(Fields!Department.Value)= 1,Fields!Cost.Value,0))

第1列仍显示空部门。我不想显示这个...

我只想让第1列显示部门名称,而不显示空行..和第2列成本总和,其中返回值= 1

请帮助

3 个答案:

答案 0 :(得分:1)

要使表达式按照您所拥有的方式工作,您需要将加号更改为AND进行逻辑运算,并将ISNOTHING保留为布尔值(不等于1):

=Sum(IIF(Fields!ReturnOrder.Value = "1" AND NOT(IsNothing(Fields!Department.Value)), Fields!Cost.Value, 0))

我不确定ReturnOrder是做什么的,但您保留了条件。

答案 1 :(得分:0)

最好的方法是更改​​您的查询:

SELECT *
FROM [YourTable]
WHERE [Department] IS NOT NULL;

您还可以选择详细信息行,单击“属性”选项卡,然后在“隐藏”属性中输入公式

=IIF(IsNothing(Fields!Department.value), True, False)

这说:“如果部门为空,则隐藏此行,否则显示它”。第一种方法更好,因为返回到报表的数据更少。第二种方法要求返回所有行,并且报表必须对显示的行进行排序。

选择详细信息行(单击三行),选择“属性”选项卡,然后用该公式替换“ False”: enter image description here

答案 2 :(得分:0)

您要查找的表达式是

=Sum(IIF(Fields!ReturnOrder.Value = "1" AND IsNothing(Fields!Department.Value) = False, Fields!Cost.Value, 0))

提示:如果您的值是十进制而不是0,请使用Cdec(0)以避免错误。

为避免显示空部门,我建议过滤您的SQL查询。

您也可以通过过滤tablix来实现

Expression: IsNothing(Fields!Department.Value)
Type: Boolean
Operator: Equal =
Value: False

这样做会隐藏Null部门,您的表情可以简化为

=Sum(IIF(Fields!ReturnOrder.Value = "1", Fields!cost.Value, 0))

enter image description here

enter image description here