Ich habe ein Problem mit dem SUM-Befehl in Interbase.<BR>
Das zu summierende Feld ist vom Type NUMERIC(9,2). <BR>
Interbase ist aber nur in der Lage Summen bis ca. 21.000.000 zu bilden. <BR>
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".<BR>
Ich habe die Seleketionsbereiche auch nach vorne bzw. hinten verschoben. Es kann also nicht mit defekten Datensätzen zusammenhängen.<BR>
Kurioserweise funktioniert AVG.<BR>
Hier die SQL-Anweisung und der Query-Plan:
<PRE>
SELECT
SUM(V.GR_GESAMTFLAECHE)
FROM
VERTRAGSDATEN V
WHERE ((V.VERTRAGSDATUM >='23.09.2003') AND (V.VERTRAGSDATUM <='26.11.2003'))
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
</PRE>
Gibt es tatsächlich eine Beschränkung in Interbase?<BR>
Kann ich im Select eine Art von Typecast durchführen?<BR>
<BR>
Gruß Markus
Das zu summierende Feld ist vom Type NUMERIC(9,2). <BR>
Interbase ist aber nur in der Lage Summen bis ca. 21.000.000 zu bilden. <BR>
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".<BR>
Ich habe die Seleketionsbereiche auch nach vorne bzw. hinten verschoben. Es kann also nicht mit defekten Datensätzen zusammenhängen.<BR>
Kurioserweise funktioniert AVG.<BR>
Hier die SQL-Anweisung und der Query-Plan:
<PRE>
SELECT
SUM(V.GR_GESAMTFLAECHE)
FROM
VERTRAGSDATEN V
WHERE ((V.VERTRAGSDATUM >='23.09.2003') AND (V.VERTRAGSDATUM <='26.11.2003'))
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
</PRE>
Gibt es tatsächlich eine Beschränkung in Interbase?<BR>
Kann ich im Select eine Art von Typecast durchführen?<BR>
<BR>
Gruß Markus
Comment