如果有一个 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
是报告中数据集的名称。
如果您在独立的文本框中执行此操作,则还必须使用聚合函数,例如 First
或 Sum
,因为文本框中只能显示一个值,并且数据集可能有多行;使用聚合可确保根据需要仅返回一个值。
关于sql - 如何在具有多个数据集的 SQL Server 报告中创建报告文本框聚合表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21438550/