DocEW
2004-07-08, 14:10:30
Hi,
ich habe folgendes Access/SQL-Problem:
Ich habe "Sachen", die ich in einer Tabelle suchen muß. Die "Sachen" können in mehreren Datensätzen vorkommen. Es gibt zwei Fälle:
1.) Ein Datensatz beinhaltet in einem bestimmten Feld einen Stern ("*")
2.) Der Datensatz beinhaltet in dem Feld einen anderen Wert, beispielsweise "xyz"
Was ich jetzt brauche, wäre eine Abfrage, die folgendes macht:
Wenn es zu einer Sache einen Datensatz vom Typ 2 gibt, gib diesen aus, wenn nicht, dann den Datensatz vom Typ 1 (einer von beiden existiert immer).
Zur Verdeutlichung ein Beispiel:
Zu folgender Tabelle...
"Sache" | Wert
-------------------
A | *
A | ab
B | bc
C | *
D | cd
D | *
... sollte die Abfrage liefern:
"Sache" | Wert
-------------------
A | ab
B | bc
C | *
D | cd
Das ganze kann man natürlichen lösen, beispielsweise unter Verwendung von "not in". Allerdings ist Access einfach viiiieeel zu lahm. Ein normales "in" geht noch (->wenige Sekunden), aber bei "not in" kann man nach ein paar Minuten dann mal abbrechen... :(
Hat jemand eine Idee, wie ich das anders lösen könnte?
Viele Dank für eure Mühe,
DocEW
ich habe folgendes Access/SQL-Problem:
Ich habe "Sachen", die ich in einer Tabelle suchen muß. Die "Sachen" können in mehreren Datensätzen vorkommen. Es gibt zwei Fälle:
1.) Ein Datensatz beinhaltet in einem bestimmten Feld einen Stern ("*")
2.) Der Datensatz beinhaltet in dem Feld einen anderen Wert, beispielsweise "xyz"
Was ich jetzt brauche, wäre eine Abfrage, die folgendes macht:
Wenn es zu einer Sache einen Datensatz vom Typ 2 gibt, gib diesen aus, wenn nicht, dann den Datensatz vom Typ 1 (einer von beiden existiert immer).
Zur Verdeutlichung ein Beispiel:
Zu folgender Tabelle...
"Sache" | Wert
-------------------
A | *
A | ab
B | bc
C | *
D | cd
D | *
... sollte die Abfrage liefern:
"Sache" | Wert
-------------------
A | ab
B | bc
C | *
D | cd
Das ganze kann man natürlichen lösen, beispielsweise unter Verwendung von "not in". Allerdings ist Access einfach viiiieeel zu lahm. Ein normales "in" geht noch (->wenige Sekunden), aber bei "not in" kann man nach ein paar Minuten dann mal abbrechen... :(
Hat jemand eine Idee, wie ich das anders lösen könnte?
Viele Dank für eure Mühe,
DocEW