Meerdere waarden uitsluiten in query

Status
Niet open voor verdere reacties.

KweeniE

Gebruiker
Lid geworden
12 jul 2002
Berichten
161
Ik zit nu al een hele tijd te hannesen met een query om meerdere getallen uit te sluiten.

Eén getal uitsluiten is geen punt, bij criteria aangeven Not 100 bijvoorbeeld, maar als ik bijvoorbeeld geen 100 en ook geen 200 wil hebben lukt het niet. Krijg vaak melding gegevenstypen komen niet overeen in criteriumexpressie of ze worden beide wel weergegeven. Heeft iemand de oplossing wat ik moet invoeren?

Not 100 & 200 (gegevenstypen komen niet overeen)
Not 100 Or 200 (200 wel weergegeven)
Not 100 & Not 200 (gegevenstypen komen niet overeen)
 
Eerst even uitleggen wat je fout doet, dan kun je vervolgens zelf wel bepalen hoe je het dan wél moet doen :).

Not 100 & 200 (gegevenstypen komen niet overeen)
Het Ampersand teken gebruik je om strings samen te voegen tot één string. 100 & 200 wordt dus: 200100. Maar omdat strings tussen quootjes moeten staan, had je dit moeten typen: "100" & "200". Vandaar de foutmelding.
Not 100 & Not 200 (gegevenstypen komen niet overeen)
Dat is in essentie dezelfde fout als hierboven. De uitkomst hiervan zou zijn geweest, had je het technisch goed gedaan: Not "100Not200". Overigens een onzinstring...
Not 100 Or 200 (200 wel weergegeven)
Dit is wél een correcte filtering, maar niet de gewenste. Deze elimineert 100, en laat de waarde 200 wel toe. De toevoeging Or 200 kan je hier dus net zo goed weglaten, want 200 zat al in het resultaat. Je krijgt die waarde er dus niet extra bij.
Sowieso kun je dit nooit bereiken met een OR variant; daarmee sta je namelijk de eerder benoemde waarden gelijk weer toe!

Er zijn verschillende manieren om waarden uit te sluiten. De makkelijkste (maar meest lange) vorm is:
NOT 100 AND NOT 200 AND NOT 300 AND NOT 400 etc.
Maar die string kan dus lang en daardoor onoverzichtelijk worden. Ik doe het daarom meestal zo:
Not In(100;200;300;400)
En dat blijft overzichtelijk en is ook makkelijk aan te passen.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan