【问题标题】:Dynamic Date Range in SSRS or SQL Data Tools builderSSRS 或 SQL 数据工具构建器中的动态日期范围
【发布时间】:2015-01-28 20:55:57
【问题描述】:

我正在制作一份报告,该报告将在每个月的 1 日和每个月的 16 日运行。

如果它在 1 日运行,我需要将 @start_date 设为上个月的 16 日到最后一天。

如果它在 16 日运行,我需要将 @start_date 设为每月 1 日到 15 日。

我可以想到几种方法来做到这一点,但我很好奇 SSRS/Report Builder/SQL Data Tools builder 是否有一种简单的方法来设置它。

我的选择是创建一个 SQL 查询来满足我的需要,然后将其从参数的查询部分插入到 Get Balues 中。

【问题讨论】:

    标签: sql-server reporting-services reportbuilder3.0 sql-server-data-tools


    【解决方案1】:

    如果您在月初运行报告,则参数应设置为上个月的 16 日至月底;如果在该月的第二部分运行,则参数应设置为当月的 1 日至 15 日。

    @start_date默认值表达式:

    =IIF(Day(Today) >= 16, DateAdd(DateInterval.Day, 1-Day(Today), Today), DateAdd(DateInterval.Month, -1, (DateAdd(DateInterval.Day, 16-Day(Today), Today))))
    

    @end_date默认值表达式:

    =IIF(Day(Today) >= 16, DateAdd(DateInterval.Day, 15-Day(Today), Today), DateAdd(DateInterval.Day, -1, (DateAdd(DateInterval.Day, 1-Day(Today), Today))))
    

    【讨论】:

    • 我认为最后每个代码块上都缺少)。仅供参考,但在其他方面就像一个魅力。
    • 我遇到了一个需求变更。因此,如果运行报告的日期是 start_date 应该是上个月的第一天,end_date 应该是上个月的最后一天。这是一个容易做出的改变吗?
    • 我想我明白了。我刚刚将16-Day(Today) 更改为1-Day(Today)
    猜你喜欢
    • 1970-01-01
    • 2013-06-28
    • 2021-09-08
    • 2018-05-25
    • 1970-01-01
    • 1970-01-01
    • 2022-01-15
    • 1970-01-01
    • 2021-07-18
    相关资源
    最近更新 更多