![]() |
Datenbank: Paradox • Version: D7 • Zugriff über: BDE
BDE - SQL - Select - Rundungsproblem
In einem ALTEN Projekt will ich eine SQL-Abfrage anpassen:
Code:
Hier ergeben sich u.U. offenbar 1000tel Rundungsdifferenzen. Die angezeigten Werte im DBGrid sind identisch.
QueryAw1.SQL.Add('where ... ((p.Gesamtpreis/p.Menge)<>p.Einzelpreis))');
"Round" und "Abs" unterstützt die BDE offenbar nicht. Kennt einer von den älteren Herren ;-) noch eine einfache Lösung? |
AW: BDE - SQL - Select - Rundungsproblem
Vielleicht so...
SQL-Code:
SELECT *
FROM ... WHERE CAST(Gesamtpreis / Menge * 100 AS INTEGER) / 100.0 <> Einzelpreis |
AW: BDE - SQL - Select - Rundungsproblem
Wenn der Vorschlag von Omata nicht funktioniert, kannst Du noch cast versuchen oder mit istwert < sollwert + delta arbeiten.
BDE SQL heißt local sql und hier gibts Infos dazu: (sorry, hab die Links vergessen) ![]() ![]() Auf alten Delphi Installationen fiindest Du vielleicht auch was zum Thema Funktionen (LocalSQL.HLP) Hier eine Schnippsel aus DER Paradox community: Zitat:
|
AW: BDE - SQL - Select - Rundungsproblem
SQL-Code:
select * from p
where (p.Gesamtpreis/p.Menge) between p.Einzelpreis-0.005 and p.Einzelpreis+0.005; select * from p where ((p.Gesamtpreis/p.Menge) > p.Einzelpreis-0.005) and ((p.Gesamtpreis/p.Menge) < p.Einzelpreis+0.005); |
AW: BDE - SQL - Select - Rundungsproblem
Ok vielen Dank!
Der Hinweis auf LocalSQL.hlp ist sehr nützlich (D7 kennt das selbst scheinbar nicht) und mein Problem war mit BETWEEN lösbar. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:09 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 by Thomas Breitkreuz