以下のスクリプトをより便利で効率的な (最短の) 方法で書く方法を教えてください。これを行う理由は、SSRS でスクリプトを使用することになるためです。
SSRS では、2 つのパラメーターがあり、どちらも空白の値を取るように設定されています。
SSRS を実行しているユーザーが開始日パラメーターのみを示した場合、私のレポートは任意の日付 >= 開始日を示す必要があります。
ユーザーが @startingdate と @enddate の両方に日付を入力した場合、私のスクリプトは @startingdate と @enddate の間の日付のみを検索します。
皆さんは、私が達成しようとしていることをちょっと理解していますか? このシナリオに似た SSRS レポートがありますが、ステートメントの 1 つを更新すると、他のステートメントでも更新する必要があるため、更新するのは非常に面倒です。また、このため、スクリプトは大きくて反復的です。
コードを短くしたり、コードの煩わしさを軽減したりするためのより良い方法を見つけるのを手伝ってくれるなら、教えてください、ありがとう!
以下は、私が使用するサンプルスクリプトです。
DECLARE @STARTINGDATE
DECLARE @ENDINGDATE
SET @STARTINGDATE = '10/01/2013'
SET @ENDINGDATE = '10/05/2013'
CASE
WHEN @STARTINGDATE <> '' AND @ENDINGDATE <> ''
SELECT * FROM SALESTABLE
WHERE SALESDATE BETWEEN @STARTINGDATE AND @ENDINGDATE
END
WHEN @STARTINGDATE = '' AND @ENDINGDATE = ''
SELECT * FROM SALESTABLE
END
WHEN @STARTING <> '' AND @ENDINGDATE = ''
SELECT * FROM SALESABLE
WHERE SALESDATE >= @STARTINGDATE
END
WHEN @ENDINGDATE <> '' AND @STARTINGDATE = ''
SELECT * FROM SALESABLE
WHERE SALESDATE <= @ENDINGDATE
END