2016-05-26 11 views
0

複数の日付範囲パラメータを選択できるサンプルSSRSレポートを作成しようとしています。以下のクエリを使用してReportPeriodの1つを表示するように選択できるレポートを作成することができました。今私は、ユーザーが複数のパラメータを選択できるようにしたい、エクスポートされたExcelは別のシートの各結果を持っています。 MS Visual Studioでは、パラメータを「複数の値を許可」に設定しました。 SQLをどのように変更すればよいですか?複数の日付範囲パラメータを選択できるSSRSレポート

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

にあなたの比較を変更してみてください、複数値のパラメータの特定の値をチェックするために

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' 
+0

どのように日付の範囲を無制限に選択する予定ですか?質問には何かがありませんか? paramentersでリボットを見せてください! – Hiten004

+0

@ Hiten004レポート自体は、SELECTステートメントのようにStartDateとEndDateの2つのパラメータしか使用しません。 Visual Studioでレポートを作成したときに、ラベル「D」、「W」、「M」、「X」、「Y」を持つReportPeriodパラメータを作成します。また、ReportPeriodの値に応じて、StartDateとEndDateを設定します。 – kemflan

答えて

0

しかし、あなたのレポートが一つだけ開始日と1つの終了日を持っている場合、それはあなたのように聞こえます開始日と終了日が異なる複数の期間に合わせて日付パラメータのロジックを変更する必要もあります。

関連する問題