Problem: Datenbankabfrage mit Filter

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

kelups
**
Beiträge: 43
Registriert: Di, 23.05.2006 22:09

Problem: Datenbankabfrage mit Filter

Beitrag 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
Barlee
******
Beiträge: 767
Registriert: Sa, 17.12.2005 12:27

Re: Problem: Datenbankabfrage mit Filter

Beitrag 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
Barlee
******
Beiträge: 767
Registriert: Sa, 17.12.2005 12:27

Re: Problem: Datenbankabfrage mit Filter

Beitrag 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
Antworten