Seite 1 von 1

Problem: Datenbankabfrage mit Filter

Verfasst: So, 04.11.2007 19:19
von kelups
Ich führe ein Journal mit folgenden Datenbankfeldern:
Datum, Tätigkeit, Stichwort.
Unter Stichwort notiere ich beispielsweise "bank", "beh" (für Behhörden), "steuern" usw. Das Feld "Stichwort" kann mehr als ein Stichwort enthalten.
Problem: Wenn ich mit dem Kriterium IN ("enthält") mehr als ein Stichwort abfrage, erhalte ich kein Resultat, frage ich hingegen nur ein Stichwort ab, erhalte ich die entsprechenden Datensätze. Was mache ich falsch?
(Suse 10.3, OO 2.3)
Kurt

Re: Problem: Datenbankabfrage mit Filter

Verfasst: So, 04.11.2007 22:13
von Barlee
Hallo kelups,

mehrere Werte nach dem Befehl IN hast Du nach folgendem Muster angegeben?

Code: Alles auswählen

 ... IN ('Stichwort1', 'Stichwort2', ...)
Stichwort1, Stichwort2 müssen dann den exakten Feldinhalt von "Stichwort" beeinhalten, damit Ergebnisse angezeigt werden.
Angenommen Du hast in ein Feld der Spalte "Stichwort" bank, beh eingetragen, in ein anderes nur bank

Code: Alles auswählen

 ... IN ('bank, beh', 'bank', ...)
>> liefert beide Beispieldatensätze

Code: Alles auswählen

 ... IN ('bank', 'beh', ...)
>> liefert nur Datensatz mit Stichwort bank, da kein Datensatz mit Stichwort beh vorhanden (es gibt nur bank, beh)

Ist für Deine Zwecke vielleicht der Befehl LIKE besser geeignet?
z.B.

Code: Alles auswählen

... LIKE %bank%
>> liefert alle Datensätze mit dem Stichwort bank, unabhängig davon, ob in Kombination oder nicht


Gruß Barlee

Re: Problem: Datenbankabfrage mit Filter

Verfasst: Mo, 05.11.2007 18:33
von Barlee
Hallo Kurt,

wie hast Du das Schlüsselwort LIKE verwendet?
zB. für "Antrag" im Satz "Neuen Antrag gestellt für...."

Code: Alles auswählen

...where Tätigkeit like '%Antrag%'
sollte hier aber die Datenzeile mit o.g. Satz zurückliefern (es sei denn, Du hast weitere Einschränkungen in der WHERE Klausel definiert???)

Code: Alles auswählen

...where Tätigkeit like 'Antrag%'
>> liefert nur Ergebnisse, in denen Antrag am Anfang steht

Code: Alles auswählen

...where Tätigkeit like '%Antrag'
>> Ergebnisse, in denen Antrag am Ende steht

---
Füge am besten Deine Abfrage (oder Teile davon) hier ein. Dann kann man leichter Tips geben...

Gruß Barlee