【发布时间】:2018-08-01 13:32:40
【问题描述】:
我有一个 SSRS,它由报表表编译而成,每个表都与一个存储过程相关联,所有这些表都使用相同的 ID。我通过 UI 自动传递 ID。
因为报告中的信息太多了,对于每个部分,我想在每个表中添加一列,并带有一个表达式。它会给记录计数。这意味着,如果表中有一个艺术家的专辑,就会有一个专辑记录列,它会是这样的:
艺术家:粉红色 专辑记录专辑名称专辑发行日期等 1 的 5 2 个,共 5 个 5 个中的 3 个
为了构建专辑记录的片段,我在存储过程中添加了一个行计数器。这是那条 SQL 行:
,ROW_NUMBER() OVER (PARTITION BY pc.ID ORDER BY ARID.ID) 'Album Record Number'
pc.id 是传递的 ID 参数,也就是说,我们只传递和检索 1 个 pc.ID。 ARID.ID 用于子记录 ID。
这将创建第一块。记录 1,2,3。
在SSRS表中,我添加一列,并做一个表达式:
=Fields!Album_Record_Number.Value & " of " & Count(Fields!ARID.Value,"ID")
这应该给我“1 of 3”、“2 of 3”、“3 of 3”。
当我尝试预览报告时,出现错误:
本地报告处理过程中发生错误。的定义 报告“/MainReport”无效。文本的值表达式 框“XYZ”具有对聚合无效的范围参数 功能。范围参数必须设置为等于 包含组的名称,包含数据的名称 地区或数据集的名称。
任何人都知道如何做我想做的事吗?我担心我可能必须将总计数添加到存储过程中,这意味着我必须将其添加到所有存储过程中。我希望表格列中的表达式可以解决问题。
任何建议将不胜感激!
【问题讨论】:
标签: sql-server ssrs-2012 record ssrs-tablix rowcount