sql - 如何在具有多个数据集的 SQL Server 报告中创建报告文本框聚合表达式

标签 sql sql-server reporting-services

如果有一个 SQL Server Reporting Services 报表,其中报表内有多个文本框,且具有以下表达式的变体

=Sum(IiF(Fields!RegisterID.Value = 6000, 1, 0) 

Iif(Fields!PointID.Value = 500, 1, 0)) / Sum(Iif(Fields!PointID.Value = 500, 1, 0)) 

当我尝试预览报告时,我看到以下错误:

The Value expression for the text box ‘Textbox2’ uses an aggregate expression without a scope. A scope is required for all aggregates used outside of a data region unless the report contains exactly one dataset.

如何解决这个问题?

最佳答案

根据错误,当您在不属于表的文本框中引用数据集字段时,您需要指定表达式的范围,例如你想要一个字段,但是应该使用什么数据集?

所以类似:

=Sum(IiF(Fields!RegisterID.Value = 6000, 1, 0), "MyDataset")

其中 MyDataset 是报告中数据集的名称。

如果您在独立的文本框中执行此操作,则还必须使用聚合函数,例如 FirstSum,因为文本框中只能显示一个值,并且数据集可能有多行;使用聚合可确保根据需要仅返回一个值。

关于sql - 如何在具有多个数据集的 SQL Server 报告中创建报告文本框聚合表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21438550/

相关文章:

reporting-services - 如何拆分全名字段(报表生成器)

sql-server - SSRS 2005 一个字段内的数字格式 int 和 double

sql - 一张 Microsoft SQL 表可以有多个主键吗?

sql-server - 获取自定义时间段的第一个或最后一个值

mysql - DELETE CASCADE MySQL 最佳实践

c# - 执行 SQL 查询时显示进度条

sql - Datepart 和 @@datefirst 的区别

reporting-services - SSRS 中的背景颜色变化

sql - 填补 PostgreSQL 查询结果中的空白

sql - 我们可以通过一个查询从具有公共(public) id 的五个表中获取数据吗?