Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Summieren von Datensätzen!! (https://www.delphipraxis.net/29299-summieren-von-datensaetzen.html)

Cancer 7. Sep 2004 11:08


Summieren von Datensätzen!!
 
Also Leutz HI
Und zwar habe ich folgenden Code gefunden.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var gesamtzahl: integer;
begin
  // Verhindern, dass die Anzeige ständig aktualisiert wird:
  Table1.DisableControls;
  Table1.first;
  gesamtzahl:=0;
  while not Table1.eof do begin
    if Table1.FieldByName('Artikel').AsString='Radiergummi' then
      gesamtzahl:=gesamtzahl+Table1.FieldByName('Anzahl').AsInteger;
    Table1.next;
  end;
  Table1.EnableControls;
  Label1.Caption:='Radiergummis: '+IntToStr(gesamtzahl);
end;
Wie kann ich diesen Code jetzt so ändern das, das Programm mir eine Ausgabe macht wie oft jetzt das Wort Radiergummi in der DB vorkommt??

Cancer 7. Sep 2004 11:11

Re: Summieren von Datensätzen!!
 
Ist Okeh Leute habe es eben selber zufällig rausbekommen.

Hier der geänderte Code
Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
var gesamtzahl: integer;
begin
  // Verhindern, dass die Anzeige ständig aktualisiert wird:
  DataModule2.TableVideo.DisableControls;
  DataModule2.TableVideo.First;
  gesamtzahl:=0;
  while not DataModule2.TableVideo.Eof do begin
    if DataModule2.TableVideo.FieldByName('Genre').AsString = LabeledEdit1.Text then
      gesamtzahl:=gesamtzahl+DataModule2.TableVideo.IndexFieldCount;
    DataModule2.TableVideo.Next;
  end;
  DataModule2.TableVideo.EnableControls;
  Label1.Caption:=LabeledEdit1.Text+': '+IntToStr(gesamtzahl);

end;
Ist zwar an mein Programm angepasst, aber ihr werdet den Unterschied bestimmt sehen!! :-D

franktron 7. Sep 2004 11:33

Re: Summieren von Datensätzen!!
 
@Cancer

dein code hat einen Fehler

Delphi-Quellcode:
gesamtzahl:=gesamtzahl+DataModule2.TableVideo.IndexFieldCount;

müsste
gesamtzahl:=gesamtzahl+1;
heissen sonnst zählt er jedesmal die Anzahl der Felder der Tabelle hoch und nicht die Anzahl (felder*AnzTyp)
und du wilst doch AnzTyp haben :wink: .
und um die Anzahl der Daten zu finden gibst 2 Möglichkeiten die halbwegs schnell sind

1.
Delphi-Quellcode:
Table.Filter:='typ='+#39+Typ+#39;
Table.Filtered:=True;
anzahl:=Table1.RecordCount;
2. Die schnellste

SQL-Code:
SELECT COUNT(typ) as anzahl
FROM tabname
WHERE typ=:typ
Delphi-Quellcode:
Query1.ParamByName('typ').Text:=Typ;
Query1.Active:=True;
Anzahl:=Query1.FieldByName('anzahl').Value;
Query1.Active:=False;


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:05 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