【发布时间】:2016-03-07 16:24:17
【问题描述】:
我今天早上的大部分时间都被困在这个问题上...我正在尝试解决关于我的“截至日期”的 SSRS 报告的显示问题。此报告背后的数据每晚加载一次,这意味着数据仅与昨天的实际日期一样好。我的问题是我的报告当前默认参数为=@AsOfDate = Today()。
但是,为了准确反映这一点,每当用户想要更改此报告上的日期时,我需要“截至日期”始终反映昨天。因此,如果我们在 2016 年 3 月 7 日运行此报告,则报告背后的数据来自 2016 年 3 月 6 日,因此,报告应显示“截至”2016 年 3 月 6 日,如果他们选择了 2/29,在查看报告上,它应该显示 As Of 2/28/16,等等。
我在报告中的 SQL 语句正在使用我的报告表中名为 CurrentDate 的列,它只保存每晚的加载日期。它指出...
WHERE @AsofDate = CurrentDate
有谁知道我如何准确地编写脚本,以便用户始终知道数据来自前一天晚上?
谢谢!,
【问题讨论】:
-
您应该将上次更新表格的实际日期存储在某处,这样您就可以报告该日期而不是昨天
-
您可以在 SSRS 表达式中使用 DATEADD 函数。
-
@Lamak 这样做最有意义。我不能按照建议使用 Today -1,因为如果用户选择 3/5/16,则 As Of Date 应显示 3/4。我的问题是,如果我的 AsOfDate 反映了我的表中的 CurrentDate 列,我是否可以写一些更具体的东西来让标题中的 AsOfDate 始终显示 -1,而不管用户选择什么?
标签: sql-server tsql reporting-services