繁体   English   中英

SSRS报告允许选择多个日期范围参数

[英]SSRS report that allow multiple date range parameters selected

我正在尝试创建一个示例SSRS报告,该报告允许选择多个日期范围参数。 我能够创建报告,允许用户使用以下查询选择查看ReportPeriod之一。 现在,我想允许用户选择多个参数,导出的Excel将每个结果放在单独的工作表中。 在MS Visual Studio中,我已将参数设置为“允许多个值”。 我应该如何修改我的SQL?

DECLARE @StartDate DATETIME
DECLARE @EndDate DATETIME
DECLARE @ReportPeriod CHAR(1)

IF @ReportPeriod='D'
BEGIN
    SET @StartDate= DATEADD(day,DATEDIFF(day,1,GETDATE()),0)
    SET @EndDate= DATEADD(day,DATEDIFF(day,0,GETDATE()),0)
END

ELSE IF @ReportPeriod='W'
BEGIN   
    SET @StartDate = DATEADD(wk, DATEDIFF(wk,6, GETDATE()),-1)
    SET @EndDate = DATEADD(wk, DATEDIFF(wk, 6, GETDATE()), 6)

END

ELSE IF @ReportPeriod='M'
BEGIN
    SET @StartDate=DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE())-1, 0)
    SET @EndDate= DATEADD(MONTH, DATEDIFF(MONTH, -1, GETDATE())-1, 0)
END 

ELSE IF @ReportPeriod='X' -- Get Month To Date
BEGIN
    SET @StartDate=DATEADD(month, DATEDIFF(month, 0, GETDATE()), 0)
    SET @EndDate= DATEADD(day,DATEDIFF(day,0,GETDATE()),0)
END 

ELSE IF @ReportPeriod='Y' -- Get Year To Date
BEGIN
    SET @StartDate=DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)
    SET @EndDate= DATEADD(day,DATEDIFF(day,0,GETDATE()),0)
END 

SELECT @StartDate AS 'StartDate', @EndDate AS 'EndDate'

要检查多值参数中的特定值,请尝试将比较更改为

IF 'D' IN(@ReportPeriod)
BEGIN
    SET @StartDate= DATEADD(day,DATEDIFF(day,1,GETDATE()),0)
    SET @EndDate= DATEADD(day,DATEDIFF(day,0,GETDATE()),0)
END

但是,如果您的报告只有一个开始日期和一个结束日期,听起来您还需要更改日期参数逻辑以适应具有不同开始日期和结束日期的多个期间。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM