SSRS按可用的最后日期排序

时间:2013-02-12 12:54:19

标签: ssrs-2008 reporting-services

我有名称,描述和消息的列。为了在ssrs中查看这些列,将应用日期过滤器。但是,当日期很短时,我会收到错误。错误:提供程序终止执行,因为达到了资源限制。我的问题是:是否可以将数据过滤器减少到数据库中存在的最后日期。通过这种方式,数据过滤器可以应用于数据库中的最后一个现有日期,然后将消除错误。

提前致谢。

EDIT1:

时间戳|名称|说明|消息|

11/12/2011 10:50:51 AM | EBKBH 2349 |泵|功能|

01/08/2012 10:50:51 AM | ZDFWH 2989 |传感器|关闭|

并且假设1/08/12是数据库中的最后一个日期,但在过滤器中我选择了01/01/13 - 02/02/13之间的日期然后应用程序运行了很长时间然后它给了我前面提到的错误

1 个答案:

答案 0 :(得分:1)

当你在SSRS中选择多个DataSource时,我不知道你为什么要做Openquery。

我会做一些比这更简单的事。

  1. 为您的表格日期设置数据源,如果您的实际数据在其他地方,则设置另一个数据源。
  2. 设置一个数据集,称之为“MaxDate”,最后一个日期为:

    Select Max(Date) as MaxDate
    From (tableName)
    

    这为您提供了整个表格的最大日期,听起来就像您想要的那样。

  3. 设置一个参数,在2中获取此数据集。通过选择参数来使用“从查询中获取值”。选择它以使用MaxDate作为id和标签。

  4. 现在为您的主查询设置一个数据集但是您喜欢并执行谓词:

    Where dt between @Start and @MaxDate
    
  5. 您可以使用您想要的日期值设置@Start参数,但@MaxDate绑定到您指定的最大日期。

  6. **可选:如果您希望灵活地不使用@MaxDate,则将另一个Date字段设置为@End,并将@MaxDate的值默认为它。您只需创建第三个变量@End,然后在“默认值”窗格中选择“指定值”。点击'Fx'(表达式)按钮,然后选择参数!MaxDate.Value,这将默认为最大日期。但你也可以选择一个先前的日期。

    我通常使用共享数据集中的日期默认设置我的大部分报告,以使它们在设定的日期范围内保持运行。