error1: SQL: Summe der letzten X zeilen

Hallo,

ich würde gernen bei einer Tabelle der Art:

1 | A | 300
1 | B | 100
1 | C | 50
2 | A | 200
2 | B | 100
2 | C | 100
3 | A | 100
3 | B | 100
3 | C | 100

Das Ergebnis

1 | A | 300 (Summe Zeieln bis 1: 0 + 300)
1 | B | 100
1 | C | 50
2 | A | 500 (Summe Zeilen bis 2: 0+300+200)
2 | B | 200 (0+100+100)
2 | C | 150 (0+50+100)
3 | A | 600 (Summe Zeilen bis 3: 0+300+200+100)
3 | B | 300 (0+100+100+100)
3 | C | 250 (0+50+100+100)

Irgendwer ne Ahnung wie ich das mithilfe von MySQL bwerkstelligen kann (Braucht man dafür While Schleifen o.ä.)?

  1. ich würde gernen bei einer Tabelle der Art:

    ...

    Das Ergebnis

    ...

    Also ich bin gerde zu müde um aus Deinem Beispiel eine Regel zu bauen, die dann womöglich (genauer: überwiegend wahrscheinlich) auch noch falsch ist, weil das Beispiel im Detail falsch oder unvollständig ist.

    Formuliere doch mal die anzuwendende Regel in menschlicher Sprache, am besten auf deutsch. Sicher wird Dir dann jemand dabei helfen, das in einen der zahlreichen Dialekte von "Englisch für Personen mit beschränktem Wortschatz" (also eine Programmiersprache oder SQL) zu übersetzen.

    Fred

    1. Ich sehe zwar nicht wo das Beispiel falsch ist aber ich denke ein Beispiel ist in dem Falle einfacher zu verstehen ich kann es aber gerne versuchen:

      Bei der Tabelle (Tag, Name, Betrag)
      hätte ich gernen pro Tag die Summe der Beträge der letzten Tage bis zum Anfang addiert und das pro Name.
      Also soll an Tag 3 die Beträge der letzten 3 Tage (Tag 3-1) für jeweils A, B, C ,... summiert werden.
      An Tag 4 die letzten 4 usw..

      Hoffe das hilft.
      Danke

      ich würde gernen bei einer Tabelle der Art:
      ...
      Das Ergebnis
      ...

      Also ich bin gerde zu müde um aus Deinem Beispiel eine Regel zu bauen, die dann womöglich (genauer: überwiegend wahrscheinlich) auch noch falsch ist, weil das Beispiel im Detail falsch oder unvollständig ist.

      Formuliere doch mal die anzuwendende Regel in menschlicher Sprache, am besten auf deutsch. Sicher wird Dir dann jemand dabei helfen, das in einen der zahlreichen Dialekte von "Englisch für Personen mit beschränktem Wortschatz" (also eine Programmiersprache oder SQL) zu übersetzen.

      Fred

      1. Tach!

        Bitte zitiere nur das, worauf du dich konkret bezieht und nicht im TOFU-Stil. Danke.

        Ich sehe zwar nicht wo das Beispiel falsch ist aber ich denke ein Beispiel ist in dem Falle einfacher zu verstehen ich kann es aber gerne versuchen:

        Du weißt ja auch, was die Zahlen bedeuten sollen. Als Außenstehender kann man ohne die Regel zu kennen nicht feststellen, ob die Daten plausibel sind oder nicht. Und auch ich habe mich schwer getan, lediglich aus dem Beispiel die Regel zu bestimmen.

        Bei der Tabelle (Tag, Name, Betrag) hätte ich gernen pro Tag die Summe der Beträge der letzten Tage bis zum Anfang addiert und das pro Name.

        Du brauchst also erst einmal alle Kombinationen von Tag und Name. Wenn diese Kombination einmalig ist - sprich: Ein Unique-Index über beiden Feldern liegt - dann kannst du zunächst einmal diese beiden Spalten selektieren. Ansonsten müsstest du noch über diese beiden Spalten gruppieren.

        In diese Abfrage baust du nun eine korrelierte Subquery in der SELECT-Klausel ein. Diese summiert alle Beträge aus derserselben nämlichen Tabelle, bei denen der Name mit dem äußeren übereinstimmt und der Tag kleiner oder gleich dem äußeren ist.

        dedlfix.