reporting-services - 根据日期字段过滤 Tablix
问题描述
我有一个返回基本数据行的报告。我需要过滤这个并且只获取昨天的数据。我正在考虑向 tablix 添加一个过滤器,选择日期字段,将运算符值设置为 =,然后使用 Today(),但似乎无法使用 -1 或类似的东西来操作 Today()。
欢迎任何其他表达建议。
此外,对于同一个数据集,我需要根据提交的一个日期过滤昨天,只要另一个日期字段不是同一日期。例如,修改日期是昨天,但创建日期不一样。
解决方案
有几种方法可以实现这一目标。您可以通过使用两个过滤器 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 级别被删除,这意味着您不会浪费资源导入比您需要的更多的数据并且您如果您希望在不同的日期范围内一次性运行报告,则不必为更改过滤器而烦恼。
推荐阅读
- android - Uri 和存储路径不同 - Xamarin
- swiftui - 如何删除 SwiftUI 中最后一个列表项中的分隔符?
- java - 对更多类使用 IntelliJ 的“生成代码”
- javascript - 如何动态导入img
- azure-log-analytics - 在一个 Azure 日志查询中使用不同的时间段
- excel - 用于添加工作表的 Excel VBA 循环
- python - DataFrame对象在sql中不可调用
- bash - 如何使用 bash 在 HDFS 中的一行上列出带有元数据的文件?
- node.js - 配额组“AnalyticsDefaultGroup”超出配额并限制“每个用户每 100 秒的请求数”
- java - 如何在 Spring Boot 中使用来自 rest 模板的 Json 并将每个元素映射到另一个 Json