Größten Wert einer Tabelle ermitteln

macropode

Erfahrenes Mitglied
Hallo allerseits,

Ich habe ein kleineres Problem.

Mein Vorgänger hat eine Tabelle leider als string vormatiert der Inhalt dieser Tabelle sind werde wie: 899,78 aber auch werde wie 2.222,56.

Jetzt habe ich versucht mit folgenden quelltext:

Code:
$sql = "Select brutto from rechnungen ORDER BY (0 + REPLACE(brutto, ',' , '.'))DESC";

den höchsten werd zu ermitteln.

Jedoch erkennt er den tausender punkt nicht sodass 999,99 als grösster wert dargestellt wird.

Wie kann ich meiner Abfrage erklären das sie den tausender punkt mit berücksichtigen muss?

Ich wär euch für einen tipp dankbar.
 
Hallo,
du solltest die zahlen erst bei der Ausgabe Formatieren, dann kannst du das Feld (Type: FLOAT) nummerisch sortieren.
 
ich gehe mal davon aus, dass du dir meinen Link nicht durchgelesen hast?

versuch mal folgendes:
SQL:
select brutto from rechnungen order by cast(brutto as decimal) desc;

hab das jetzt nicht probiert, müsste aber funktionieren

MfG
 
habe den text leider nicht wirklich verstanden. bin leider nicht so englisch fest. sorry.

das problem bleibt dennoch erhalten.

er ignoriert den tausender punkt.
 
Dann halt mal auf Deutsch ;)

Cast-Funktionen und Operatoren

Ich würde mir hier am ehesten die Frage stellen, warum die Zahlen in einem solchen Format gespeichert werden und nicht bereits bei Eintragen in die Datenbank vernünftig formatiert werden.
Denn da scheint das Problem zu liegen.
 
Zurück