Het is niet erg duidelijk uit uw vraag op welke parameter u problemen ondervindt bij het implementeren van de "ALL"-filtering. Maar als je naar je twee zoekopdrachten kijkt, lijkt het erop dat het de @p_ServerName
. is parameter. In uw eerste zoekopdracht lijken de andere twee de 'ALL'-filtering correct te hebben uitgevoerd.
Dus het probleem moet hier zijn:
(c1.SystemName = @p_ServerName OR c1.SystemName = c1.SystemName)
Ten eerste, wat probeer je te bereiken met het tweede deel? c1.SystemName=c1.SystemName
zal altijd waar zijn (tenzij c1.SystemName NULL
is) en als dat je doel is, gebruik dan c1.SystemName IS NOT NULL
Ik denk dat dit er meer uit zou moeten zien als:
([email protected]_ServerName OR @p_ServerName='all')
Dat is hoe je de andere twee parameters hebt geïmplementeerd, dus misschien mis ik iets.
Ik weet ook niet zeker wat je bedoelt als je zegt dat de UNIONed-queryoplossing moet zijn hoe SSRS de dingen doet. SSRS herschrijft uw zoekopdrachten niet op basis van de parameters, het stopt alleen die waarden in die variabelen die u in uw zoekopdracht kunt gebruiken. Als uw parameter @p_ServerName
is een string, dan is het gewoon een VARCHAR-variabele met de tekens "all" erin.