我为SQL Server 2008 R2 Reporting Service创建了一个报告,在设计模式下,此报告如下所示:
你可以看到我在最后一行的第二行的左边单元格中有一个表达式,表达式是:
=CountRows("GroupbyClassification")
当我预览此报告时,它会给我这个错误:
The value expression for the textbox ‘textbox7’ has a scope parameter that is not valid
for an aggregate function. The scope parameter must be set to a string constant that is
equal to either the name of a containing group, the name of a containing data region, or
the name of a data set
此错误是由CountRows(“GroupbyClassification”)引起的,来自
http://technet.microsoft.com/en-us/library/dd255215(v=sql.105).aspx你可以看到CountRows可以在一个小组上工作。但为什么它不适合我。如果我只使用CountRows(),它至少可以正常工作。
答案 0 :(得分:1)
这是因为GroupbyClassification
不是当前或包含的范围。这是儿童范围。如果您使用=CountRows("GroupbyLocation")
,则会为您提供与=CountRows()
相同的结果,因为GroupbyLocation
是当前范围。由于每个GroupbyClassification
组有多个GroupbyLocation
行计数值,因此当您指定GroupbyClassification
范围时,报告无法知道要返回哪一个。
子范围只能用于嵌套聚合。因此,您可以使用=sum(CountRows("GroupbyClassification"))
,但这会为您提供与=CountRows("GroupbyLocation")
和=CountRows()
相同的计数。