php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 02.10.2011, 17:56  
noop
Gast
 
Beiträge: n/a
Standard guppierte Felder summieren

Hi,

die SQL Abfrage von: ... ergibt folgendes:
Code:
SELECT `id`,`auftrag`,`stkl`,`menge`,`brutto` 
FROM `position` 
WHERE `auftrag` = 1043

Output:
id 	auftrag 	stkl 	menge 	brutto
3210 	1043 		19 	1 	269.99
3212 	1043 		19 	1 	3.99
3213 	1043 		19 	1 	1.5
3214 	1043 		19 	1 	1.2
3215 	1043 		19 	1 	9.99
3220 	1043 		7 	3 	7
3221 	1043 		19 	1 	0
Nun brauche ich die Steuerklassen (stkl) gruppiert ... die Artikelmenge (menge) und der Bruttowert (brutto) sollen entsprechend summiert werden.

Ergo:

Code:
SELECT `stkl`, sum(`menge`), sum(`brutto`)  
FROM `position` 
WHERE `auftrag` = 1043
GROUP BY `stkl`

Output:
stkl 	sum(`menge`) 	sum(`brutto`)
7 	3 		7
19 	6 		286.669990062714
Die MEnge ist korrekt summiert.... nur das Brutto feld nicht.
Das Brutto-Feld ist im übrigen ein float feld. Kann es daran liegen, das SQL die menge sauber berechnet... aber bei der summe vom Bruttowert versagt ?
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 02.10.2011, 18:26  
Erfahrener Benutzer
 
Registriert seit: 01.06.2011
Beiträge: 389
PHP-Kenntnisse:
Anfänger
achtelpetit befindet sich auf einem aufstrebenden Ast
Standard

Float ist der falsche Datentyp, nimm Decimal oder rechne grundsätzlich nur mit Cent als Integers.
http://dev.mysql.com/doc/refman/5.1/...-overview.html
http://de.wikipedia.org/wiki/Gleitkommazahl
achtelpetit ist offline   Mit Zitat antworten
Alt 02.10.2011, 22:44  
noop
Gast
 
Beiträge: n/a
Standard

ahnt ichs. Sowas hab ich schon als gemeldeten Bug auf der mysql seite gelesen.

DB-Struktur besteht nun. Wenn ich diesen nun ändere, wird vermutlich mehr kaputt gehen, als nutzen daraus entstehen.

Hab ich ne Möglichkeit, SQL in der Abfrage zu sagen, dass er den Wert umwandeln soll sodass aus sicht von SQL ein decimal Wert rauskommt ?
  Mit Zitat antworten
Alt 02.10.2011, 23:24  
Erfahrener Benutzer
 
Registriert seit: 01.06.2011
Beiträge: 389
PHP-Kenntnisse:
Anfänger
achtelpetit befindet sich auf einem aufstrebenden Ast
Standard

Das ist kein Bug, kein Fehler, das ist eine grundsätzliche Eigenschaft von Gleitkommazahlen.
Ich würde alles in Cent als Integer-Zahl verwalten. Wenn Deine Tabellen sachgerecht aufgebaut sind und keine berechneten Werte enthalten, sollte das ohne jeden Verlust zu ändern sein.
achtelpetit ist offline   Mit Zitat antworten
Alt 04.10.2011, 09:56  
Erfahrener Benutzer
 
Registriert seit: 25.01.2009
Beiträge: 1.027
PHP-Kenntnisse:
Fortgeschritten
Capfly befindet sich auf einem aufstrebenden Ast
Capfly eine Nachricht über ICQ schicken Capfly eine Nachricht über MSN schicken
Standard

Vorher vielleicht kleine Datensicherung machen
__________________
MfG
~Capfly
Jetzt NEU! Cpix & Wbits Katahlan.de - Das Browsergame
Capfly ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

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 an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
pdflib Felder beschreiben geograman PHP-Fortgeschrittene 6 03.06.2011 21:39
[Erledigt] mysql_query(Update ....) = keine Änderung der Felder NicOh PHP Einsteiger 8 25.05.2011 20:03
Mehrer Felder auf Eingabe überprüfen ooldorf PHP Einsteiger 15 29.03.2011 17:05
Felder eines Datensatzes separieren aniga_de Datenbanken 10 26.01.2010 21:29
MySQL - Felder mit verschiedenen Bedingungen summieren Patrick Hilker Datenbanken 2 27.10.2009 16:23
[Erledigt] Tabellenlayout: Große Felder auslagern? boernard Datenbanken 7 27.07.2009 14:03
Bei Suche in Tabelle nur Felder ausgeben die das Suchwort beinhalten MichaelB Datenbanken 6 01.03.2009 23:38
suche tutorial: FORMULAR FELDER AUF INHALT PRÜFEN PHP Tipps 2006 7 25.01.2006 19:14
[Erledigt] Große Felder wie TEXT auslagern? Datenbanken 9 26.10.2005 20:22
Formularauswertung: Leere Felder anzeigen maeck PHP Tipps 2005-2 1 18.09.2005 21:42
Dynamisch Formular Felder erstellen Simon9990 PHP Tipps 2005 2 29.01.2005 22:00
Felder löschen!? PHP Tipps 2005 2 05.01.2005 14:36
Nach Formularcheck sind die Felder leer PHP Tipps 2007 6 04.01.2005 21:42
leere felder entfernen PHP Tipps 2007 14 04.01.2005 10:59
felder gegebenen falls überprüfen und sonst mail schicken. lindner PHP Tipps 2004-2 1 14.11.2004 15:47

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
summieren von float-feldern, php mysql decimal summiert falsch

Alle Zeitangaben in WEZ +2. Es ist jetzt 14:44 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum