Datensätze bis wert addieren

Touya

Mitglied
Hallo,

ich brauche eine (while) anweisung, mit dessen hilfe ich Zahleneinträge die nach datum geordnet sind, addieren kann, bis ein bestimmter wert erreicht ist.

Das Datum von dem ersten Eintrag der über den geforderten wert drüber geht soll dann ausgegeben werden.

Ich bin am ende mit meinem Latein. Finde einfach keine Lösung.
Hier ist mal meine mysql-anweisung:
PHP:
$r = mysql_query("Select * from Geld where Betrag >= 50 ORDER BY date_j,date_m,date_t ASC");

Hier werden lediglich alle felder der tabelle 'Geld' wo der Betrag größer gleich 50 ist nach dem datum geordnet.

Mit SUM(Betrag) könnte man ja die summe aller Einträge rausbekommen. Wenn man die funktion nach meinen Anforderung umstellen könnte... vielleicht funktioniert es dann ja.

danke schonmal!
 
Hi,

Theorie:

Erstelle außerhalb der WHILE Schleife eine Variable und setze Sie auf 0.

In der While Schleife addierst du dann bei jedem durchlauf den Betrag
mit der Variable. Am Ende der While Schleife ist eine If Anweisung wo
du überprüfst ob der Betrag überboten wurde.

Wenn ja schreibst du in eine andere Variable das Datum bei dem
überboten wurde.

Ist die While Schleife fertig hast du in der 2ten Variable nun den Wert des
Datums bei dem überboten wurde, ist die noch leer, ist der Grenzwert
nicht überstiegen worden ...

Vielleicht war das ja ein Denkanstoß ...

mfg
 
Wahrscheinlich wäre die Abfrage realisierbar, wenn du Daten (hier Plural von Datum) in Spalten mit passenden Datumstypen speicherst.

Denn dann wäre eine Abfrage folgender Struktur wahrscheinlich möglich:
Code:
SELECT
        SUM(`Betrag`),
        MAX(`Datum`)
  FROM
        `Geld`
  WHERE
        `Betrag` >= 50
  ORDER BY
        `Datum` ASC
 
Hallo nochmal,

ich möchte zum beispiel folgendes:
Code:
date_t   date_m   date_j   Betrag in EUR
1             1        2004         400
6             5        2004         600
8             9        2004         900
2             10      2004         300
sagen wir ich will 800EUR ausgeben... zu welchem Datum habe ich soviel geld?

ausgabe sollte in diesem Fall '08.09.2004' sein.

@Gumbo

ich kann die datum felder leider nicht mit einem timestamp machen, da der user bestimmen soll, zu welchem datum er das geld bekommt.

mfg
 
du hast recht, hatte einen Denkfehler :-(

anyway, hab meine tabellenstruktur abgeändert:

Code:
Geld          datum          geld_doppelt
400          2004-05-02     400
500          2004-06-02     500
600          2004-07-08     650
50            2004-07-08     650
300          2004-08-09     200

'geld_doppelt' ist für den Fall da, wo Geld am selben tag rein kommt. Der Wert wird immer durch ein update abgeglichen.

aber jetzt komm ich mit der sql anweisung durcheinander:
PHP:
$sql = mysql_query ("SELECT SUM(geld) as ges_geld, MAX(datum) as max_date FROM Geld where geld >= ".($kosten_ware2['ware']+$kosten_versand2['versand'])." ORDER BY datum ASC") or die(mysql_error());

soweit ich das verstanden habe, wird das gesammte Geld errechnet und das maximale datum ausgewählt wo in der spalte geld der betrag >= x ist. Und dieses ergebniss wird dann sortiert.

mfg
 
Zurück