Sql 使用Previor和Next函数在Access和SSRS(Microsoft Visual Studio 2012)中重新创建Hyperion报告

Sql 使用Previor和Next函数在Access和SSRS(Microsoft Visual Studio 2012)中重新创建Hyperion报告,sql,ms-access,reporting-services,ssrs-2008,Sql,Ms Access,Reporting Services,Ssrs 2008,我在Hyperion中有几个报告,我使用next和Previor函数查看前面的行和/或后面的行 为此,我以某种方式对数据进行排序,以确保hyperion中的Previor或next函数在当前行的上方或下方找到正确的行。例如,我可以对另外两行进行排序,以获得正确的排序,使函数能够正常工作 现在,我希望能够找到一种在Access和SSRS中重新创建这些报告的方法 我一直在寻找一种方法来实现这一点,或者两者兼而有之。但目前我还没有找到办法 如果我需要一个唯一的字段来帮助实现这一点,我可以在大约4个字段

我在Hyperion中有几个报告,我使用next和Previor函数查看前面的行和/或后面的行

为此,我以某种方式对数据进行排序,以确保hyperion中的Previor或next函数在当前行的上方或下方找到正确的行。例如,我可以对另外两行进行排序,以获得正确的排序,使函数能够正常工作

现在,我希望能够找到一种在Access和SSRS中重新创建这些报告的方法

我一直在寻找一种方法来实现这一点,或者两者兼而有之。但目前我还没有找到办法

如果我需要一个唯一的字段来帮助实现这一点,我可以在大约4个字段之间串联起来,形成一个列,该列的每一行都有一个唯一的键


有人能给我指出一篇好文章或者知道怎么做吗?我真的非常感激,谢谢你

使用排序和分组,可能与您在Hyperion中所做的类似,您可以使用表达式在SSR中完成这一点:

  • FIRST()将返回当前数据范围的第一行

  • LAST()将返回当前数据范围的最后一行

  • PREVIOUS()

当然,缺少的是NEXT()之类的内容。无论出于何种原因,微软认为不适合加入NEXT()选项。相反,您需要开发自己的解决方案。我看到了一些常用的策略:

  • 针对报表数据集的LOOKUP(或LOOKUPSET/MULTILOOKUP)函数,结合FIRST或ROWNUMBER来获取

  • 编写一些自定义代码来为您进行排序/索引,请参见此处了解一个想法:

  • 使用LAG/LEAD,通过SQL执行您需要执行的任何数据操作