对于我们的一份报告,我试图获取 Canceled 列值为 1 的行数。过去,我使用在 Stackoverflow 上找到的解决方案来将 Sum 函数与 IIF 结合使用,即
=Sum(iif(Fields!Canceled.Value="True", 1, 0))
但现在我的源数据对于一个 booking_id 有多行,因此我需要在该列上添加一个不同的值。在 SQL 中我可以轻松做到
SELECT COUNT(DISTINCT(booking_id)) FROM Booking WHERE Canceled=1
但我不知道如何在 Report Builder 3.0 中获得相同的行为。有什么想法吗?
最佳答案
如果可能的话,按照评论中的建议,在 T-SQL 中执行此操作并不是一个坏主意,但您可以在报告中使用如下表达式执行此操作:
=CountDistinct(IIf(Fields!Canceled.Value = 1, Fields!booking_id.Value, Nothing))
CountDistinct
将忽略 Nothing
(即 Null)记录,因此您可以将 CountDistinct
应用于 IIf
基于 Canceled
返回 booking_id
或 Nothing
的表达式。
关于reporting-services - 报表生成器 3.0 使用 where 子句进行计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25686341/