Ertragssumme aus MySQL Werten errechnen

  • Hallo PHP Freunde.

    Ich muss ganz ehrlich gestehen dieser Post hier geht fast in Richtung "könnt ihr mir mal bitte genau zeigen wie es geht" und bekommt dadurch den Charme von "könnt ihr mal mein Problem lösen". Aber so ist es nicht gemeint. Ich bin kein blutjunger PHP Anfänger aber ich steh grad wie Ochs' vorm Berg und seh' die Lösung nicht (mega peinlich!). Ich hoffe da wirklich auf einen Tip aus der Runde.

    Folgendes Problem:
    ich habe eine MySQL Tabelle mit den Feldern "timestamp" und "amount". Im ersten wird nur via "current_timestamp" der Zeitpunkt der Eintragung von "amount" festgehalten, während "amount" den Wert eines Zählerstandes beinhaltet. Der Zählerstand baut sich normalerweise fortlaufend auf - der Wert nimmt also stetig zu. An jedem Tag wird der Zählerstand insgesamt 3x festgehalten, und wenn er sich nicht geändert hat - wird stumpf der gleiche Wert noch mal festgehalten. Er kann aber auch vollkommen geleert werden, also auf 0 zurückfallen. Wie muss ich vorgehen wenn ich wissen wollte, wie der gesamte Zuwachs des Zählers innerhalb der letzten Woche war? Die MySQL Abfrage ist relativ einfach und sieht derzeit für meinen Fall momentan so aus:

    SQL
    SELECT timestamp,amount FROM balance WHERE DATEDIFF(NOW(),timestamp) <=7 ORDER BY timestamp ASC

    Mit der Abfrage bekomme ich die Liste der Einträge der letzten 7 Tage, natürlich auch mit allen doppelten Werten.

    Ich habs jetzt mit einer PHP While Schleife versucht die einfach die Zeilen durchgeht und prüft ob:
    1.) der nächste Wert größer ist als der vorhergehende, dann ist die neue Gesamtsumme eben dieser neue Wert
    2.) der nächste Wert KLEINER ist als der vorhergehende, dann ist die neue Gesamtsumme die bisherige Gesamtsumme summiert mit dem neuen Wert

    Und nur damit man das mal vor Augen hat in Zahlen:

    01.08.2012 - 2500
    02.08.2012 - 3000
    03.08.2012 - 1000
    04.08.2012 - 1500
    05.08.2012 - 4500

    Bei diesem Beispiel müsste als Gesamtwert folglich 7500 herauskommen. Denn zunächst steigt der Wert von 2500 auf 3000 und wurde dann offensichtlich zurückgesetzt. Der Maximalwert des Zählers bis dahin ist 3000. Danach steigt der Zähler neu an und endet im Maximalwert 4500. Da mich nur der gesamte Zuwachs interessiert - ist es die Summe der beiden Maximalwerte.

    Das dürfte eigentlich nicht so schwer sein - aber ich kriegs nicht hin. Ich wäre also wirklich sehr sehr dankbar, wenn evtl. jemand die Zeit hätte mir seinen Lösungsvorschlag aufzuzeigen. Ich steh' total aufm Schlauch.
    P.S.: sollte ich zwischenzeitlich selbst auf die Lösung kommen - werde ich sie hier selbstverständlich posten.

    Und bitte nich böse sein, mir ist bewusst das diese Anfrage ne dreisste Komponente hat...

  • Hmm, wenn ich das richtig verstanden habe, könnte das passen: