Reporting services 仅当数据集中的另一个字段不同时,才使用表达式对字段进行计数

Reporting services 仅当数据集中的另一个字段不同时,才使用表达式对字段进行计数,reporting-services,ssrs-2008,ssrs-2008-r2,Reporting Services,Ssrs 2008,Ssrs 2008 R2,我的报告中有一列根据字段值将字段值相加,如下所示: =COUNT(iif(Fields!isAcceptable.Value > 0, 1, Nothing)) 但是,我需要该计数依赖于另一个名为testItemId的字段。有时testItemId可能在数据集中出现2次或更多次,但我需要上面的count表达式对每个testItemId只进行一次计数。因此,如果相同的testItemId出现4次,我只希望ISAcceptable值计数一次 我还尝试了COUNTDISTINCT,但这只给了

我的报告中有一列根据字段值将字段值相加,如下所示:

=COUNT(iif(Fields!isAcceptable.Value > 0, 1, Nothing)) 
但是,我需要该计数依赖于另一个名为testItemId的字段。有时testItemId可能在数据集中出现2次或更多次,但我需要上面的count表达式对每个testItemId只进行一次计数。因此,如果相同的testItemId出现4次,我只希望ISAcceptable值计数一次

我还尝试了COUNTDISTINCT,但这只给了我每行一个“-1”

在表达式中有这样做的方法吗

谢谢

试试这个:

=CountDistinct(IIF(Fields!isAcceptable.Value>0,Fields!TestID.Value,Nothing))
它将产生以下结果:

更新:

它说:如果行是可接受的(大于0),它将把
TestID
传递给
CountDistinct
函数,否则它将什么也不传递(认为行是ommited)<当传递一个新的
值时,code>CountDistinct将通过
1
获得
TestID
值之和

返回由 表达式,在给定范围的上下文中求值


让我知道这是否对您有帮助。

如果重复了
TestItemId
,那么
isAcceptable
值也会重复?@alejandrozuleta是的,谢谢Hanks,您能解释一下这是如何工作的吗?我查找了CountDistinct的语法,但找不到任何类似您的示例。@999cm999,检查我的更新。希望它能帮助您理解表达式的作用。