AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Benutzung von Sum() in SQL
Thema durchsuchen
Ansicht
Themen-Optionen

Benutzung von Sum() in SQL

Ein Thema von Smiley · begonnen am 14. Mai 2005 · letzter Beitrag vom 15. Mai 2005
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Smiley
Smiley

Registriert seit: 9. Dez 2004
Ort: Gedern
205 Beiträge
 
Delphi 10.4 Sydney
 
#1

Benutzung von Sum() in SQL

  Alt 14. Mai 2005, 23:16
Datenbank: Access • Zugriff über: ADO
Nachdem ich nun alle Beiträge zur Summenbildung in SQL hier durchgelesen habe und die SQL Syntax eigentlich auch richtig sein müsste, wende ich mich nun doch mal an Euch, da ich nicht mehr weiter weiß.

Ich habe eine Datenbank Belege mit den Feldern Nr,Datum,Betrag(Float) und möchte gerne wissen wie hoch die Summe aller Beträge in
meiner Datenbank ist.

Dazu habe ich folgendes programmiert:

Delphi-Quellcode:
    FBelege.ADOQBelege.active:=False;
    FBelege.ADOQBelege.SQL.Add('Select Sum(Betrag) As Summe From Belege');
    FBelege.ADOQBelege.active:=true;
    Gesamt:=FBelege.ADOQBelege.FieldByName('Summe').ASFloat;
    FBelege.ADOQBelege.active:=False;
sobald ich active auf True setze kommt die Fehlermeldung:

ADOQBelege: Das Feld Nr wurde nicht gefunden

Was mache ich falsch ?
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#2

Re: SQL Summe berechnen

  Alt 15. Mai 2005, 01:29
Ist ja auch kein Wunder. Die Fehlermeldung besagt, daß das Feld Nr. nicht vorhanden ist ? Tja, so sieht es aus. Was erwartestt Du denn ? 8)
Gruß
Hansa
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: SQL Summe berechnen

  Alt 15. Mai 2005, 02:00
Moin Hansa,

Zitat von Hansa:
Die Fehlermeldung besagt, daß das Feld Nr. nicht vorhanden ist ? Tja, so sieht es aus. Was erwartestt Du denn ?
Vielleicht die Anwort darauf, warum sich die Fehlermeldung auf ein Feld bezieht, das überhaupt nicht angesprochen wird?
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: SQL Summe berechnen

  Alt 15. Mai 2005, 02:29
Zitat von Christian Seehase:
Moin Hansa,

Zitat von Hansa:
Die Fehlermeldung besagt, daß das Feld Nr. nicht vorhanden ist ? Tja, so sieht es aus. Was erwartestt Du denn ?
Vielleicht die Anwort darauf, warum sich die Fehlermeldung auf ein Feld bezieht, das überhaupt nicht angesprochen wird?
Ich schätze Du hast in der Query noch ein Überbleibsel von altem SQL zu stehen. Wie wär's damit:

Delphi-Quellcode:
with FBelege.ADOQBelege do
begin
   Active := False;
   SQL.Clear; // <------
   SQL.Add('Select Sum(Betrag) As Summe From Belege');
   Active := True;
   Gesamt := FieldByName('Summe').AsFloat;
   Active := False;
end;
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#5

Re: SQL Summe berechnen

  Alt 15. Mai 2005, 05:49
Zitat von Union:
... Ich schätze Du hast in der Query noch ein Überbleibsel von altem SQL zu stehen. ....
Oder Du hast im Feldeditor (rechter Mausklick auf die Querykomponente - Feld-Editor) etwas eingetragen.
Wenn dort Felder angegeben wurden erwartet die Query-Komponente das diese auch bei jedem .Open vorhanden sind.

P.S.: Es wäre gut wenn Du den Titel der Frage ändern würdest. Der Fehler hat ja nichts mit dem SUM() zu tun.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von Smiley
Smiley

Registriert seit: 9. Dez 2004
Ort: Gedern
205 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: SQL Summe berechnen

  Alt 15. Mai 2005, 12:45
@Union das mit dem SQL.clear hab ich natürlich vorher schon gemacht, habs nur nicht mit in das Listing reingenommen.

Sharky hat warscheinlich recht ich habe in meinem Grid den Feldeditor benutzt, habe die Felder dort zum testen aber schon mal rausgenommen, da ich das auch schon vermutet hatte. Möglicherweise habe ich aber in einem anderen Feld auch den Feldeditor benutzt und habe das übersehen. Danke für den Tip, werde gleich mal nachsehen.

Den Feldeditor habe ich benutzt um die Einstellungen der einzelnen Spalten im Grid anzupassen. Geht das auch ohne den Feldeditor ?

Wie kann ich den Titel ändern ?
Habe noch nie einen Artikel verändert und finde hier keinen Button dafür.
Oder Wo kann ich das nachlesen ?

Danke für Eure Mühe.
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#7

Re: SQL Summe berechnen

  Alt 15. Mai 2005, 12:49
Zitat von Smiley:
... Wie kann ich den Titel ändern ? ....
Hai,

einfach in deinem ersten Posting in diesem Thread auf Edit klicken (rechts in der Titelleiste).
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#8

Re: SQL Summe berechnen

  Alt 15. Mai 2005, 12:54
Also gut, Du brauchst irgendwo noch die NR. Diese wird aber nicht so ohne weiteres geliefert. 8)

SQL.Add('Select NR,Sum(Betrag) As Summe From Belege');
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#9

Re: SQL Summe berechnen

  Alt 15. Mai 2005, 13:05
Zitat von Smiley:
... Den Feldeditor habe ich benutzt um die Einstellungen der einzelnen Spalten im Grid anzupassen. Geht das auch ohne den Feldeditor ?....
Was genau passst Du denn an?

Es gibt zwei Möglichkeiten. Entweder Du arbeitest für deine Summenberechnung mit einem zur Laufzeit erzeugten Query:
Delphi-Quellcode:
function GetSumFromTable (aConnection : TADOConnection;aFieldName , aTableName : String) : Real;
begin
  with TADOQuery.Create(nil) do
  begin
    Connection := aConnection;
    SQL.Text := 'SELECT SUM(' + aFieldName + ') AS summe FROM ' + aTableName;
    Open;
    Result := FieldByName('Summe').AsFloat;
    Close;
    Free;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  Gesamt : Real;
begin
  Gesamt := GetSumFromTable(ADOConnection1,'betragt','belege');
end;
Oder Du arbeites nur mit einem Query. Dann musst Du zur Laufzeit die Formatierungseinstellunge von Hand vornehmen.
Schaue Dir mal dieses Posting an
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von Smiley
Smiley

Registriert seit: 9. Dez 2004
Ort: Gedern
205 Beiträge
 
Delphi 10.4 Sydney
 
#10

Re: SQL Summe berechnen

  Alt 15. Mai 2005, 13:09
SQL.Add('Select NR,Sum(Betrag) As Summe From Belege'); Diese Idee hatte ich auch schon Hansa, wollte sogar schon alle Felder angeben, leider kommt bei diesem SQL-Befehl die folgende Meldung:

Sie wollten eine Abfrage ausführen, die den angegebenen Ausdruck 'Nr' nicht als Teil der Agregatfunktion einschließt.

Mit diese Meldung kann ich noch viel weniger anfangen.
Das Feld Nr ist übrigens mein Primärindex, falls das von Bedeutung ist.

Weitere Komponenten mit Feldeditor außer dem Grid habe ich nicht gefunden.
Habe sonst nur Editfelder einen Navigator und eine BrowserComponente im Formular.
Die Felder im Feldeditor habe ich rausgelöscht, es kommt aber immer noch die Frage nach dem Feld Nr.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:46 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz