【问题标题】:"As of Date" Report logic“截至日期”报告逻辑
【发布时间】: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


【解决方案1】:

尝试将您的 AdOfDate 设置为昨天的默认值(计算得出):

@AsOfDate = DateAdd(DateInterval.Day, -1, Today())

否则,您可以将 SQL 查询设置为执行相同的操作

WHERE AsOfDate = DateAdd(d, -1, GetDate())

【讨论】:

    猜你喜欢
    • 2023-03-09
    • 2018-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-13
    • 2020-05-22
    相关资源
    最近更新 更多