排除 SSRS 列中的空值

exclude nulls in column SSRS

SSRS 新手

我有 table 第 1 列是部门,第 2 列是计算

例如成本总和...

我已经使用下面的表达式来计算成本

但我想排除为空的部门,但这并不令人高兴..

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

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

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

请帮忙

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

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

您还可以 select 详细信息行,单击“属性”选项卡,然后在 "Hidden" 属性

中输入公式
=IIF(IsNothing(Fields!Department.value), True, False)

这表示,"if department is null, hide this row, otherwise show it"。第一种方法更好,因为返回到报表的数据较少。第二种方法要求返回所有行,报表必须对要显示的行进行排序。

Select 详细信息行(单击三行),select 属性选项卡,并将 "False" 替换为该公式:

为了让您的表达式按照您的方式工作,您需要将加号更改为 AND 以进行逻辑运算,并将 ISNOTHING 保留为布尔值(不带 = 1):

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

我不确定 ReturnOrder 是做什么用的,但把你的条件留在里面了。

您要查找的表达式是

=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))