Announcement

Collapse
No announcement yet.

Summe einer DBGrid Spalte errechnen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Summe einer DBGrid Spalte errechnen

    Bezeichne mich noch als Anfänger und versuche verzweifelt mit folgenden
    Befehl die Summe einer DBGrid Spalte zu errechnen:
    SELECT SUM (Gesamtpreis) FROM bestellungen
    Haut einfach nicht hin
    Warum?? Bitte Bitte helft mir
    Danke

  • #2
    Hallo,

    der Weg ist nicht falsch, kommt nur darauf an, was du damit machst. Wenn du die Summe von Gesamtpreis z.B. in einem Label unterbringen möchtest, dann geht's so:

    <pre>
    try
    q := TQuery.create(self);
    with q do
    begin
    DataSourceName := 'MyDB';
    sql.add('select sum(gesamtpreis) as summe from bestellungen');
    open;
    label1.caption := format('Gesamtsumme: %m',[q['summe']]);
    end;
    finally
    q.free;
    end;
    </pre>

    Das kann man in eine Prozedur packen und in AfterPost bzw. AfterDelete der betreffenden Tabelle einbauen.

    Gruß Ul

    Comment


    • #3
      Hallo Uli!
      Danke für die schnelle Antwort.
      Ich versuche die ganze Geschichte mit einem DBEdit Feld.

      Gruß Michae

      Comment


      • #4
        Hallo Michael,

        würde mich interessieren wie Du das mit einen DBEDIT Feld gemacht hast ? Gruß Sve

        Comment


        • #5
          Hänge noch immer bei diesem Problem fest.
          Habe zwar Bücher in Massen, aber leider ist es sehr deprimierend
          wenn auch diese voller Fehler sind

          Comment


          • #6
            Was funktioniert an meiner Lösung nicht

            Comment


            • #7
              Hallo Uli,
              Deine Lösung funktioniert mit Sicherheit.
              Nur wie schon erwähnt bin ich noch ziemlich am Anfang und
              ich weiß einfach nicht wie ich mit diesem Text umgehen soll.
              Sorry, habe mich vorher falsch ausgedrückt

              Michae

              Comment


              • #8
                Hallo,

                also dann nochmal im Detail:

                schreibe eine Prozedur, die du z.B. SummeBerechnen nennst. Füge meinen Code in diese Prozedur ein.

                Nun musst du nur noch den Zeitpunkt bestimmen, wann die Prozedur ausgeführt wird: das sind AfterPost und AfterDelete der betreffenden Tabelle. Denn nur dort kann sich die Summe ändern!

                Also fügst du hier die Prozedur SummeBerechnen ein.

                Die Folge: immer, wenn du einen Datensatz änderst oder einen hinzufügst oder löschst, wird die aktuelle Summe im Label erscheinen.

                Gruß UL

                Comment


                • #9
                  Hallo ULi,
                  habe es endlich geschnallt.
                  Danke für die ausführliche Erläuterung

                  Gruß Michae

                  Comment


                  • #10
                    Hallo habe das gerade ausprobiert und bekommen leider bei der Befehlszeile q:= Tquery.create..... gleich eine Fehlermeldung und verstehe leider nicht warum, vielleicht kann einer von Euch mir weiterhelfen, ich stehe total auf dem Schlauch

                    Gruß Sve

                    Comment


                    • #11
                      Hallo Sven,

                      welche Fehlermeldung kommt konkret?

                      Tschüß

                      Torste

                      Comment


                      • #12
                        1. Hast du die Variable q : TQuery deklariert?<br>
                        2. Hast du die entsprechende Unit eingebunden?

                        Grundsätzlich: Wenn die Fehlermeldung <b>Undefinierter Bezeichner</b> kommt, bedeutet das in diesem Fall, dass die Klasse TQuery nicht bekannt ist.

                        Sie ist z.B. nicht bekannt, weil die Unit, in der sie deklariert wurde, deiner Unit nicht bekannt ist; die Unit also unter uses... nicht eingebunden wurde.

                        Setze den Cursor auf TQuery und drücke F1. In der Hilfe zu TQuery steht dann dick und fett: Unit <b>DBTables</b>.

                        So einfach ist das. Wenn du eine Query-Komponente auf dein Formular ziehst, wird das für dich automatisch erledigt; ist also auch eine Möglichkeit.

                        Gruß Ul

                        Comment


                        • #13
                          Hallo Uli,

                          danke für die Tips, aber ich bekomme die Meldung Variable q wurde wahrscheinlich nicht initialisiert. Die Variable ist deklariert

                          Comment


                          • #14
                            Willst du hier ein Quiz mit uns veranstalten? Wenn du das gleich geschrieben hättest, hätte ich mir das ganze Posting sparen können. Deine Meldung ist keine Fehlermeldung, es gibt auch noch Warnungen und Hinweise vom Compiler

                            Comment


                            • #15
                              Sorry Uli, so war das nicht gemeint...

                              Ich bin immer froh über eine Hilfe und du machst hier wirklich viel im Forum.

                              Alles nochmals vielen Dank !!!!

                              Ich werde mir mein problem heute nochmals betrachten

                              Comment

                              Working...
                              X