Zitat Zitat von B.Hauser Beitrag anzeigen
Hallo,

andere Vermutungen:
1. Wo sind die Referenz-Felder definiert?
In einer Datei, die in den F-Bestimmungen angegeben wurde? Wenn ja ist die Datei zum Compilierungszeitpunkt in der Bibliotheksliste vorhanden?
In einer (verschachtelten) Copy-Strecke? (aus solche Felder kann der SQL-PreCompiler u.U. nicht zugreifen.

2. Vielleicht stört sich der Precompiler daran, dass die gleichen ##-Variablen einmal als Ausgabe-Felder (into ...) und zum anderen in der Where-Anweisung verwendet werden.

Ich würde die Variablen nicht als Ausgabe-Variablen verwenden, das die Werte ja bereits gesetzt sind und durch die Where-Anweisung nur erneut ausgegeben werden.Dadurch wird das ganze SQL-Statement auch wesentlich kürzer, d.h. Group By und Order By entfallen.

PHP-Code:
c/exec sql 
C
select sum(daliwtinto :daliwt 
C
from lired 
C
where dafbtr = :##drbtr 
C+ and dakddb = :##drkdnr 
C+ and dargnr = :##drrgnr 
C+ and dakanr <> 'NEUDISPO'
C/end exec 
Übrigens: Unter Release V5R4 können die gleichen Variablen mit der gleichen Definition problemlos in diversen Sub-Prozeduren definiert werden. (Vor Release V5R3 wurde eine Mehrfach-Definition der gleichen Variablen nicht geprüft. Unter Release V5R3 wurde ein Compilierungs-Fehler mit Level 30 ausgegeben. Ab 6.1. können Variablen vom PreCompiler den Prozeduren zugeordnet werden.)

Birgitta
Mit dem Verkürzen hast Du natürlich recht. Ich vermute sogar, dass das einen Performance-Vorteil bringt. Werde Deinen Optimierungsvorschlag so übernehmen.

Gruß Peter