So wie es aussieht kann Dein SQL-Statement einen NULL-Wert (hat nichts zu tun mit dem deutschen Wort Null = 0) zurückbringen. (NULL-Wert = Nix, Kein Ergebnis)

Um auf NULL-Wert prüfen zu können, wird eine Indikator/Anzeiger-Variable erwartet.

Eine Indikator-Variable wird in RPG mit 5I 0 definiert und im SQL-Statement unmittelbar (nur durch ein Blank getrennt) nach der Variablen angegeben, die geprüft werden soll. Wurde für die Variable ein NULL-Wert ausgegeben, so geht die Indikator-Variable auf -1 anderenfalls wird 0 zurückgegeben. Bei einem NULL-Wert wird die Host-Variable nicht initialisiert. Also am besten vor dem SQL-Statement clearen oder die Indikator-Variable abfragen und dann clearen.

Code:
D MyInd             S                           5I 0

 /Free
    Clear Amount;
    Exec SQL   Select sum(Wert1 - Wert2) into :AMOUNT :MyInd
                   from DateiX;
    If MyInd < *Zeros;
       Clear Amount;
    Endif; 
 /End-Free
Birgitta