值为NULL时如何不计算SSRS矩阵中的值

时间:2019-01-22 17:21:08

标签: reporting-services

我无法使我的表达式在我的SSRS矩阵中不计入NULL值。

在我的SSRS矩阵中,我有2列用于评估公司,在SubmittedDate列下有一个计数。在我的报告中,这是怎么回事:

enter image description here

这里,Per Derrick的建议是我在SubmitGroupDate的ColumnGroup属性中所做的更改:

enter image description here

这是我在ColumnGroup属性中的表达式更改:

enter image description here

不幸的是我遇到了这个错误:

enter image description here

2 个答案:

答案 0 :(得分:1)

我对您的数据集表示怀疑,但我不确定您如何获取一个空值以在COUNT中返回1。我一直无法复制您的结果。

数据集查询

SELECT 'Drive In' AS AppraisalCompany, NULL AS SubmittedDate
UNION
SELECT 'Photo App - English', 'Dec-18'

接下来,我在AppraisalCompany上创建了一个行组,并在SubmittedDate上创建了一个列组。

filtered使用表达式=IsNothing(Fields!SubmittedDate.Value),运算符<>和值true来删除空分组。

在矩阵的文本框中,我使用了[Count(SubmittedDate)]

输出

Appraisal Company   |  Dec-18
-------------------------------
Drive In            |         0
Photo App - English |         1

答案 1 :(得分:0)

通过Decimal(数字)数据类型Nothing0是相同的。您可以对此进行测试。

将Tablix的年份从2017年到2019年放入报表中。然后将年份以数字格式放在tablix的列中,然后在详细信息文本框中输入以下表达式:

=CDec(IIF(CDec(Fields!Year.Value) = 2017, 0, Nothing))

执行报告后,您会注意到Year列中的每个值都是0

检查也一样。这两个表达式将始终返回Yes。我基本上检查0,第二个检查Nothing

=IIF(CDec(IIF(CDec(Fields!Jahr.Value) = 2017, 0, Nothing)) = 0, "Yes", "No")
=IIF(CDec(IIF(CDec(Fields!Jahr.Value) = 2017, 0, Nothing)) = Nothing, "Yes", "No")

但是请记住,您的文本框/列必须是数字格式。

因此,如果您要返回Nothing,并在数字格式的文本框中显示它,则会显示一个0

考虑到这一点,对于Count() AND 10返回值Nothing是有意义的。因此,基本上,这可以解决问题:

'Cont
=Sum(IIF(Fields!YourValue.Value = Nothing, 0, 1))