Announcement

Collapse
No announcement yet.

Für jede Zeile die Summe aller Wert bestimmen

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

  • Für jede Zeile die Summe aller Wert bestimmen

    Gegeben sei Beispielsweise folgende Tabelle:

    Code:
    Col1 Col2
    ---- ----
    A     1
    B     2
    C     3
    D     4
    Ist es möglich in einer Abfrage die Summe der vorhergegangenen Spalten zu erzeugen, sodass sich folgendes ergibt:
    A 1
    B 3
    C 6
    D 10
    A ist 1, denn es setzt sich zusammen aus A.
    B ist 3, denn es setzte sich zusammen aus A + B.
    C ist 6, denn es setzt sich zusammen aus A + B + C.
    D ist 6, denn es setzt sich zusammen aus A + B + C + D.

    Mein Ansatz war:

    Code:
    SELECT Col1, (SELECT SUM(COL2) 
                  FROM Tabelle 
                  WHERE COL2 <= COL2)
    FROM Tabelle 
    ORDER BY COL1
    Ich nutze SQLite, dort funktioniert es so jedoch nicht. Wäre es denn prinzipiell möglich?

    Gruss,

    Jean

  • #2
    Hallo,

    wenn Col2 immer Aufsteigend ist, dann ist dein Ansatz prinzipiell richtig. Jedoch solltest du Tabellenaliase vergeben, damit die Namen eindeutig sind.
    [highlight=sql]
    SELECT a.Col1, (SELECT SUM(b.COL2)
    FROM Tabelle as b
    WHERE b.COL2 <= a.COL2) as Sum_Col2
    FROM Tabelle as a
    ORDER BY a.COL1
    [/highlight]

    Gruß Falk
    Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

    Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

    Comment


    • #3
      Nur nochmal zur Auffrischung: SQL kennt per se keine Reihenfolge der Zeilen. Diese lässt sich höchstens optisch durch eine Sortierung erreichen.

      Comment


      • #4
        Herzlichen Dank für eure Antworten. Mit Falk`s Lösung funktioniert es einwandfrei.

        Comment

        Working...
        X