Serienbrief + SQL

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

umsteiger47
*
Beiträge: 14
Registriert: So, 20.07.2008 13:40

Serienbrief + SQL

Beitrag von umsteiger47 »

Moin Moin,

ich versuche schon seit ca. ein paar Tagen mit einer Abfrage einen Serienbrief zu erstellen. Das Prinzip ist simpel:

Anwender gibt eine Kundennummer ein (Idealerweise übergeben als Parameter) daraus resultierend soll folgendes SQL ablaufen:

SELECT "GADRSTP"."ADNUM", "GADRSTP"."ADNM1", "GADRSTP"."ADNM2",
"GADRSTP"."ADNM3", "GADRSTP"."ADSTR", "GADRSTP"."ADPLZ",
"GADRSTP"."ADORT", "GKUOBZP"."KOONR", "GKUOBZP"."KOBBP",
"GKUOBZP"."KOBBJ", "GKUOBZP"."KOBEP", "GKUOBZP"."KOBEJ",
"GKUOBZP"."KOOMG", "GOBJSTP"."OBJBZ" FROM
"S65776AC"."LZDTA"."GKUOBZP" AS "GKUOBZP",
"S65776AC"."LZDTA"."GADRSTP" AS "GADRSTP",
"S65776AC"."LZDTA"."GOBJSTP" AS "GOBJSTP" WHERE "GKUOBZP"."KONUM" =
"GADRSTP"."ADNUM" AND "GOBJSTP"."OBJNR" = "GKUOBZP"."KOONR" AND
"GADRSTP"."ADNUM" = 1685767
AND (((DIGITS("GKUOBZP"."KOBEJ") CONCAT DIGITS("GKUOBZP"."KOBEP")))
= '000000')
AND ("GOBJSTP"."OBJGR" BETWEEN '0' AND '8')

Dabei bekomme ich aber folgenden Fehler:

Syntax Error in SQL-expression

Folgendes Statement funzt aber:

SELECT "GADRSTP"."ADNUM", "GADRSTP"."ADNM1", "GADRSTP"."ADNM2",
"GADRSTP"."ADNM3", "GADRSTP"."ADSTR", "GADRSTP"."ADPLZ",
"GADRSTP"."ADORT", "GKUOBZP"."KOONR", "GKUOBZP"."KOBBP",
"GKUOBZP"."KOBBJ", "GKUOBZP"."KOBEP", "GKUOBZP"."KOBEJ",
"GKUOBZP"."KOOMG", "GOBJSTP"."OBJBZ" FROM
"S65776AC"."LZDTA"."GKUOBZP" AS "GKUOBZP",
"S65776AC"."LZDTA"."GADRSTP" AS "GADRSTP",
"S65776AC"."LZDTA"."GOBJSTP" AS "GOBJSTP" WHERE "GKUOBZP"."KONUM" =
"GADRSTP"."ADNUM" AND "GOBJSTP"."OBJNR" = "GKUOBZP"."KOONR" AND
"GADRSTP"."ADNUM" = 1685767

Was mach ich denn da falsch??????

Auf unserer iSeries funktioniert das ganze einwandfrei.

Vielen Dank im voraus

mfg
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Serienbrief + SQL

Beitrag von komma4 »

umsteiger47 hat geschrieben:
AND (((DIGITS("GKUOBZP"."KOBEJ") CONCAT DIGITS("GKUOBZP"."KOBEP")))
= '000000')
AND ("GOBJSTP"."OBJGR" BETWEEN '0' AND '8')
Hast Du Dich vom ordnungsgemässen Aufbau der Rückgabe dieser Funktionen überzeugt?


Je nach verwendetem Treiber (ODBC/JDBC und deren Versionen) kann es die fehlende/fehlerhafte Unterstützung der Funktion sein...

Also:

ist eine debug-Ausgabe vom SELECT korrekt?
Dann tausche den Treiber mal.


Viel Erfolg!
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Antworten