reporting-services - 报表生成器 3.0 使用 where 子句进行计数

标签 reporting-services report builder reportbuilder3.0

对于我们的一份报告,我试图获取 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_idNothing 的表达式。

关于reporting-services - 报表生成器 3.0 使用 where 子句进行计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25686341/

相关文章:

oracle - 如何在Oracle APEX的报表的每一行中添加编辑按钮?

java - 构建器模式的实现

java - 没有输入参数的构建器,具有静态构建方法?

mysql - SSRS 提示使用 unxtimestamp 处理 mysql 数据库

html - 在 SSRS 2008 中呈现完整的 HTML(不仅仅是标签)

c# - 最佳 Web .net 查询生成器

pdf - (DOORS/DXL) 导出为 pdf 或使用给定模板打印

java - 在Matlab中编译和调用命令窗口内容

pdf - SSRS - 字体未嵌入到 pdf 文件中

.net - SQL 报告 - 多页 EMF 报告问题