Die Anzahl Nachkommastellen bei Zwischenergebnissen werden bei Divisionen auf Max berechnet.
Im SQL-Handbuch gibts Formeln für die Berechnung der benötigten Genauigkeiten.

Die Aggregate z.B. ergeben häufig sehr große Felder z.B. 31,2.
Werden diese nun dividiert muss vorher die max. Genauigkeit ermittelt werden. Dabei wird der Inhalt der Werte nicht geprüft.
Im Navigator mit Konstanten wird ein Dezimalfeld ermittelt:
3,2 => dec(2,1)
12345,567 => dec(8,3)
usw.

Helfen kannst du SQL z.B. damit, dass du die Summen selber wieder auf den theoretisch maximalen Inhalt kürzt:
sum(feld11,2) => sum(31,2)
Wenn du nun 10000 Zeilen summierst würde 15,2 ja reichen.
Also kann das Ergebnis der Summe auf dec(sum(xxx), 15, 2) gekürzt werden.

Divisionen können auch mit dem Kehrwert multipliziert werden.
Jetzt kommts auf die Genauigkeit an wie viele Nachkomma du im Ergebnis benötigst.
Bei Multiplikation werden die Ergebniss auf (31, NK1+NK2) erwartet.

Wenn du im Navigator mit Konstanten testest, caste diese auf die später im Programm verwendeten Hostvariablen, also z.B. dec(1234 , 11 , 2).
Dann bekommst du da dieselben Fehlermeldungen.