Reporting services 值为空时如何不计算SSRS矩阵中的值

Reporting services 值为空时如何不计算SSRS矩阵中的值,reporting-services,Reporting Services,我不能使我的表达式在我的SSRS矩阵中不计数为空值 在我的SSRS矩阵中,我有两列,一列用于评估公司,另一列在SubmittedDate列下。在我的报告中,这是正在发生的事情: 根据Derrick的建议,以下是我对提交数据的ColumnGroup属性所做的更改: 以下是我在ColumnGroup属性中的表达式更改: 不幸的是,我得到了这个错误: 我怀疑您的数据集,我不完全确定如何在计数中得到返回1的空值。我无法复制你的结果 数据集查询 SELECT 'Drive In' AS Apprai

我不能使我的表达式在我的SSRS矩阵中不计数为空值

在我的SSRS矩阵中,我有两列,一列用于评估公司,另一列在SubmittedDate列下。在我的报告中,这是正在发生的事情:

根据Derrick的建议,以下是我对提交数据的ColumnGroup属性所做的更改:

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

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


我怀疑您的数据集,我不完全确定如何在
计数中得到返回1的空值。我无法复制你的结果

数据集查询

SELECT 'Drive In' AS AppraisalCompany, NULL AS SubmittedDate
UNION
SELECT 'Photo App - English', 'Dec-18'
接下来,我在
assessualcompany
上创建了一个行组,在
SubmittedDate
上创建了一个列组

I使用表达式
=IsNothing(Fields!SubmittedDate.Value)
、运算符
和值
true来删除空分组

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

OUTUT

Appraisal Company   |  Dec-18
-------------------------------
Drive In            |         0
Photo App - English |         1
通过一个
Decimal
(数字)数据类型
Nothing
0
是相同的。你可以测试一下

在2017年至2019年的报告中加入表格。然后将年份作为数字格式放在tablix的一列中,然后在详细信息文本框中写入以下表达式:

=CDec(IIF(CDec(Fields!Year.Value) = 2017, 0, Nothing))
执行报告后,您会注意到“年份”列中的每个值都是
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()
0
无返回值
1
是有意义的。因此,基本上这将实现以下目的:

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

你不能用一个总数吗?像这样的=SUM(IIF(IsNothing(Fields!SubmittedDate.Value),0,1)您的IIF表达式应该在COUNT-
=COUNT(IIF(IsNothing(Fields!SubmittedDate.Value),NOTHING,Fields!evaluation公司.Value))内
或者像@Chris说的那样。否则IIF只检查第一条记录,而不是单独评估每条记录。感谢Hannover和Chris,我会尝试一下。Chris,DEC-18来自SubmittedDate列上的CASE语句。您将IsNothing逻辑放在value属性中,它需要放在expression属性中。下面是一个示例图片中,他使用了
=false
,而不是
true
,但两者都可以。你好,Derrick,我尝试了另一种方法。在我的查询数据集中,我在查询结果集中将NULL值设置为0,而不是试图处理NULL值。因此,在我的表达式中,我尝试了以下方法:=IIF(Fields!SubmittedDate.value=“0”,“0”,COUNT(Fields!评估公司))但它仍然将0计算为1,而不是0。有什么建议吗?再次感谢。@Melinda,您不想在查询中将空值设置为零。如果您这样做,计数将无法正常工作。此外,还应该创建一个额外的列?我相信您遗漏了一些明显的内容,我无法重现您的问题。@Derrick、 我在(SubmittedDate)的Column Groups部分中进行了更改,但有一个问题。您在表达式中说您删除了NULL,我这样做了,并将其放入=IsNothing(Fields!SubmittedDate.Value)、运算符和值true,但当我尝试时,VS正在发出嘎嘎声,出现以下错误:在本地报告过程中发生错误。未能计算分组“SubmittedDate”的FilterValue。我在表达式中输入的是:=IsNothing(字段!SubmittedDate.Value true)。抱歉,我只是想澄清一下。谢谢。Count不计算空值。因为你转换成了十进制,所以得到了零。如果你只是简单地将空字段格式化为数字,那么在SSRS中仍然会得到空值。是的,Count不计算空值,但在数字格式中它是零和零。这就是我试图解释的根据他的帖子和评论,我认为这就是问题所在。