2012-02-24 6 views
0

私はSSRSレポートのSQLクエリを作成しており、ユーザが指定するフィールドは@startdate@endateです。しかし、SSRSにクエリを入力すると、ユーザーの入力は無視されます。パラメータに割り当てずに比較していたという事実と関係があるのか​​どうか疑問に思っていましたか?SQLのパラメータ化

これらは私の宣言文です:

DECLARE @startdate NVARCHAR(10) 
DECLARE @enddate NVARCHAR(10) 

そして、これは私のwhere句です:代わりに日付の比較のために文字の種類を使用しての

WHERE assignees.id = customers.id 
AND 

((dateadd(second,open_date,'19700101') >= @startdate 
AND dateadd(second,open_date,'19700101') <= @enddate) 

OR 

(dateadd(second,close_date,'19700101') >= @startdate 
AND dateadd(second,close_date,'19700101') <= @enddate)) 

AND group_name = 'SPRQ' 

答えて

1

、私はより信頼性のための日付タイプを使用することをお勧めし、予測可能な結果。また、データセットのparametersプロパティで、クエリパラメータを埋めるために使用されるレポートパラメータが表示されていることを確認します。デザイナーは、クエリパラメータのために使用するレポートパラメータを「思い出させる」必要があることがあります。

+0

具体的には、パラメータを尋ねるソフトウェアをどのように思い出させるでしょうか? – jsmith

+0

データセットの[パラメータ]タブ/プロパティを確認します。これは、左側のクエリパラメータと右側の関連するレポートパラメータを一覧表示します。必要なときにそれを探すために必要なことはあまりありません:-)パラメータ名が変更されることがよくあります小文字を大文字に変更しても)、レポートデザイナーはパラメータマッピングに変更を反映しません。 – Rose

+0

クイックダブルチェック...データセットの先頭にパラメータを宣言していますか?その場合は、その宣言も削除する必要があります...パラメータマッピングでは、代わりにレポートパラメータの宣言を使用できます。 – Rose

関連する問題