Liebe Community,
ich arbeite derzeit an einer Tabelle die nach Postleitzahlen aufgeschlüsselt werden soll. Nur ist es bei uns in Österreich so, dass ein Bundesland mehrere "Hauptsprengel" hat. Niederösterreich zum Beispeil hat 2*** (zB. 2334) und 3*** und ein paar von den Nachbar Bundesländern da manche Orte in Niederösterreich eben vom Nachbarbundesland mit Post versorgt werden. Dise gilt es auszusortieren.
SELECT ([Original Tabelle].[Wohnort]) AS WohnortNiederösterreich
FROM [Original Tabelle]
WHERE ((([Original Tabelle].[Wohnort]) Like "2??? *" Or ([Original Tabelle].[Wohnort]) Like "3??? *" Or ([Original Tabelle].[Wohnort]) Like "4300 *" Or ([Original Tabelle].[Wohnort]) Like "4303 *" Or ([Original Tabelle].[Wohnort]) Like "4372 *" Or ([Original Tabelle].[Wohnort]) Like "4372 *" Or ([Original Tabelle].[Wohnort]) Like "4392 *" Or ([Original Tabelle].[Wohnort]) Like "4431 *" Or ([Original Tabelle].[Wohnort]) Like "4432 *" Or ([Original Tabelle].[Wohnort]) Like "4441 *" Or ([Original Tabelle].[Wohnort]) Like "4482 *" And ([Original Tabelle].[Wohnort]) Not Like "2514 *"));
Die PLZ mit 4??? liegen ebenfalls in Niederösterreich werden aber wie schon vorher oben erwähnt von andren Bundesländern beliefert.
Jetzt meine Frage: Wieso filtert er mir nicht die 2514 raus? Von der Logik her müsste es so passen oder nicht? Nach der AND Verknüpfungen würden alle Kriterien folgen die ich speziell noch rausfiltern will.
Leider komme ich aus der Webdesign/MySQL Sparte - hab ich da was verschwitzt?
lg aus Wien ;)
SELECT [Original Tabelle].Wohnort
FROM [Original Tabelle]
WHERE ((([Original Tabelle].Wohnort) Like "2??? *" And ([Original Tabelle].Wohnort) Not Like "2500 *"));
Die Abfrage funktioniert! Aber wenn ich mehr als eine OR Bedingung habe - funktioniert die And Bedingung nicht mehr. Was mache ich flasch?
Hallo,
ganz so verstanden habe ich die Logik der PLZ nicht, ;)
aber vermutlich ist die Einklammerung der OR-Teilkriterien ungenügend. D. h, alle OR's müssen innerhalb eines Klammerpaares stehen und das letzte AND außerhalb. Or hat niedrige Priorität als And und muß deshalb definiert eingeklammer werden.
ich habe das jetzt folgendermaßen ausgebessert
SELECT ([Original Tabelle].[Wohnort]) AS WohnortNiederösterreich
FROM [Original Tabelle]
WHERE (([Original Tabelle].Wohnort) Like "2??? *" Or ([Original Tabelle].Wohnort) Like "3??? *" Or ([Original Tabelle].Wohnort) Like "4300 *" Or ([Original Tabelle].Wohnort) Like "4303 *" Or ([Original Tabelle].Wohnort) Like "4372 *" Or ([Original Tabelle].Wohnort) Like "4372 *" Or ([Original Tabelle].Wohnort) Like "4392 *" Or ([Original Tabelle].Wohnort) Like "4431 *" Or ([Original Tabelle].Wohnort) Like "4432 *" Or ([Original Tabelle].Wohnort) Like "4441 *" Or ([Original Tabelle].Wohnort) Like "4482 *") And ([Original Tabelle].Wohnort) Not Like "2514 Traiskirchen";
stimmt das so?
funkioniert noch immer nicht ;) - Traiskirchen ist noch immer dabei - obwohl es nicht dabei sein sollte.
thx in advance
in den Kriterien steht das - vll bisschen übersichtler
(Wie "2??? *" Oder Wie "3??? *" Oder Wie "4300 *" Oder Wie "4303 *" Oder Wie "4372 *" Oder Wie "4372 *" Oder Wie "4392 *" Oder Wie "4431 *" Oder Wie "4432 *" Oder Wie "4441 *" Oder Wie "4482 *") Und Nicht Wie "2514 Traiskirchen"
Hallo,
schreib mal überall nach folgendem Syntax
Like "2*"
und bau die Abfrage nacheinander mit mit den einzelnen Bedingungen auf...
Hallo Martin,
in Österreich haben wir keine PLZ mit mehr als 4 Stellen, daher ist die Schreibweise LIKE "xxxx *" unsinnig.
Fasse die ein- und auszuschließenden zu IN und NOT IN - Listen zusammen und klammere die ORs wie DF6GL vorgeschlagen hat ein.
Versuch mal das:
SELECT Wohnort AS WohnortNiederösterreich
FROM [Original Tabelle]
WHERE (Wohnort LIKE "2*" OR Wohnort LIKE "3*" Or Wohnort In ("4300","4303","4372","4392","4431","4432","4441","4482")) AND Wohnort NOT IN("2514","2515","2516");
2514,2515,2516 soll eine beispielhafte Liste darstellen - bitte anpassen!
Grüße
Peter
Hallo,
und ich befürchte, dass Plz UND Wohnort in EINEM Feld stehen... :'(
::) ja PLZ und Wohnort stehen in einem Feld - aber dafür bin ich nicht verantwortlich....
Die Methode mit In und Not in gefällt mir viel besser - komme aber erst am Donnerstag dazu sie zu testen.
Hallo,
Zitatja PLZ und Wohnort stehen in einem Feld - aber dafür bin ich nicht verantwortlich
...oh Mann, du Ärmster ... ;) ;D
SELECT Wohnort AS WohnortNiederösterreich
FROM [Original Tabelle]
WHERE (Left(Wohnort,4) LIKE "2*" OR Left(Wohnort,4) LIKE "3*" Or Left(Wohnort,4) In ("4300","4303","4372","4392","4431","4432","4441","4482")) AND Left(Wohnort,4) NOT IN("2514","2515","2516");
...sollte den Schaden in Grenzen halten... ;)
ja sehr cewl ;D
der Syntax funktioniert - Ich danke vielmals!
Aber bitte schön ... ;)
ZitatSyntax funktioniert
..hättest du's anders wollen? ;D ;D ;D
Grüße
Peter