Hallo zusammen,
momentan hänge ich bei einem Abfrageproblem bei meiner Produktdatenbank.
Und zwar möchte ich ein Abfragekriterium erstellen, dabei enthält ein Feld in meiner Tabelle möglicherweise mehrere Ländernamen. Nun soll mit dieser Abfrage eine Aufforderung für den Benutzer kommen wie bspw. "Bitte geben Sie das gewünschte Land ein: ". Gibt der Benutzer nun bspw. USA ein, sollen alle Produkte aufgelistet werden die in diesem Land gesperrt sind. Jetzt ist dieses Produkt aber nicht nur in den USA gesperrt, sondern auch bspw. in China. Dies bedeutet ich gebe in mein Feld in der Tabelle nicht nur USA ein sondern " USA China". Die Abfrage soll also bewirken, dass alle Felder in dieser Spalte nach dem eingegebenen Namen überprüft werden sollen und im Ergebniss quasi aufgelistet werden.
Geht dies möglicherweise mit einem Wenn Kriterium?
Ich hoffe ich konnte es etwas verständlich beschreiben, wo jetzt mein Problem liegt.
Über Hilfe würde ich mich seeehr freuen ;)
Lg
Hallo,
als Kriterium:
Wie "*USA*" Oder Wie "*China*"
Aber das Konzept ist zu überdenken.
Die gesperrten Länder gehören als je ein Datensatz in eine extra Tabelle. In einem Feld steht daher immer nur ein Land. Sind 5 Länder gesperrt, so sind das in der extra Tabelle 5 Datensätze.
Wobei es auch eine eigene Ländertabelle geben sollte mit einer Zahl als Primärschlüssel und in der extra Tabelle für die gesperrten Länder wird nur diese Zahl gespeichert. Auswahl des Landes erfolgt dann mit einem Kombifeld. Damit sind auch gleich Tippfehler bei der Landeingabe ausgeschlossen. Wenn bei Deinem Konzept mal aus Versehen Cina eigegeben wird, so wird das nicht gefunden.
Du solltest das noch ändern.
Hallo Klaus,
ZitatDie gesperrten Länder gehören als je ein Datensatz in eine extra Tabelle. In einem Feld steht daher immer nur ein Land. Sind 5 Länder gesperrt, so sind das in der extra Tabelle 5 Datensätze.
Sollte die nicht aber auch einen FK zu den Produkten haben; - also n:m?
gruss ekkehard
ok aber letztendlich könnte ich dies aber auch über ein Textsuchfeld lösen oder?
Nicht ganz. Du brauchst eine UND-Verknüpfung von Werten, die in unterschiedlichen Datensätzen stehen. Das sieht dann als Ergebnisabfrage etwa so aus:
SELECT ProduktID
FROM MeineTabelle
WHERE Land IN ("USA", "China")
GROUP BY ProduktID
HAVING COUNT(*) = 2
Hallo,
@ekkehard
ZitatSollte die nicht aber auch einen FK zu den Produkten haben;
Das habe ich jetzt einfach mal vorausgesetzt, sonst würde die Tabelle ja in der Luft hängen. Dachte das wäre klar. Und mit dem FK zum Land wäre das dann natürlich die n:m Beziehung. Aber Du hast recht, ich hätte es explizit erwähnen sollen.