hallo diggebaggen!
gut, dass das thema 'summieren von spalten einer tabelle' hier im forum noch nie behandelt wurde, somit kann ich es mal erklären
um dein problem zu lösen gibt es mehrere wege...
verwendung einer table-komponente
1) du iterierst satzweise durch die tabelle und summierst die beträge der einzelnen datensätze, welche zu deiner rechnung gehören
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| betrag:= 0; table1.First; while not table1.eof do begin if table1.FieldByName('Rechnung_ID').asInteger = aSuchID then Betrag:= Betrag + table1.FieldByName('Betrag').asFloat; table1.Next end; |
2) du setzt einen filter und iterierst durch die selektierten datensätze
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| betrag:= 0; FilterString:= Format('Rechnung_ID = %d',[aSuchID]); table1.Filter:= FilterString; table1.filtered:= true; while not table1.eof do begin Betrag:= Betrag + table1.FieldByName('Betrag').asFloat; table1.Next end; table1.filtered:= false; |
verwendung der komponente query
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| with query1 do begin clear; SQL.ADD('SELECT SUM(Betrag) as Summe FROM tblRechnungen '); SQL.ADD('WHERE (Rechnung_ID = aSuchID)'); open; Betrag:= Field[0].asFloat; end; |
alle quellcodes sind nur ins forum getippt und daher {$UNTESTED} - aber anhand von ihnen sollte die vorgehensweise klar sein.
mfg, stefan