Spalte im DBGrid summieren
-
Hallo,
ein Problem stellt sich mir zur Zeit das Summieren einer Spalte in einem Grid.
Vorrauss.: Ein Grid wird über SQL mit drei Spalten geladen. Ein Edit-Feld soll
mir die Summe aus Spalte eins anzeigen.
Mit: Edit1->Text = DBGrid1->Columns->count;
bekomme ich nur die Spaltenanzahl (3) angezeigt. Wie aber bekomme ich in Edit1
die Summe von Spalte eins angezeit??mfg
Traugott
-
Entweder iterierst Du durch alle Datensätze und addierst die Werte, oder Du machst einen SELECT SUM(FeldName) AS Summe...
-
Hallo Joe_M,
steige einfach nicht dahinter. Ein Codeschnipsel wäre tollmfg
Traugott
-
Dann rück mal ein bißchen mehr Informationen raus...

Mit welchen Komponenten greifst Du auf die Tabelle zu? (Sprich was für eine Datenquelle verwendest Du für das DB-Grid?)
-
wie würdest du denn von hand alle zusammen rechnen??
also ich würde einen eintrag nach dem anderem zusammen rechnen, bis ich beim letzten bin.
dann an edit1 ausgeben..jetzt nur noch in code umwandeln

-
Hallo_Joe_M,
als Grundlage dient mir eine xy.DB
Mein DBGrid hat eine DataSource1 zur Verbindung und ein Query1 (zur SQL Abfrage)
lädt mit mein Grid mit Daten. Auf Spalte 0 stehen meine Daten zu addieren.
Aber wie??mfg
Traugott
-
was ist das Problem?
es gibst zwei Ansätze, wie ja Joe_M. schon sagte:-
mit ner For- oder While-Schleife durch das Query und aufsummieren
-
ein zweites Query mit "select sum(spalte) from tabelle" und Übergabe des Wertes an das Editfeld
[Edit] mit Query1->Fields->Fields[0]->AsFloat oder Query1->FieldByName("Spaltenname")->AsFloat kannst du auf den Inhalt des Query-Feldes zugreifen
-
-
z.B. mit
double summe = 0; // oder int... Query1->First(); while (!Query1->EOF) { summe += Query1->FieldByName("DerSpaltenName")->AsFloat; Query1->Next(); }Ist aber nicht besonders schön, weil das DBGrid das durchlaufen der einträge 'anzeigt' Die m.E. sauberere Lösung ist ein eigenes Query dafür zu nehmen
-
Hallo Joe_M,
funtioniert. Vielen Dank !
mfg
Traugott