Select und Punkte zählen
am 19.07.2006 17:22:55 von Lowpix Design
Hallo ich habe in kleines Problem.
Ich habe eine Datenbank in dem Punkte eingetragen werden jetzt möchte ich
eine Ausgabe der Punkte sotiert nach den User.
Folgendes möchte ich erreichen:
Monats Übersicht
Gesamt Punkte
und Punkte der letzten Auswertung.
was ich schon habe:
Aktueller Monat:
SELECT *,SUM(punkte) AS punktegesamt FROM tippspiel WHERE
MONTH(FROM_UNIXTIME(date))= '".$month."' GROUP BY user ORDER BY punktegesamt
DESC
Gesamt Punkte :
SELECT *,SUM(punkt) AS punktegesamt FROM tippspiel GROUP BY user ORDER BY
punktegesamt DESC
Diese beiden funktionieren auch wunderbar.Wie bekomme ich das hin das ich
die Punkte des letzten Tips angezeigt bekomme.
Also eine gesamt Punkte zahl der letzten Auswertung???
Ich weiß es nicht oder ich komme nicht weiter vielleicht fehlt mir auch nur
der richtige Denk anstoss hoffe Ihr könnte helfen.!!
Vielen Dank im vorraus.
Sven Germann
--
Re: Select und Punkte zählen
am 19.07.2006 18:54:18 von Johannes Vogel
Hi Sven
Lowpix Design wrote:
^-- hier gehört dein privater Name hin...
> Hallo ich habe in kleines Problem.
> Ich habe eine Datenbank in dem Punkte eingetragen werden jetzt möchte ich
> eine Ausgabe der Punkte sotiert nach den User.
> Folgendes möchte ich erreichen:
> Monats Übersicht
> Gesamt Punkte
> und Punkte der letzten Auswertung.
> was ich schon habe:
> Aktueller Monat:
> SELECT *,SUM(punkte) AS punktegesamt FROM tippspiel WHERE
> MONTH(FROM_UNIXTIME(date))= '".$month."' GROUP BY user ORDER BY punktegesamt
> DESC
In der DB solltest du immer das MySQL-interne Format date oder datetime
verwenden. Dann hiesse es hier auch month(date)=3 (ohne FROM_UNIXTIME()
und ohne '').
> Gesamt Punkte :
> SELECT *,SUM(punkt) AS punktegesamt FROM tippspiel GROUP BY user ORDER BY
> punktegesamt DESC
> Diese beiden funktionieren auch wunderbar.Wie bekomme ich das hin das ich
> die Punkte des letzten Tips angezeigt bekomme.
> Also eine gesamt Punkte zahl der letzten Auswertung???
Was heisst denn 'letzter Tipp'? Du speicherst ja das Datum mit ab. Also
kannst du einfach nach diesem Attribut sortieren.
> Ich weiß es nicht oder ich komme nicht weiter vielleicht fehlt mir auch nur
> der richtige Denk anstoss hoffe Ihr könnte helfen.!!
Also die aktuelle kumulierte Punktezahl pro User:
select user, sum(punkte) from tippspiel group by user;
Ich komme aber nicht ganz draus, was du kriegen möchtest. Vielleicht
formulierst du dir die Frage selbst nochmals genauer und kriegst dadurch
auch das Ergebnis von alleine raus...
HTH, Johannes
Re: Select und Punkte zählen
am 20.07.2006 09:27:21 von Lowpix Design
Wie soll ich das besser beschreiben.
Es geht um ein Tippspiel wo dem User Punkte gut geschrieben werden. Jetzt
möchte ich halt eine Übersicht haben für die User wo die Punkte aufgeführt
sind.
Und so kam es dann zur der zusammenstellung Gesamt Punkte, Punkte im
aktuellen Monat, und ich wollte halt eine Übersicht über die Punkte des
letzten Spieltages.
Gesamte Punkte,aktueller Monat usw. ist mir klar da es da interne Funktionen
bei mysql gibt.
Das Funktioniert ja auch aber mir fehlt so die letzte Idee wie ich den
letzten "Spieltag" anzeigen lassen kann.
Meine überlegung war DAYOFMONTH() was aber nicht ganz passt da ich ja
herausfinden müsste welcher der letzte Tag war.
Was ich ja machen könnte die letzte ID abfragen davon dann den Timestamp
nehmen und somit hätte ich ja den letzten Tag und könnte dann mit
DAYOFMONTH() arbeiten.
Aber diesen Weg wollte ich halt nicht gehen deswegen hoffte ich drauf das
ich einen guten Tip bekommen könnte wie ich es noch machen könnte.
Idee war schon die Punkte summieren, gruppieren nach User,(evt nach Datum),
nach Punkte sotieren,(evt nach Datum) und dann das letzte Datum wählen mit
LIMIT geht aber nicht da bekomme ich nur einen User was auch klar ist .
Da sich das Limit ja auf die Abfrage bezieht.
Ich brauch halt ne Abfrage die die Punkte summiert diese nach User gruppiert
sotiert nach Punkte absteigend und nur das letzte eingetragene Datum
verwendet.
Ich hoffe ich konnte es jetzt besser darstellen.
mfg
Sven
--