![]() |
Datenbank: ABS • Version: 5.05 • Zugriff über: DataModule
SQL-Abfrage nach Monat gruppieren
Hey Leute,
ich komme einfach nicht weiter. :wall: Ich habe ein DBChart-Modul eingesetzt und es mit einer Abfrage verbunden. Dies funktioniert soweit auch.
Delphi-Quellcode:
Nun möchte ich aber, dass die Werte der einzeln angezeigten Tage summiert und das auch noch pro Monat ausgegeben werden soll. (Gesammtsumme pro Monat)
with ABSQuery1 do
begin ABSQuery1.Close; ABSQuery1.SQL.Text := 'SELECT t1."Datum", SUM(t1."GesamtNetto") AS "sumGesamtNetto" FROM "tblRechnung" t1 WHERE (t1."Datum" Like "%"+:Jahr) GROUP BY t1."Datum", t1."GesamtNetto" HAVING ((EXTRACT(MONTH FROM t1."Datum")))'; ABSQuery1.ParamByName('Jahr').asString := cboJahr.Text; ABSQuery1.Open; end Hat jemand eine Idee? Mfg Norbert |
Re: SQL-Abfrage nach Monat gruppieren
SQL-Code:
GROUP BY EXTRACT(MONTH FROM t1."Datum"), t1."GesamtNetto"
|
Re: SQL-Abfrage nach Monat gruppieren
Hallo Markus,
ABS erlaubt keine Ausdrücke in der GROUP BY Klausel - besser so:
SQL-Code:
Grüße vom marabu
SELECT EXTRACT(MONTH FROM datum) AS monat, SUM(gesamtnetto) FROM rechnungen GROUP BY monat ORDER BY monat DESC
|
Re: SQL-Abfrage nach Monat gruppieren
Ich kenn mich halt mit diesem DBMS nicht aus.
|
Re: SQL-Abfrage nach Monat gruppieren
Hey Leute,
danke an alle, ich habe es nun so eingebaut und läuft sehr gut!! :mrgreen:
Delphi-Quellcode:
mfg Norbert
procedure TfrmUmsatz.FormActivate(Sender: TObject);
begin cboJahr.Text := FormatDateTime('yyyy',date); with ABSQuery1 do begin ABSQuery1.Close; ABSQuery1.SQL.Text := 'SELECT EXTRACT(MONTH FROM datum) AS monat, SUM(gesamtnetto)AS sumGNetto FROM tblRechnung WHERE (Datum Like "%"+:Jahr) GROUP BY monat ORDER BY monat DESC'; ABSQuery1.ParamByName('Jahr').asString := cboJahr.Text; ABSQuery1.Open; end end; |
Re: SQL-Abfrage nach Monat gruppieren
Nur ein wenig Kosmetik:
Delphi-Quellcode:
Vielleicht solltest du nochmal prüfen, ob das Ereignis OnActivate() der Form die optimale Stelle für die Query ist.
procedure TfrmUmsatz.FormActivate(Sender: TObject);
begin with ABSQuery1 do begin SQL.Text := 'SELECT EXTRACT(MONTH FROM datum) AS monat, ' + 'SUM(gesamtnetto) AS sumGNetto FROM tblRechnung ' + 'WHERE EXTRACT(YEAR FROM datum) = :jahr) ' + 'GROUP BY monat ORDER BY monat DESC'; Params.ParamValues['jahr'] := CurrentYear; Open; end; end; Gute Nacht marabu |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz