it-swarm.com.de

Verwenden des IN-Operators zum Filtern in Berichtsdiensten

Kann jemand raten, wie die Syntax aussehen soll, wenn der IN-Operator innerhalb eines Tabellenfilters verwendet wird

enter image description here

26
JsonStatham

Wenn Sie einfach die Eigenschaft Value ändern und eine durch Kommas getrennte Liste von Werten hinzufügen, die funktionieren sollten:

enter image description here

Das hat in einem schnellen Test für mich trotzdem funktioniert.

Die Onlinedokumentation scheint für Beispiele ziemlich leicht zu sein, aber ich habe eine Referenz gefunden. Siehe das In-Beispiel in Häufig verwendete Filter . Es wäre schön, wenn das besser erklärt würde.

15
Ian Preston

Ich hatte auch einige Probleme mit dieser. Microsofts Eigene Dokumentation Eine einfache, durch Kommas getrennte Liste von Werten im Feld Wert sollte funktionieren. Dies ist verwirrend, weil es nicht tut. Zumindest nicht für mich und ich verwende SSRS 2012 mit Visual Studio 2010.

Es stellt sich heraus, dass SSRS bei Verwendung des IN-Operators ein Array von Werten erwartet. Es gibt verschiedene Möglichkeiten, wie Sie dies für den Filter nutzen können. Die folgenden Beispiele sollen im Ausdruckseditor eingegeben werden.

Der erste Weg (auch der in dem unten verlinkten Blog erläuterte Weg) besteht darin, einfach Ihre durch Kommas getrennte Liste in einen String-Wert einzugeben und dann die Split-Funktion darauf zu verwenden.

=split("2B,2C",",")

Oder Sie können Ihre Liste von einem mehrwertigen Parameter ableiten. Der Multi-Value-Parameter ist bereits ein Array, Sie müssen ihn also nur über den Parameterausdruck referenzieren (siehe unten).

=Parameters!MultiValueParam.Value

Diese Informationen habe ich im folgenden Blog herausgefunden. http://sqlblogcasts.com/blogs/simons/archive/2007/11/20/RS-Howto--Use-the-IN-operator-in-a-filter-expression.aspx

36
Jordan H

Das funktioniert eigentlich:

=CStr("Value1,Value2,Value3,Value4,etc").Split(",")

Dies wird in SSRS 2012 getestet.

11
novell morris

Wenn die empfohlene Lösung für Sie nicht funktioniert, verwenden Sie ein Semicon als Separator.

Beispiel: Kriterien Eins; Kriterien zwei

Es hat für mich funktioniert.

4
Mark Keip

Dies hat für mich in SSRS 2012 funktioniert.

"Kriterium eins", "Kriterium zwei"

2
Gopal Ghelani

Für ganzzahlige Werte können Sie Folgendes verwenden:

Text eingeben

Betreiber: In

Wert: = New Integer () {8800,8820}

Sollte auf 2008 R2 und neueren Versionen funktionieren

2
ilker

Entfernen Sie den führenden = aus dem Ausdruck, d. H.

"criteria one" , "criteria two"
2
Will Wainwright
"value1" "value2"

mit einem Leerzeichen und keinem Komma hat für mich gearbeitet. Das Komische ist, wenn man nach dem Testen zurückschaut, erscheint es als

value1, value2

mit einem Komma und ohne Anführungszeichen. Wenn ich das ausschneide und es direkt wieder in dasselbe Feld einfügen, funktioniert es nicht. Das hier ist ein Fehler.

Der zugrunde liegende Datentyp ist nvarchar (10) und nicht null

Getestet mit VS 2017 und SSRS 2016

1
rgfuller

Wahrscheinlich bin ich mit einer neueren Version von SSRS. Der Typ der Werte lautet text . Für mich gearbeitet als

"criteria 1";"criteria 2";...;"criteria N"

Doppelzitate sind obligatorisch. 

0
SNR

Mein Problem wurde nach vielen Versuchen endlich gelöst, nur mit dieser Methode.

Ausdruck:

= InStrRev (vollständiger String mit Trennzeichen, Wert zur Suche)

Typ: Integer

Operator: <>

Wert: 0

0
Adrian

OMG so viele Antworten ...
Ich weiß, dass das funktioniert:

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,","),",") 

Mit dieser Methode konnte ich das SP einmal aufrufen, es in einem Parameter verwenden, um verfügbare Werte abzurufen, den Bericht auszuführen und die Tablix-Tabelle die ausgewählten Daten aus Schritt 5 oben zu lesen und die richtigen anzuzeigen Reihenanzahl.

0
sbrichard

Мои ценности включают косые черты. Единственный способ получить SSRSIn      ▼Оператор для их правильной обработки был с выражением =CStr("google / cpc,bing / cpc").Split(",")

0
Vorlic

Geben Sie diese Abfrage in expression ein:

=Join(Parameters!MultiValueParam.Value)
0
user2851776