[MySQL] - Feld vom vorherigen Datensatz verwenden

proloser

Erfahrenes Mitglied
Ich möchte in einer Abfrage das Feld vom vorherigem Datensatz verwenden.

Datenbank:
id | name | zahl
1 | test1 | 10
2 | test2 | 20
3| test3 | 30
4 | test4 | 100


Ich möchte immer das Feld "zahl" vom vorherigem Datensatz zur aktuellen "zahl" addieren.

Das sieht dann so aus:
1 - test1 - 10
2 - test2 - 30
3 - test3 - 50
4 - test4 - 130


Code:
$res = mysql_query("SELECT * FROM `table`");	
while($row = mysql_fetch_array($res)) 
{
    echo $row[id] . ' - ' . $row[name] . ' - ' . $row[zahl];
}

Ich könnte jetzt kompliziert mit einer weiteren Abfrage in der while-Schleife die vorherige Zahl ermittel, addieren und ausgeben - genau das möchte ich verhindern.

Es muss doch möglich sein, das ganze im selben Query zu verarbeiten. Oder?

Gruß Proloser


EDIT:
Hat sich erledigt.
Folgender Beitrag hat mir weitergeholfen:
http://www.tutorials.de/relationale-datenbanksysteme/319272-sql-abfrage-vorheriger-satz.html
 
Zuletzt bearbeitet:
Ist aber eher eine langsame Lösung, da du für jeden Datensatz ein Subselect absetzt. Bei wenigen Datensätzen mag das noch gehen.
Da du aber mit MySQL arbetiest, geht das relativ einfach mit einer Variablen
SQL:
SELECT
    t.*,
    -- Zahl der letzten Zeile zu der aktuellen Zahl dazurechnen
    @last_zahl + t.zahl AS new_Zahl,
    -- Die Zuweisung erst nach der Berechnung machen!
    @last_zahl := t.zahl
FROM
    `table` AS t,
    -- Variable Initialisieren
    (SELECT @last_zahl:=0) AS vars
ORDER BY id;
 
Zuletzt bearbeitet von einem Moderator:

Neue Beiträge

Zurück