在Reporting Services中获取数据集中的第二个值

Nat*_*han 6 ssrs-2008

这似乎是一个非常简单的问题,但我试图将数据集中的第二个值显示为矩阵的标题值.

在本报告中,假设我有2个数据集.在Dataset1中,我有一个查询,可以为参数下拉列表选择下拉3个值.在Dataset2中,我返回一个结果集并将其绑定到我的矩阵.

在矩阵中,我有我的重复列,然后右边有3个额外的分组列,它们具有我想要显示的aggrigate值.在这3列的标题上,我想显示在我的Parameters数据集中显示的3个值.在矩阵(及其数据集)的上下文中,我可以使用以下方法获取不同数据集的第一个和最后一个值(在本例中为Dataset1):

=First(Fields!DateDisplay.Value, "Dataset1")
=Last(Fields!DateDisplay.Value, "Dataset1")
Run Code Online (Sandbox Code Playgroud)

我需要得到类似的东西:

=Second(Fields!DateDisplay.Value, "Dataset1")
Run Code Online (Sandbox Code Playgroud)

如何在不违反聚合列的范围规则的情况下解决此问题?

dot*_*etE 8

对于 SSRS 2008 R2,如果数据集的每一行都有一个标识符列,则可以使用LookUp() 函数执行此操作

=LookUp(1,Fields!Row.Value,Fields!DateDisplay.Value,”Dataset1”)
=LookUp(2,Fields!Row.Value,Fields!DateDisplay.Value,”Dataset1”)
=LookUp(3,Fields!Row.Value,Fields!DateDisplay.Value,”Dataset1”)
Run Code Online (Sandbox Code Playgroud)

如果您没有标识符列,您可以使用ROW_NUMBER()来构建一个。

询问:

SELECT ROW_NUMBER() OVER(ORDER BY DateDisplay) AS Row, DateDisplay
FROM Dates
Run Code Online (Sandbox Code Playgroud)

结果:

Row DateDisplay
--- ---------
1   June 1st    
2   March 12th      
3   November 15th
Run Code Online (Sandbox Code Playgroud)

这是 MSDN 论坛中类似主题的链接:数据集 SSRS 中的第 N 行元素

  • @dotNetE 看起来你的参数顺序错误,应该是 =LookUp(2, Fields!Row.Value,Fields!DateDisplay.Value,”Dataset1”) (2认同)