2016-10-19 5 views
0

SSRSに、特定の日付範囲のみを選択できる「支払期間」というパラメータを持つ方法はありますか?たとえば、2014年9月19日から2016年9月25日までを許可し、09/20/2016から09/26/2016までは許可しません。月曜日と日曜日の組み合わせは問題ありませんが、それ以外の場合は実行しません。SSRS「支払期間」のパラメータ

私は、(2つの異なるパラメータとは対照的に)これらの範囲を提供するドロップダウンリストを考えていましたが、その作業を行う方法がわかりません。

+0

私は、ユーザーが日付の範囲を選択できますが、あなたのクエリに日付の範囲を検証し、合格するために非表示にする設定された2つの追加のパラメータを持つ2つのパラメータを持っていると思います。 –

+0

私は以前もそれをやったと思います。両方の日付で1つのパラメータを実行できればいいと思っていましたが、可能かどうかは分かりませんでした。 – Stephen

+0

可能ですが、各範囲を返すクエリを作成し、それを使用してパラメータを設定する必要があります。また、パラメータを渡すクエリでは、値を処理して開始日を含む2つのSQLパラメータおよび終了日。 –

答えて

1

開始日に1つのパラメータを使用し、終了日を6日後に計算します(必要な場合)。

このパラメータでは、データの単一の開始日フィールドを使用してラベルのフィールドを作成します。

パラメータクエリ:

DECLARE @START_DATE DATE = '01/01/2016' 
DECLARE @END_DATE DATE = '10/31/2016' 

;WITH GETDATES AS 
    ( 
     SELECT @START_DATE AS THEDATE 
     UNION ALL 
     SELECT DATEADD(DAY, 1, THEDATE) FROM GETDATES 
     WHERE THEDATE < @END_DATE 
) 

SELECT THEDATE, CONVERT(VARCHAR(10), THEDATE, 101) + ' - ' + CONVERT(VARCHAR(10), DATEADD(D, 6, THEDATE), 101) AS PAYPERIOD 
FROM GETDATES 
WHERE DATEPART(WEEKDAY, THEDATE) = 2 
OPTION (maxrecursion 0) 

これは、ユーザーが日付の範囲を見てみましょうが、必要な場合にのみ使用するレポートに開始日を渡します。

DATE  PAYPERIOD 

2016-01-04 01/04/2016 - 01/10/2016 

2016-01-11 01/11/2016 - 01/17/2016 

2016-01-18 01/18/2016 - 01/24/2016 
0

私は、日付範囲に対して常に2つのパラメータを使用しています。クエリがこれらのパラメータを考慮していることを確認する必要があります。私は通常、@StartDateと@EndDateを使用します。

WHERE <columnName> BETWEEN @StartDate AND @EndDate 

クエリで2つのパラメータを宣言する限り、大丈夫です。パラメータでDate/Timeデータ型を使用すると、使いやすい日付ピッカーが得られます。これは少なくとも毎回私のために働く。

+0

はい、以前の基本的な開始日と終了日も同様に行っています。私は月曜日から日曜日の組み合わせを受け入れるだけで、おそらく日付のパラメータのペア以外の何かを介してそれを行うことができるかどうかを判断しようとしています。 – Stephen

関連する問題