joerg
Themenersteller
Fachinformatiker Anwendungsentwicklung
Content Gott (1941 Beiträge)
3 Maximal Werte in Summe (Seite 2)
joerg
Fachinformatiker Anwendungsentwicklung
Content Gott (1941 Beiträge)
Hallo
Ein kleiner Zwischenstand!
Diese Lösung befriedigt mich zwar nicht aber sie funktioniert soweit schon mal!
Ich mag es einfach nicht eine Zeile mehrmals zu weiderholen.
Das trifft hier auf den Fall mit dem Insert zu.
[SQL]TRUNCATE TABLE neu3;
INSERT INTO neu3
SELECT * FROM weltrang
WHERE now()<date_add(datum,interval 1 year) <br />
AND (idname =1) ORDER by punkte DESC LIMIT 3;
SELECT *, SUM(punkte) as summe FROM neu3 GROUP BY idname
ORDER by summe DESC;[/SQL]
Weg 2 den ich momentan noch versuche!
Dabei erzeuge ich als erstes eine neue Datenbank wo ich schon mal einige Datensätze eliminiere.
[SQL]
DROP TABLE IF EXISTS `lokal`.`neu` ;
CREATE TABLE `lokal`.`neu` (
`id` int( 3 ) NOT NULL AUTO_INCREMENT ,
`idname` int( 3 ) NOT NULL ,
`vorname` varchar( 15 ) COLLATE latin1_german1_ci NOT NULL ,
`name` varchar( 15 ) COLLATE latin1_german1_ci NOT NULL ,
`ort` varchar( 15 ) COLLATE latin1_german1_ci NOT NULL ,
`datum` date NOT NULL ,
`punkte` int( 3 ) NOT NULL ,
PRIMARY KEY ( `id` ) ,
KEY `idname` ( `idname` )
) ENGINE = MYISAM DEFAULT CHARSET = latin1 COLLATE =
latin1_german1_ci AUTO_INCREMENT =247;
INSERT INTO `lokal`.`neu`
SELECT *
FROM `lokal`.`weltrang`
WHERE now( ) < date_add( datum, INTERVAL 1 year )
ORDER BY punkte DESC;
[/SQL]
Hier hole ich mir die Maximalwerte und speichere sie in einer Datenbank die bereits angelegt ist. Kann ich im obrigen Beispiel auch so machen. Die Datenbank ist auch noch nicht mit den vorhanden Redunanzen bereinigt, weil ich mich noch im Experimentierstadium bewege.
[SQL]
TRUNCATE TABLE `neu2`;
INSERT INTO `lokal`.`neu2`
SELECT *, MAX(punkte) as max
FROM `lokal`.`neu` GROUP BY idname;
[/SQL]
Hier an der Stelle hake ich momentan und wollte so weitermachen das ich die Maximalwerte aus der ersten Datenbank lösche und dann die letzte Abfrage noch mal wieder hole mit dem Maximalwert dann noch mal die Maximalwerte löschen und noch einmal die Maximalwerte in die letzte Datenbank importiere.
Und dann kann ich die Summe der Maximalwerte pro idname ziehen.
@ Andre ist es jetzt ein bisschen klarer?
@ Michael Ich weiss jetzt nicht ganz genau ob ich mit einer meiner beiden Lösungen einen von dir angedachten Weg beschritten habe. Da ich mich wirklich nicht besonders auskenne mit MYSQL wäre konstruktive Kritik mir sehr angenehm. Vor 2 Wochen habe ich noch nicht mal ansatzweise die Syntax gesehen :wink:
Mir gefallen beide Wege nicht so richtig. Der erste aus dem Grunde das es einfach zuviele Abfragen sind und noch mehr werden könnten falls die Anzahl für idname zunimmt. Dem anderem stehe ich ein bisschen skeptisch gegenüber ob es sinnvoll ist so zu arbeiten.
Andererseits das was ich mache müsste in einem Forum zur Tagesordnung gehören.
Gruß
Jörg
Zufällige Umleitung zu der Startseite einer meiner Domains
Meine ungewöhnlichen Tools
Das Seitenreport Forum hat aktuell 5276 Themen und 36111 Beiträge.
Insgesamt sind 48364 Mitglieder registriert.
Beitrag erstellen
EinloggenKostenlos registrieren