首页 > 解决方案 > 根据日期字段过滤 Tablix

问题描述

我有一个返回基本数据行的报告。我需要过滤这个并且只获取昨天的数据。我正在考虑向 tablix 添加一个过滤器,选择日期字段,将运算符值设置为 =,然后使用 Today(),但似乎无法使用 -1 或类似的东西来操作 Today()。

欢迎任何其他表达建议。

此外,对于同一个数据集,我需要根据提交的一个日期过滤昨天,只要另一个日期字段不是同一日期。例如,修改日期是昨天,但创建日期不一样。

标签: reporting-servicesssrs-2012

解决方案


有几种方法可以实现这一目标。您可以通过使用两个过滤器 first> dateadd("d",-1,Today())和 second的过滤器来做到这一点< Today()。但我建议在你的 SQL 中使用参数,而不是在报告阶段这样做。在您的 SQLs WHERE 子句中,您可以添加

    WHERE ...
And
    [date field] BETWEEN @StartDate and @EndDate

然后,您可以在报告中创建两个日期/时间类型参数@StartDate 和@EndDate,并根据需要使用它们来操作数据。然后,您可以将这些参数的默认值设置为您想要的任何参数,并且在运行报告时,它将为您(或您的最终用户)提供一个日历来选择您/他们喜欢的任何日期范围。同样,如果您只想要“昨天”数据,您可以将默认 @StartDate 设置为=dateadd("d",-1,Today())并将您的 @EndDate 默认设置为=Today()这样,您的无关数据将在 SQL 级别被删除,这意味着您不会浪费资源导入比您需要的更多的数据并且您如果您希望在不同的日期范围内一次性运行报告,则不必为更改过滤器而烦恼。


推荐阅读