Parameterabfrage

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

Jörg
*****
Beiträge: 392
Registriert: Mo, 21.10.2013 12:05

Parameterabfrage

Beitrag von Jörg »

Hallo Fachleute,
Bei nachfolgender Abfrage:

Code: Alles auswählen

SELECT "Name", "Vorname", "Rezept-datum", "1.", "2.", "3.", "4.", "5.", "6.", "7.", "8.", "9.", "10.", "weitere Daten, wenn mehr als 10 Behandlungen pro Verordnung" AS "11.", "12" AS "12.", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36" FROM "Tabelle16" WHERE LOWER ("Name") Like LOWER (:qName ||'%')
erhalte ich die Abb. -Fehlermeldung
Fehler.PNG
Fehler.PNG (26.02 KiB) 4778 mal betrachtet
An diesem Schnipsel könnte es liegen.

Code: Alles auswählen

WHERE LOWER ("Name") Like LOWER (:qName ||'%')
Diesen hab ich einem Tutorial (YouTube) entnommen.
Die Tabelle selbst ist aus Calc importiert. "Normale" Abfragen, auch z.Bsp. LIKE 'Richt%' funtionieren (allerdings muß Groß- bzw. Kleinschreibung beachtet werden.
Vielleicht hat einer eine Idee?
Vielen Dank!
Gruß Jörg

Win 10 Pro AOO 4.1.15
RobertG
********
Beiträge: 2033
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Parameterabfrage

Beitrag von RobertG »

Hallo Jörg,

vielleicht aus

Code: Alles auswählen

WHERE LOWER ("Name") Like LOWER (:qName ||'%')

Code: Alles auswählen

WHERE LOWER ("Name") Like LOWER (:qName) ||'%'
machen. Schließlich ist es nur die Eingabe, die Du auf Kleinschreibung wechseln willst.

Ob das tatsächlich an dem Schnipsel liegt kannst Du ja testen, wenn Du die Bedingung einfach weglässt.

Gruß

Robert
Jörg
*****
Beiträge: 392
Registriert: Mo, 21.10.2013 12:05

Re: Parameterabfrage

Beitrag von Jörg »

Hallo Robert,
vielen Dank für Deine Antwort.
Deine vorgeschlagene Lösung funktioniert leider nicht.
Anbei ein Beispiel, das funktioniert.

Code: Alles auswählen

SELECT "Name", "Vorname", "Rezept-datum" AS "Rez.-dat.", "1.", "2.", "3.", "4.", "5.", "6.", "7.", "8.", "9.", "10.", "VO.1" AS "Verordng. 1", "VO.2" AS "Verordng. 2", "Indika-tionsschlüssel" AS "Indikationsschl.", "ICD-10-Code" AS "ICD_Code", "Erstverord-nung" AS "Erstver.", "Folge-verordnung" AS "Folgever.", "Verordnung außerhalb des Regel-falls" AS "Regelfall", "Abrechnungsmonat" FROM "Tabelle16" WHERE "Name" = :qName AND "Vorname" = :qVorname
Ich wollte erreichen, dass ich nicht den vollständigen "Namen" eingeben muß.
Hab in Bezug auf SQL noch nicht so oft was gemacht.
Vielen Dank.
Gruß Jörg

Win 10 Pro AOO 4.1.15
RobertG
********
Beiträge: 2033
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Parameterabfrage

Beitrag von RobertG »

Hallo Jörg,

die meisten Codeschnipsel, die Du irgendwo findest, sind für Base auf die Zusammenarbeit mit der internen HSQLDB gemünzt. Du machst das hingegen mit einer Calc-Tabelle.

Code: Alles auswählen

WHERE LOWER ("Name") LIKE CONCAT( LOWER (:qName),'%')
wird vermutlich zum Ziel führen.
Merkwürdigerweise unterstützt die GUI die Nutzung von || innerhalb der Felder, aber nicht innerhalb von LIKE.

Gruß

Robert
Jörg
*****
Beiträge: 392
Registriert: Mo, 21.10.2013 12:05

Re: Parameterabfrage

Beitrag von Jörg »

Hallo Robert,
zwischen Frühstück und Gänsebraten:

Code: Alles auswählen

SELECT "Name", "Vorname", "Rezept-datum" AS "Rez.-dat.", "1.", "2.", "3.", "4.", "5.", "6.", "7.", "8.", "9.", "10.", "VO.1" AS "Verordng. 1", "VO.2" AS "Verordng. 2", "Indika-tionsschlüssel" AS "Indikationsschl.", "ICD-10-Code" AS "ICD_Code", "Erstverord-nung" AS "Erstver.", "Folge-verordnung" AS "Folgever.", "Verordnung außerhalb des Regel-falls" AS "Regelfall", "Abrechnungsmonat" FROM "Tabelle16" WHERE LOWER ( "Name" ) LIKE CONCAT( LOWER ( :qName ), '%' ) AND LOWER ( "Vorname" ) LIKE CONCAT( LOWER ( :qVorname ), '%' )
Das funktioniert soweit. :D
Allerdings in der Bearbeitungsansicht nur einmal. Bei nochmaligem Versuch kommt Syntaxfehler. Unter Kriterium wird nichts eingetragen.
Öffne ich die Abfrage oder das entsprechende Formular mit "Öffnen" klappt es. Aber das ist ja auch o.k.
Falls Du nach den Feiertagen Zeit findest:
Was bedeutet "CONCAT"?
Ich danke Dir für Deine Hilfe und wünsche Fröhliche Weihnachten und einen guten Rutsch ins Neue.
Gruß Jörg

Win 10 Pro AOO 4.1.15
nikki
******
Beiträge: 787
Registriert: Do, 05.03.2015 10:42

Re: Parameterabfrage

Beitrag von nikki »

Hallo Jörg,
Jörg hat geschrieben:Was bedeutet "CONCAT"?
Damit werden in einer SQL-Abfrage Texte verkettet. Siehe dazu https://www.tutorialspoint.com/sql/sql- ... nction.htm
Gruß

---------------------------------------------------------
Win.10 Prof. 64-bit, AOO 4.1.7, LO 6.3.4 (x64)
Jörg
*****
Beiträge: 392
Registriert: Mo, 21.10.2013 12:05

Re: Parameterabfrage

Beitrag von Jörg »

Hallo nikki,
Danke für Deinen Hinweis.
Guten Rutsch :)
Gruß Jörg

Win 10 Pro AOO 4.1.15
Antworten