Date: prev next · Thread: first prev next last
2014 Archives by date, by thread · List index


Hallo Ansgar,

laut der Dokumantation der HSQLDB (http://hsqldb.org/doc/guide/builtinfunctions-chapt.html#bfc_string_binary_functions) gibt LOCATE die Position bei der String 1 in String2 beginnt, es wird also kein Boolean zurückgegeben, ob er enthalten ist.

Eine Alternative wäre vielleicht IN:

SELECT name1 FROM t1 IN (SELECT name2 FROM t2 WHERE name = 'Name');

Wobei ich hier nur einen Namen beachtet habe.

Viele Grüße

Ralf


Am 30.12.2014 um 12:29 schrieb Thomas:
Hallo Ansgar,

Am 30.12.2014 um 12:00 schrieb Ansgar Machalický:
Hallo zusammen,

ich möchte in Base (LO 4.2.8.2) zwei Felder aus zwei verschiedenen
Tabellen vergleichen und herausfinden, ob der Inhalt des einen Feldes im
anderen enthalten ist. Beide Felder haben den Typ "Text".

Dazu benutze ich in einer Abfrage die Funktion LOCATE(). Erste Frage:
Gibt es eine sinnvollere Alternative?

Ich habe die odb-Datei hier hochgeladen:
https://www.wuala.com/ansgar.machalicky/Dokumente/LO-users/?key=jPG59LuMz6yP

Bei einem Test zwischen zwei Tabellen ("Mitglieder" und "Kinder")
funktioniert das ganz wunderbar, das Ergebnis ist 1 für die Fälle, in
denen der Text enthalten ist, und falls nicht, lautet es 0 (vgl. Abfrage
"LOCATE.Test02") Bei den eigentlichen Tabellen läuft's aber nicht: Es
wird für alle Fälle nur die 0 als Ergebnis ausgegeben, obwohl es
eindeutig einige Treffer gibt (LOCATE.Test04).

Woran könnte es liegen (das ist die zweite Frage..... )? Ich finde den
Fehler nicht. Müssen die Tabellen dazu in einer Relation zueinander stehen?
Ich denke schon, wie soll Base sonst wissen,was mit wem verglichen
werden soll? Das ist so völlig undefiniert. Du willst doch wissen, ob
eines der Mitglieder oder eines der Kinder einen Umsatz hatte. Mit den
vorhandenen Tabellen sieht es aber schlecht aus. Sinnvoll ist es, beim
Erfassen des Umsatzes die ID des Mitgliedes mit einzutragen.

  Wenn Du mal aus der letzten Spalte den Teil LCASE(
"Umsaetze"."Beguenstigter" )  als neue Spalte daneben stellst, wird
immer "ronan reynolds" angezeigt. Da sieht man, die drei Tabellen werden
hier irgendwie miteinander gemischt.

Ich hatte schon die Vermutung, dass die leeren Felder in der Spalte
Probleme machen könnten und habe sie deshalb mit dem Text "leer"
aufgefüllt, aber auch das bringt keine Besserung.

Dankbar für jeden Tipp,
Ansgar
Viele Grüße
Thomas



---
Diese E-Mail wurde von Avast Antivirus-Software auf Viren geprüft.
http://www.avast.com




--
Liste abmelden mit E-Mail an: users+unsubscribe@de.libreoffice.org
Probleme? http://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: http://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: http://listarchives.libreoffice.org/de/users/
Alle E-Mails an diese Liste werden unlöschbar öffentlich archiviert

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.