ChrisB: phpMyAdmin: 2 Abfragen verknüpfen (eine Ergebnisseite)

Beitrag lesen

Hi,

In der Tabelle »kunden_rechnungen« ist das Feld »Rechnungsbetrag« vom Typ FLOAT(10,2). Kann das eine Rolle spielen?

Ja, FLOAT bildet keine exakten Werte ab.

Da es sich um Geldbeträge handelt, würde ich eher dazu raten, keine Fließkommazahlen für diese Spalten zu benutzen (sondern z.B. Ganzzahlen in Cent) ...

Ich würde ungerne die Rechnungen-Tabelle umgestalten.

Solltest du aber, weil FLOAT definitiv der falsche Datentyp für sowas ist.

Müssen nicht unbedingt Centbeträge als INT sein, MySQL kennt für genau solche Zwecke nämlich auch DECIMAL. Das besitzt eine anzugebende Genauigkeit an Nachkommastellen, und garantiert diese auch.

Christoph, bei der Beschreibung von UNION finde ich nichts, worauf du im letzten Post anspielst.

Ich bezog mich auf
“If the data types of corresponding SELECT columns do not match, the types and lengths of the columns in the UNION result take into account the values retrieved by all of the SELECT statements.”
in der englischen Fassung. (Hatte nicht angenommen, dass du die deutsche Übersetzung nutzt. Das ist doch, wenn man's „genau wissen“ will, meistens keine gute Idee, bei PHP analog.)

Wenn du das „Problem“, dass dir mehr als zwei Nachkommastellen geliefert werden, vorher mit der einfachen Query, die nur alle Datensätze liefert, nicht hattest, und es erst durch das Bilden einer SUMme auftritt - dann siehst du da schon den Effekt der immanenten Ungenauigkeit von FLOAT-Zahlen (denn das Bilden einer Summe an sich erzeugt selber nicht mehr Nachkommastellen, als vorher maximal vorhanden waren).

Also: Spaltentyp *ÄNDERN*

MfG ChrisB

--
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?