Det fremgår ikke særlig tydeligt af dit spørgsmål, hvilken parameter du har problemer med at implementere "ALLE"-filtreringen på. Men fra at se på dine to forespørgsler ser det ud til, at det er @p_ServerName
parameter. I din første forespørgsel ser de to andre ud til at have fået 'ALL'-filtreringen udført korrekt.
Så problemet må være her:
(c1.SystemName = @p_ServerName OR c1.SystemName = c1.SystemName)
For det første, hvad forsøger du at opnå med den anden del? c1.SystemName=c1.SystemName
vil altid være sand (medmindre c1.SystemName er NULL
og hvis det er dit mål, så brug c1.SystemName IS NOT NULL
Jeg synes, det her burde se mere ud som:
([email protected]_ServerName OR @p_ServerName='all')
Det er sådan, du har implementeret de to andre parametre, så måske mangler jeg noget.
Desuden er jeg ikke sikker på, hvad du mener, når du siger, at UNIONed-forespørgselsløsningen må være, hvordan SSRS gør tingene. SSRS omskriver ikke dine forespørgsler baseret på parametrene, det fastholder bare værdierne i disse variabler, så du kan bruge dem i din forespørgsel. Hvis din parameter @p_ServerName
er en streng, så er det bare en VARCHAR-variabel med tegnene "alle" i.