Ich habe ein Problem mit dem SUM-Befehl in Interbase.
Das zu summierende Feld ist vom Type NUMERIC(9,2).
Interbase ist aber nur in der Lage Summen bis ca. 21.000.000 zu bilden.
Zumindest funktioniert es bis 20.978.223,14. Bei einer theoretischen Summe von 21.638.270 steigt mein Programm (Delphi mit IBX), bie IBConsole und auch IBExpert mit "Arithmetic
exception, numeric overflow, or string truncation".
Ich habe die Seleketionsbereiche auch nach vorne bzw. hinten verschoben. Es kann also nicht mit defekten Datensätzen zusammenhängen.
Kurioserweise funktioniert AVG.
Hier die
SQL-Anweisung und der
Query-Plan:
SQL-Code:
SELECT
SUM(V.GR_GESAMTFLAECHE)
FROM
VERTRAGSDATEN V
WHERE ((V.VERTRAGSDATUM >='23.09.2003') AND (V.VERTRAGSDATUM <='26.11.2003'))
Code:
Plan PLAN (V NATURAL)
Adapted Plan PLAN (V NATURAL)
------ Performance info ------
Prepare time = 0ms
Execute time = 1s 157ms
Current memory = 3.218.408
Max memory = 3.557.480
Memory buffers = 2.048
Reads from disk to cache = 0
Writes from cache to disk = 6
Fetches from cache = 12.779
Gibt es tatsächlich eine Beschränkung in Interbase?
Kann ich im Select eine Art von Typecast durchführen?
Gruß Markus