![]() |
Interbase SUM numeric overflow
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:
Gibt es tatsächlich eine Beschränkung in Interbase?
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 Kann ich im Select eine Art von Typecast durchführen? Gruß Markus |
Re: Interbase SUM numeric overflow
So konnte mein Problem inzwischen selber lösen.
Feldlänge war nicht NUMERIC(9,2) sondern (8,2). Nachdem ich das ganze auf 12,2 hoch gesetzt hatte, funktioniert auch SUM. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:17 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz