Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Interbase SUM numeric overflow (https://www.delphipraxis.net/17734-interbase-sum-numeric-overflow.html)

MarkusT 9. Mär 2004 08:13


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:
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

MarkusT 9. Mär 2004 14:17

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 03:23 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz