【问题标题】: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 是的,谢谢

标签: reporting-services ssrs-2008 ssrs-2008-r2


【解决方案1】:

试试这个:

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

它会产生这个:

更新:

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

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

Reference

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

【讨论】:

  • 谢谢,您能解释一下这是如何工作的吗?我查找了 CountDistinct 的语法,但找不到像您这样的示例。
  • @999cm999,检查我的更新。希望它可以帮助您理解表达式的作用。
猜你喜欢
  • 2017-11-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-16
  • 1970-01-01
  • 1970-01-01
  • 2021-09-14
相关资源
最近更新 更多