Entwickler-Ecke
Datenbanken - Ausgabe von SQL Abfrage formatieren
hube - Mi 08.09.10 15:29
Titel: Ausgabe von SQL Abfrage formatieren
Hallo zusammen
Ich habe folgendes Problem: Ich lese auf zwei verschiedene Arten Daten aus der selben Tabelle heraus und möchte bei beiden Ergebnissen das Resultat (Preis oder Umsatz) mit 2 Kommastellen formatiert haben. Es handelt sich um eine Paradox Tabelle und Delphi7.
Hier sind die Abfragen mit welchen ich die Daten auslese:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| procedure TForm1.Button1Click(Sender: TObject); begin Query1.Close; Query1.SQL.Clear; Query1.SQL.Add ('Select *'); Query1.SQL.Add ('FROM Lager'); Query1.SQL.Add ('WHERE status = ''verkauft'''); Query1.SQL.Add (' and ABGERECHNET_BETRAG = 0'); Query1.SQL.Add (' and verkauft_datum <=' +QuotedStr(Label2.Caption)); Query1.Open;
DBGrid1.Visible := True; Label1.Caption := IntToStr(Query1.RecordCount) + ' rows'; Label1.Visible := True; Button3.Visible := True; Button4.Visible := True; Button4Click(Sender); end; |
Bei dieser Abfrage möchte ich, dass es im DBGrid die Spalte "Preis" mit 2 Kommastellen anzeigt. Das sollte doch mit Format(Preis,'0.00') funktionieren, aber ich bringe das nicht hin.
und
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| procedure TForm1.ComboBox1Click(Sender: TObject); var start : string; ende : string; begin start := '"01.01.' + Combobox1.Text +'"'; ende := '"31.12.' + ComboBox1.Text +'"'; Query1.Close; Query1.SQL.Clear; Query1.SQL.Add ('SELECT Kundennummer, SUM(preis) AS Umsatz FROM "lager.db"'); Query1.SQL.Add ('WHERE (status = "verkauft")'); Query1.SQL.Add ('AND (verkauft_datum <= '+ende+')'); Query1.SQL.Add ('AND (Kundennummer BETWEEN 1001 AND 1999)'); Query1.SQL.Add ('AND (verkauft_datum >= '+start+')'); Query1.SQL.Add ('GROUP BY Kundennummer'); Query1.SQL.Add ('order by Umsatz desc'); Query1.Open; Label1.Caption := IntToStr(Query1.RecordCount) + ' rows'; Button4Click(Sender); end; |
Auch hier sollte es doch mit Format(Preis,'0.00') funktionieren.
Ich stehe da irgendwie auf dem Schlauch ...
Besten Dank für jede Hilfe.
hube
Moderiert von
Narses: Code- durch Delphi-Tags ersetztModeriert von
Narses: Topic aus Dateizugriff verschoben am Mi 08.09.2010 um 17:13
zuma - Mi 08.09.10 16:38
Hallo,
die Formatierung deines Ergebnisses sollte bei der Darstellung, nicht bei der Abfrage vorgenommen werden.
Dazu solltest du dir mal die Eigenschaft Displayformat anschauen ;)
hube - Mi 08.09.10 16:45
Das habe ich mir auch schon überlegt, nur ist die angezeigte Spalte bei dem selben DBGrid nicht immer die Selbe die dann 2 Kommastellen haben sollte.
Es muss doch eine Möglichkeit geben, die Ausgabe einer SQL Abfrage direkt zu formatieren, sonst gäbe es ja den Befehl "Format" nicht.
Aber Danke trotzdem.
hube
Tankard - Mi 08.09.10 18:07
SELECT Kundennummer, Format(SUM(preis),2) AS Umsatz FROM "lager.db"
sollte gehen.
gruss
Tankard
alzaimar - Mi 08.09.10 19:25
Wie wäre es, das Feld der Query zu formatieren?
Delphi-Quelltext
1:
| Query.FieldByName('Preis').DisplayFormat := '#0,0.00'; |
Ungetestet.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!