PDA

View Full Version : SQL - RIGHT



muadeep
02-12-09, 11:33
habe eine SQL-Anweisung von einem Kollegen bekommen, welche ich jetzt in ein SQLRPGLE einbauen soll!

Wie bzw. mit was muß ich die Zeichen || ersetzten?


:
:
HAVING XYZ='1'||RIGHT(YEAR(current timestamp),2)||RIGHT('0'||MONTH(current timestamp),2)||RIGHT('0'||DAY(current timestamp),2)http://www.qtl.co.il/img/copy.pnghttp://www.google.com/favicon.ico (http://www.google.com/search?q=%7C%7C)http://www.babylon.com/favicon.ico

Fuerchau
02-12-09, 11:38
|| entspricht concat.

Aber warum so kompliziert?

'1' concat substr(replace(char(current date, iso), '-', '') , 3, 6)

muadeep
02-12-09, 11:48
wenn ich die Zeichen || (auf der AS400) durch concat ersetze, dann erhalte ich folgende Fehlermeldung

Abfrage von PC-Seite mit einem SQL-Pgm. funktioniert aber mit concat

Token ,2 ungültig. Gültige Token: ....


HAVING FKDTRI='1' concat RIGHT(YEAR(current timestamp),2) concat RIGHT('0' concat MONTH(current timestamp),2) concat RIGHT('0' concat DA
Y(current timestamp),2)

Fuerchau
02-12-09, 12:17
Die Funktion RIGHT gibts erst ab V5R4.
Nimm doch meinen Vorschlag.

muadeep
02-12-09, 12:30
sorry hatte ich übersehen!

funkt prima.

danke

muadeep
02-12-09, 13:24
wenn ich jetzt das RPGLE laufen lasse, erhalte ich das Feld "Umsatz" immer mit dem Wert 0



D Umsatz s 13 3

c/exec sql
C+ select sum(FKxxx)
c+ into :Umsatz
C+ from myLib/myFile
C+ where FKaaa > 0 and (not (int(FKaaa/100000) = 86 or
C+ int(FKaaa/100000)=75)) and FK1=501
C+ group by FKDat
C+ having FKDat='1' concat substr(replace(char(current date, iso),'-'
C+ , '') , 3, 6)
c/end-exec

C Ende Tag
C Eval *InLR = *on

muadeep
02-12-09, 13:28
hat sich erledigt!

hatte eine Leerstelle zuviel bei

C+ having FKDat='1' concat substr(replace(char(current date, iso),'- '