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
Serienbrief + SQL
Moderator: Moderatoren
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: Serienbrief + SQL
Hast Du Dich vom ordnungsgemässen Aufbau der Rückgabe dieser Funktionen überzeugt?umsteiger47 hat geschrieben:
AND (((DIGITS("GKUOBZP"."KOBEJ") CONCAT DIGITS("GKUOBZP"."KOBEP")))
= '000000')
AND ("GOBJSTP"."OBJGR" BETWEEN '0' AND '8')
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)
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)