Mailinglisten-Archive |
echnaton schrieb: >>ich hab ein problem bei der berechnung einer summe. >>meine datenbank enthält z.B 2 Spalten eine Spalte Benutzer_id und eine >>Spalte Punkte. >>z.B >>1 10 >>2 6 >>1 7 >>2 2 >>3 0 >>4 5 >>usw. also jede benutzer_id hat verschiedene Anzahl von Punkten. nun möchte >>ich die summe der besten 8 Punkte jeder benutzer_id berechnen. > > hier ein Vorschlag ohne Sub-Selects, aber dafür leider mit temp-Tabellen: > > [...] > > Leider ist mir nichts Kürzeres eingefallen. Kann > auch leider momentan nicht testen. Vielleicht > hilft's ja trotzdem... aber mir ... CREATE TEMPORARY TABLE `temptable` ( `benutzer_id` BIGINT, `punkte_id` BIGINT NOT NULL AUTO_INCREMENT, PRIMARY KEY (`benutzer_id`, `punkte_id`) ) SELECT `benutzer_id`, `punkte` FROM `tbl_ergebnisse` ORDER BY `punkte` DESC; Das ist _ein_ Query! SELECT `benutzer_id`, SUM(`punkte`) AS `punkte` FROM `temptable` WHERE `punkte_id` <= 8 GROUP BY `benutzer_id`; habs aber nicht probiert ... mit Variablen lässt sich das vielleicht auch in einem Query und ohne Temp-Tabellen lösen ... -- Sebastian Mendel www.sebastianmendel.de www.warzonez.de www.tekkno4u.de www.nofetish.com www.sf.net/projects/phpdatetime www.sf.net/projects/phptimesheet -- Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive