私は rdl レポートを作成しています。3 つのチェック ボックスがあり、チェックした場合は WHERE ステートメントを変更する必要があります。何もチェックされていない場合、結果は日付範囲でのみ一致するはずです。1 つ以上がチェックされている場合、文字列に対応する変数に一致するフィールドを返す必要があります。
WHERE
(EffectiveDate BETWEEN @StartDate AND @EndDate)
AND (((@IncludeSEWPrefix = 1 AND PrefixId = 'SEW') OR @IncludeSEWPrefix = 0)
AND ((@IncludePAWPrefix = 1 AND PrefixId = 'PAW') OR @IncludePAWPrefix = 0)
AND ((@IncludeRPLPrefix = 1 AND PrefixId = 'RPL') OR @IncludeRPLPrefix = 0))
これまでの私のコードは、何もチェックされていない場合とチェックされている場合に機能しますが、複数のチェックボックスがチェックされている場合は何も返しません。これを修正するために、コードを次のように変更しました
WHERE
(EffectiveDate BETWEEN @StartDate AND @EndDate)
AND ((((@IncludeSEWPrefix = 1 AND PrefixId = 'SEW') OR @IncludeSEWPrefix = 0)
OR ((@IncludePAWPrefix = 1 AND PrefixId = 'PAW') OR @IncludePAWPrefix = 0)
OR ((@IncludeRPLPrefix = 1 AND PrefixId = 'RPL') OR @IncludeRPLPrefix = 0)))
その結果、選択されたものに関係なく、すべての行が返されました。誰かが私が間違っているところを教えてもらえますか?