Subtraktion von Werten in verschiedenen Zeilen

  • Guten Morgen,


    ich habe ein kleine Problem und weiß noch nicht, wie ich es lösen kann.


    Eine SQL Abfrage holt mir Daten aus einer Tabelle

    SQL
    1. SELECT datum, name, punkte FROM vs_punkte WHERE name = :name ORDER BY datum DESC

    Ich erhalte dann folgende Tabelle

    Datum Name Punkte
    10.10.2020 Faustus

    99

    03.10.2020 Faustus 90
    25.09.2020 Faustus 75


    Ich hätte jetzt aber gerne noch eine weitere Spalte für die Differenz zur letzten Punktzahl des letzten Datums.

    Wie kann ich hier ie Differenz berechnen.

    Danke sehr und viele Grüße


    Faustus

  • Wahrscheinlich geht es auch mit SQL aber mit einer einfachen Nachverarbeitung ist es sehr einfach. Ich habe es mit einem Mockup getestet:

    Code
    1. $result = [
    2. ['date' => '10.10.2020', 'name' => 'Faustus', 'punkte' => 99],
    3. ['date' => '03.10.2020', 'name' => 'Faustus', 'punkte' => 90],
    4. ['date' => '25.09.2020', 'name' => 'Faustus', 'punkte' => 75],
    5. ];
    6. $ref = $result[count($result) - 1]['punkte'];
    7. foreach ($result as &$row) {
    8. $row['diff'] = $row['punkte'] - $ref;
    9. }
    10. var_dump($result);