2017-03-22 10 views
1

Ich habe ein Problem mit der SUM-Funktion in meiner MySQL Workbench. Wenn ich die Funktion verwende, wird ein falscher Wert zurückgegeben. Id mögen diese drei Zahlen Summe:SQL Sum gibt einen falschen Wert zurück

  • 56,03
  • 35,59
  • 54,35

Das Ergebnis 145,97 sein sollte, aber es ist nur 145 stattdessen. Ich habe versucht, diese verschiedenen Codes:

SELECT SUM(price) FROM table; 

Dieser gibt den Wert 145.

SELECT ROUND(SUM(price),2) FROM table; 

Der zweite gibt den Wert 145,00.

Ich habe mich gefragt, was mit dem Code falsch ist, weil ich es in einer anderen DB ausprobiert habe, die ich in meiner MySQL Workbench habe. Habe es auch in beiden Datenbanken über das Terminal ausprobiert. In der anderen Datenbank funktioniert die Funktion korrekt.

+2

was ist das Format für das Preisfeld? in mysql number verwenden '.' (Punkt) für das Dezimaltrennzeichen und nicht', '(Komma) wie in Ihrem Beispiel Daten –

+2

Speichern Sie die Werte als Zeichenfolgen wie hier: http://rexttester.de/YNEAG27721? –

+0

Ja, ich speichere sie in Strings, weil ich die Daten aus irgendwelchen Gründen nicht als Dezimal speichern konnte. In der anderen DB funktioniert es gut mit Strings. –

Antwort

0

Am besten ändern Sie Ihre Tabelle, so dass es ein Dezimalfeld ist.

Wenn Sie jedoch, dass nicht kann, sollte die folgende Abfrage bekommen, was Sie wollen:

SELECT SUM(replace(price,',', '.')) FROM tbl; 

Sie können testen, in auf SQLFiddle

+0

Ja, es funktioniert! Großer Dank. Es ist immer noch ein Workaround und ich versuche immer noch herauszufinden, wie ich meine Zahlen als Dezimalzahl speichern kann! –

Verwandte Themen