仅当数据集中另一个字段不同时才计算字段的表达式

Posted

技术标签:

【中文标题】仅当数据集中另一个字段不同时才计算字段的表达式【英文标题】:expression to count field only if another field is distinct in the dataset 【发布时间】:2016-02-02 19:34:00 【问题描述】:

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

=COUNT(iif(Fields!isAcceptable.Value > 0, 1, Nothing)) 

但是,我需要该计数依赖于另一个名为 testItemId 的字段。有时 testItemId 可以在数据集中出现 2 次或更多次,但我需要上面的计数表达式每个 testItemId 只计数一次。所以如果同一个testItemId出现4次,我只希望isAceptable值被统计一次。

我也尝试了 COUNTDISTINCT,但这只是给了我每行的“-1”。

有没有办法在表达式中做到这一点?

谢谢

【问题讨论】:

如果TestItemId 重复,isAcceptable 的值也会重复吗? @alejandrozuleta 是的,谢谢 【参考方案1】:

试试这个:

=CountDistinct(IIF(Fields!isAcceptable.Value>0,Fields!TestID.Value,Nothing))

它会产生这个:

更新:

它说:如果该行是可接受的(大于 0),它会将 TestID 传递给 CountDistinct 函数,否则它不会传递任何东西(认为该行被省略了)。当传递 new TestId 值时,CountDistinct 将得到 TestID 值和 1 的总和。

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

Reference

如果这对你有帮助,请告诉我。

【讨论】:

谢谢,您能解释一下这是如何工作的吗?我查找了 CountDistinct 的语法,但找不到像您这样的示例。 @999cm999,检查我的更新。希望它可以帮助您理解表达式的作用。

以上是关于仅当数据集中另一个字段不同时才计算字段的表达式的主要内容,如果未能解决你的问题,请参考以下文章

仅当字段为空时才更新来自 select 语句的查询

仅当一个字段作为数组提供时,Laravel Eloquent 才插入多条记录

SSRS 2008,两个数据集,一个图表

BigQuery:仅当字段具有特定值时才获取表中的最新行

仅当字段不为空时才进行电子邮件验证

Django:如何根据来自行的数据和来自另一个模型的数据将聚合字段添加到查询集中?