mssql 2005 reporting multivalue parameter en wildcards

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • co-reporter
  • Registratie: Juli 2009
  • Laatst online: 19-07-2009
hoi
ik heb een report waar ik wil kunnen selecteren op: Aap en/of Beer of %
dit wil ik doen via een multivalue parameter

in de sql staat dan:
where beest in (@beest)

Dat gaat goed voor aap en/of beer. Echter als in op % (wildcard) wil selecteren lukt dat niet.

doe ik where beest in (@beest or beest like left(@beest,1) krijg ik een probleem. Namelijk de list Aap,Beer bevat een ',' en left mag maar 1 parameter hebben.

Heeft iemand een mooie oplossing.

Acties:
  • 0 Henk 'm!

Verwijderd

Begin 's bij het begin... Waarom wil je dat met een multivalue parameter doen?
Ik heb geen ervaring met de RS-kant, maar aan de MSSQL-kant (de uiteindelijke query) kan 't prima met
SQL:
1
WHERE beest = 'Aap' OR beest = 'Beer' OR beest LIKE ('jouw wildcard selectie%')

Dat zijn 3 parameters. 'Aap' en 'Beer' kun je met een IN clause wel in 1 param gieten, maar die LIKE clause krijg je daar toch echt niet ingepropt.

Even gegoogled, en SSRS' multivalue parameters schijnen/blijken voor 100% te leunen op SQL's IN clause, en IN kan nu eenmaal niet overweg met wildcards. Gelukkig maar, en ook wel logisch: "beest IN ('1','2','3')" is intern gelijk aan "(beest = '1' OR beest = '2' OR beest = '3')". Daar ook nog wildcards aan toevoegen? Niet handig, en volstrekt overbodig omdat daar al de LIKE clause voor is.

Acties:
  • 0 Henk 'm!

  • co-reporter
  • Registratie: Juli 2009
  • Laatst online: 19-07-2009
hoi, bedankt voor je antwoord.

Ik heb een invoer parameter. met de vraag welke beesten wilt u zien.
hier zou ik de mogelijkheid willen hebben om alle apen en alle beren te zien, maar ook alle a% (aap, adelaars e.d.) of % alle beesten.
multivalue regels netjes de invoer, de presentatie in het rapport gaat met een join in de expressie ook goed. maar die wildcards mis ik.

Acties:
  • 0 Henk 'm!

  • co-reporter
  • Registratie: Juli 2009
  • Laatst online: 19-07-2009
dit zou de selectie moeten zijn:
WHERE beest = 'Aap' OR beest = 'Beer' OR beest LIKE v%

Acties:
  • 0 Henk 'm!

  • co-reporter
  • Registratie: Juli 2009
  • Laatst online: 19-07-2009
Ik zou ook in de multivalue alleen % kunnen geven en ik heb dan alle beesten gevonden
where beest like "%"

Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 21:31

Creepy

Tactical Espionage Splatterer

Tip: edit je post als je wat wilt toevoegen. Scheelt weer 3 posts onder elkaar :)

Als je een like '%' doet laat dan de where gewoon volledig weg, dan selecteer je nog steeds alle beesten. Kan je niet aan de hand van de ingevoerde zoekwaarden zelf een query samenstellen? Dan kan je zowel IN als LIKE gebruiken.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

  • co-reporter
  • Registratie: Juli 2009
  • Laatst online: 19-07-2009
het moet allemaal gestuurd worden via de parameter. tijdens het gebruik moet men daar één of meerdere beesten of % of een combinatie kunnen ingeven

Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 21:31

Creepy

Tactical Espionage Splatterer

Dat is toch geen probleem? Je moet het alleen zelf ombouwen tot een geldige query omdat een multivalue parameter op een IN leunt en die ondersteunt blijkbaar geen wildcards.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1