Anmelden

View Full Version : strqmqry und Parameter/Variable



Seiten : 1 [2]

Marc_w
30-10-08, 15:24
Mein Letztes Posting war eigentlich an Pikachu gerichtet. Mit der DIGITS(ZONED(&Routenr, 2)) Zeile war das Problem behoben.
Bei route = ('&var') hat er immer nach der route &var gesucht und nicht nach dem Wert (z.B.: 07) den ich dieser Variable gegeben habe.

Marc

Fuerchau
30-10-08, 16:31
Allerdings kommst du bei "a2" auf einen Fehler, da dies nicht numerisch ist!!!

Die Funktion Date(...) verlangt ein Datum
a) im Jobformat z.b. 'TT.MM.JJ', 'TT.MM.JJJJ'
b) im ISO-Format 'JJJJ-MM-TT'

Hochkomma einschließlich !

Ist dein RDat auch von Typ DATE ?

Marc_w
03-11-08, 15:44
Das Feld Route ist aphanumerisch. Mit Route hab ich keine Probleme mehr.
Das Datum ist als 10L definiert mit DATFMT(*ISO) und JJJJ.MM.TT.
Bin noch nicht 100%-ig dahintergekommen wo mein Fehler ist.

Marc

B.Hauser
03-11-08, 16:08
JJJJ.MM.DD ist keine gültige Datums-Darstellung. Beim ISO-Format müssen Bindestriche/Minus-Zeichen als Trennzeichen verwendet werden. Punkte sind nicht zulässig.

ISO-Format: JJJJ-MM-DD

Birgitta

Marc_w
03-11-08, 16:16
Ja, da hast du recht, ich hätte mit - trennen sollen (die Macht der Gewohnheit). Bei der Ausführung mit der Abfrage > date(&Rechnungsdatum) kommt keine Fehlermeldung (z.B. 2008-10-13). Die Abfrage wird einfach nicht beachtet. Es kommen z.B. auch Zeilen mit Datum aus 2001.

Marc

Fuerchau
03-11-08, 18:35
Du musst auch 'JJJJ-MM-TT' eingeben, also die Hochkommata auch !

B.Hauser
04-11-08, 06:30
Ja, da hast du recht, ich hätte mit - trennen sollen (die Macht der Gewohnheit). Bei der Ausführung mit der Abfrage > date(&Rechnungsdatum) kommt keine Fehlermeldung (z.B. 2008-10-13). Die Abfrage wird einfach nicht beachtet. Es kommen z.B. auch Zeilen mit Datum aus 2001.

Marc

Das Datum wird nicht ignoriert, aber wenn Du den Parameter ohne zusätzliche Hochkomata (also als numerisch statt alpha) übergibst, wird der numerische Wert berechnet, d.h. 2008-10-13 = 1985.

Wird bei der skalaren Funktion DATE ein numerischer Wert übergeben, wird dieser als rechnerische Anzahl Tage seit dem 01.01.0001 interpretiert. Wird also 1985 in ein Datum konvertiert entspricht dies dem 08.06.0006. Damit sind natürlich bei > Date(&Rechnungsdatum) Daten aus 2001 zulässig.

Birgitta

Marc_w
05-11-08, 07:30
Ok, jetzt hab auch ich es kapiert. Das mit cat oder concat hat nicht geklappt im SQL-Code des Query Managers. Auf die Idee die Hochkommata bei der Eingabe des Variablenwerts mit einzugeben, bin ich nicht gekommen. Danke für die Hilfe und Geduld.

Marc