AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi mysql rechnet falsch
Thema durchsuchen
Ansicht
Themen-Optionen

mysql rechnet falsch

Ein Thema von Mario61 · begonnen am 11. Feb 2020 · letzter Beitrag vom 11. Feb 2020
Antwort Antwort
Seite 1 von 2  1 2      
Mario61

Registriert seit: 10. Jan 2010
19 Beiträge
 
#1

mysql rechnet falsch

  Alt 11. Feb 2020, 14:17
Datenbank: mysql • Version: 7.1.4 • Zugriff über: zeos
Hallo, ich habe ein großes Problem, ich hoffe, einer kann mir helfen.

Ich habe eine Datentabelle mit Beträgen die plus und minus werte enthalten. Da die Summen unter Delphi nicht gestimmt haben, habe ich die Werte in einer Excel-Tabelle kopiert und die Summe gebildet. Alles stimmte. Mit den Selben Daten habe ich in der MySql-Datenbank mit dem aufruf "SELECT Sum(Daten.Betrag) From Daten;" mir die Summe anzeigen lassen, diese stimmte überhaupt nicht mit der in der Excel-Tabelle überein. Ich habe mal 3 Bilder zur Veranschaulichung rangehangen. Excel hat die korekte Summe, aber mySQL komplett was falsches (16.0).Wenn ich in der mysql-Datenbank die werte per Taschenrechner addiere, erhalte ich den selben wert wie bei Excel, also stimmt. Warum nicht mit der MySql-Sum Funktion nicht?

Gruß Mario
Miniaturansicht angehängter Grafiken
z1.jpg   z2.jpg   z3.jpg  
Gruß Mario
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: mysql rechnet falsch

  Alt 11. Feb 2020, 14:19
Was für einen Typ hat das Datenbankfeld?
Markus Kinzler
  Mit Zitat antworten Zitat
Mario61

Registriert seit: 10. Jan 2010
19 Beiträge
 
#3

AW: mysql rechnet falsch

  Alt 11. Feb 2020, 14:23
Hallo,
in dieser Variante Text, weil ich mir nicht mehr zu helfen wuste. Ich habe mehrere ausprobiert: Integer, Float, Real, bei allen wird falsch gerechnet.

Gruß Mario
Gruß Mario
  Mit Zitat antworten Zitat
Benutzerbild von Moombas
Moombas

Registriert seit: 22. Mär 2017
Ort: bei Flensburg
525 Beiträge
 
FreePascal / Lazarus
 
#4

AW: mysql rechnet falsch

  Alt 11. Feb 2020, 14:23
Mal folgendes probiert?:

Code:
SELECT SUM(preis) as summe FROM tabelle
wenn ich nicht falsch bin bei dir also:

Code:
SELECT SUM(Betrag) as summe FROM Daten
Der Weg ist das Ziel aber man sollte auf dem Weg niemals das Ziel aus den Augen verlieren.
  Mit Zitat antworten Zitat
Mario61

Registriert seit: 10. Jan 2010
19 Beiträge
 
#5

AW: mysql rechnet falsch

  Alt 11. Feb 2020, 14:26
Ausser das da jetzt summe über dem Ergebnis steht, ist immer noch 16 das Ergebniss.
Ich bin da schon drann verzweifelt...
Gruß Mario
  Mit Zitat antworten Zitat
Benutzerbild von JasonDX
JasonDX
(CodeLib-Manager)

Registriert seit: 5. Aug 2004
Ort: München
1.062 Beiträge
 
#6

AW: mysql rechnet falsch

  Alt 11. Feb 2020, 14:29
Ein erster Debug-Schritt: Summe von nur einem Element bilden. Kommt dann das Richtige raus? Mein erster Gedanke ist nämlich ein Konvertierungsproblem ("3,52" als input, "16.0" als output, man achte auf "," vs "."=

Ein anderer Anhaltspunkt: Lässt man alle Nachkommastellen weg, (also "0,99" wird "0"), kommt als Summe 16 raus.
Mike
Passion is no replacement for reason
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: mysql rechnet falsch

  Alt 11. Feb 2020, 14:35
Hallo,
hier sind ein paar Tipps

https://stackoverflow.com/questions/...ecimal-numbers

gerade das hier
SELECT ROUND(SUM(cash), 2)

Und das hier
https://stackoverflow.com/questions/...decimal-values

Ich hätte ja auch noch
Select Sum(Betrag*100)


Der richtige Datentyp ist übrigens Integer mit EuroCent als Werte.
einige würden sogar 10er Eurocents speichern,
also aus 2,50 Euro würden entweder 250 Cent oder 2500 10er Cents.
Heiko

Geändert von hoika (11. Feb 2020 um 14:38 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Moombas
Moombas

Registriert seit: 22. Mär 2017
Ort: bei Flensburg
525 Beiträge
 
FreePascal / Lazarus
 
#8

AW: mysql rechnet falsch

  Alt 11. Feb 2020, 14:37
Dann hilft dir evtl. Das hier weiter:
https://dev.mysql.com/doc/refman/8.0...int-types.html

Code:
Daten.Betrag DECIMAL(5,2)
Der Weg ist das Ziel aber man sollte auf dem Weg niemals das Ziel aus den Augen verlieren.

Geändert von Moombas (11. Feb 2020 um 15:31 Uhr)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: mysql rechnet falsch

  Alt 11. Feb 2020, 14:38
SELECT SUM(Cast (Betrag as Float)) as summe FROM Daten;
Markus Kinzler
  Mit Zitat antworten Zitat
Mario61

Registriert seit: 10. Jan 2010
19 Beiträge
 
#10

AW: mysql rechnet falsch

  Alt 11. Feb 2020, 15:04
Oh man ey... ich habe aus dem Komma mal ein Punkt gemacht, sowie Datenbankfeld auf Integer geändert. Abfrage gestartet und 1.279999999 als ergebniss. Abfrage geändert:
SELECT ROUND(SUM(Betrag),2) as summe FROM Daten;
und das Ergebniss hat mit der Excel-Tabelle überein gestimmt. Also das blöde Komma... Ich habe schon fast aufgegeben.

ALLEN VIELEN DANK: (Hier bleib ich )
Gruß Mario
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:48 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