テーブルフィルター内でIN演算子を使用するときの構文をどのようにすればよいでしょうか。私は以下を試しましたが、snytaxは間違っています:
Valueプロパティを変更し、動作する値のカンマ区切りリストを追加するだけの場合:
とにかく、これは簡単なテストでうまくいきました。
Books Onlineは例についてはかなり軽いようですが、私は1つの参照を見つけました。 Commmonly Used Filters のIn
の例を参照してください。これをもっとうまく説明できたらいいですね。
私もこれに関していくつかの問題を抱えていました。 Microsofts own documentation は、Valueボックスの値の単純なコンマ区切りリストが機能することを示しています。 ITはしないので、これは紛らわしいです。少なくとも私にとってはそうではなく、Visual Studio 2010でSSRS 2012を使用しています。
IN演算子を使用している場合、SSRSは値の配列を期待していることがわかります。これをフィルターで機能させるには、いくつかの方法があります。次の例は、式エディターで入力するためのものです。
最初の方法(以下にリンクされているブログでも説明されている方法)は、文字列値にカンマ区切りのリストを入力し、それに対してsplit関数を使用することです。
=split("2B,2C",",")
または、複数値パラメーターからリストを派生させることができます。複数値パラメーターは既に配列であるため、以下に示すように、パラメーター式を介して参照するだけです。
=Parameters!MultiValueParam.Value
この情報は次のブログで見つけました。 http://sqlblogcasts.com/blogs/simons/archive/2007/11/20/RS-Howto--Use-the-IN-operator-in-a-filter-expression.aspx
これは実際に機能します:
=CStr("Value1,Value2,Value3,Value4,etc").Split(",")
これはSSRS 2012でテストされています。
推奨される解決策が何らかの形で機能しない場合は、セミコンをセパレータとして使用してみてください。
例:基準1。基準2
それは私のために働いた。
式から先頭の=
を削除します。
"criteria one" , "criteria two"
"value1" "value2"
1つのスペースで、コンマは機能しませんでした。おもしろいことに、テスト後に戻ってみると、
value1, value2
コンマと引用符なし。それを切り取ってから同じフィールドに直接貼り付けると、機能しません。これは、バグのあるs ** tです。
基になるデータ型はnvarchar(10)であり、nullではありません
VS 2017およびSSRS 2016でテスト済み
これはSSRS 2012で機能しました。
「基準1」、「基準2」
整数値には次を使用できます。
タイプ:テキスト
演算子:で
値:= New Integer(){8800,8820}
2008 R2以降のバージョンで動作するはずです
私の問題は、この方法を使用するだけで、多くの試みの後に最終的に解決されました。
式:
= InStrRev(区切り文字付きの完全な文字列、検索する値)
タイプ:整数
演算子: <>
値: 0
おそらく、私は最近のSSRSのバージョンと一緒にいるでしょう。値のタイプはtextです。私にとっては、
"criteria 1";"criteria 2";...;"criteria N"
二重引用符は必須です。
OMGとても多くの答え...
これが機能することは知っています。
1) MY SP returns VARCHAR(n) for the field I will filter in the tablix. Returning INT DOES NOT WORK in my solution. I don't know why (yet).
2) report.param.allow multiple values = true
3) tablix.filter.expression.datatype = text
4) tablix.filter.operator = IN
5) tablix.filter.value = =SPLIT(JOIN(Parameters!id.Value,","),",")
このメソッドを使用して、SPを1回呼び出し、パラメーターで使用して使用可能な値を取得し、レポートを実行すると、Tablixテーブルが上記のステップ5で選択したデータを読み取り、正しい行数を表示しました。
私の値にはスラッシュが含まれていました。 SSRSを取得できる唯一の方法 In ▼ それらを正しく処理する演算子は、式_=
_CStr("google / cpc,bing / cpc").Split(",")
を使用していました
式に次のクエリを入力します。
=Join(Parameters!MultiValueParam.Value)