2017-07-11 3 views
1

An diesem Punkt bin ich nicht 100% sicher, was ich fragen muss, aber hier ist das Beste, was ich gerade denke.SSRS Parameter benötigt ein MulitSelect mit Null

Ich habe einen SSRS-Parameter, der aus einer Abfrage generiert wird. Es wird mit einer Liste füllen ähnlich wie

Apple 
Orange 
Banana 

ich dann diesen Parameter verwenden müssen (nennen wir es @Fruit) in der where-Anweisung einer anderen Abfrage. Hier ist der Haken, ich muss auch nach Null suchen.

Um einen Platzhalter für Null in @Fruit füge ich die Liste bevölkern in SSRS Diese

Select fruit 
From fruitTable 
Union All 
Select Null 

bin mit nicht nachlässt, obwohl, weil ich Multi-Select tun und Null ist in einem nicht erlaubt Mehrfachauswahl.

Also zweifache Frage, wie kann ich für Null oder einen Platzhalter idealerweise (benutzerfreundlicher wie Not Entered) in der Parameterliste Population und zweitens wie frage ich dann dagegen in der Hauptabfrage?

Zusätzliche Informationen

Beispieltabelle

FruitTable 
----------- 
Fruit 
===== 
Apple 
Orange 
Banana 

PeopleTable 
--------------------- 
Name | FavoriteFruit 
==== | ============== 
Bob | Apple 
John | Orange 
Bill | Null 

Beispiel Abfragen

Select Name, FavoriteFruit 
From PeopleTable 
Where FavoriteFruit in (@Fruit) 

In this example @Fruit would be ('Apple','Orange',Null) ideally 

Antwort

1

Or is null ist ein guter Anfang:

Select Name, FavoriteFruit 
From PeopleTable 
Where FavoriteFruit in (@Fruit) 
or FavoriteFruit is null 

natürlich, könnten Sie ‚Keine‘ als Option hinzufügen:

Select Name, FavoriteFruit 
From PeopleTable 
Where FavoriteFruit in (@Fruit) 
or (FavoriteFruit is null and 'None' in (@Fruit)) 
+0

Was passiert, wenn ich will manchmal Null nicht bekommen? Es ist möglich, dass die Benutzer nur echte Werte auswählen oder nur eine Null oder eine beliebige Kombination auswählen können. – gilliduck

+0

@gilliduck siehe bearbeiten – JohnHC

+0

Schön! Danke millionenfach. Ich habe das den ganzen Tag gekämpft! – gilliduck