2017-12-18 17 views
0

1つのストアドプロシージャをデータセットソースとして共有する2つのレポートがあり、フィルタクラウズルを除いてほとんど同じです。 内部レポートパラメータを作成しました。このパラメータに従ってフィルタを設定するにはどうすればよいですか。パラメータを使用してデータセットをフィルタリングする方法は?

私が試してみた:

...data 
    WHERE 
     CASE WHEN @ReportFilter = 1 THEN apd.[Date] BETWEEN @DateFrom AND @DateTo 
      WHEN @ReportFilter = 2 THEN pd.[Date] BETWEEN @DateFrom AND @DateTo 
     END 

答えて

1

ちょうど単一の日付値を返すと、その値は@DateFromと@DateToの間にあるかどうかを確認するためにあなたのケース式を使用

(1 = CASE WHEN @ReportFilter = 1 and apd.[Date] BETWEEN @DateFrom AND @DateTo then 1 
      WHEN @ReportFilter = 2 and pd.[Date] BETWEEN @DateFrom AND @DateTo then 1 
     END) 
+0

Management Studioで承認されたのはなぜですか?(1 = CASE ... "と" 1 ")? –

+0

reportfilterが1の場合、[Date] BETWEEN DateFromとDateToを確認する必要があります。したがって、両方の条件が真である場合、1はあなたの要件を満たす1(1 = 1)で評価されます。 –

関連する問題