単一列のIN演算子を使用してSSRSでデータセットをフィルタリングしようとしています。複数の値を追加すると失敗します。パラメータが動作していないSQL IN演算子を使用するSQL Serverレポートビルダー3
これは、新しい問題に焦点を当てるために他のフィルタを除いた私のSQL文です。
SELECT * FROM vActivityDetailed WHERE Category IN (@Category)
@categoryは、データセットのプロパティ下オーバーライド発現によって影響されます。
=Split(Parameters!Category.Value, ",")
代わりの複数値パラメータを使用して、私は単一の値としてこれを扱い、分割を行うことにより、SSRSは次のように実行しなければならないことを願っています。
C#の - ASP.NETコード
string categoryString = "Expenses, Misc, Accounts-Receivable";
paramPayType.Name = "Category";
paramPayType.Values.Add((categoryString!= "" ? categoryString : null));
SSRS最終的なSQLが実行される(予想)
SELECT * FROM vActivityDetailed WHERE Category IN ('Expenses', 'Misc', 'Accounts-Receivable')
私はSQL Server Management Studioを使用してSQL上で直接これをテストしてきたので、私は知っています上記のSQLはレコードを返すので動作するはずですが、SSRSで適用すると失敗しますAn error has occurred during report processing. (rsProcessingAborted)
アプリケーションからサーバーに送信されたSQLクエリテキストをトレースしようとしましたか? – niktrs
@niktrsクエリのテキストがSQLレポートサーバー上に生成され、ASP.NETアプリケーション内にある唯一のコントロールがパラメータを送信しているため、意味が分かりません。送信前に各パラメータの値を見ることができますが、それ以降は、各パラメータが送信されたことを示すSQLレポートサーバーのデータベースのエラーログが表示され、エラーログに正しく表示されます。 –