Summe in Auswertung
Fragezeichen
- php
0 Mike©0 dedlfix0 Mike©
Hallo Formu
Ich möchte folgendes machen:
Ich habe in einer Mysql-DB eine Tabelle erstellt, in welcher sämtliche Prüfungsnoten pro Schüler abgelegt sind (das Fach lassen wir mal weg).
Ich möchte nun eine Abfrage machen, bei der ich die Durchschnittsnote pro Schüler erhalte. Im weiteren sollte die Abfrage eine Rangliste wie folgt erstellen:
Hans 1,5
Ruth 2
Urs 2,6
etc.
Wie kriege ich das hin?
Danke für Eure Antwort!
Fragezeichen
Moin Fragezeichen,
Ich möchte nun eine Abfrage machen, bei der ich die Durchschnittsnote pro Schüler erhalte. Im weiteren sollte die Abfrage eine Rangliste wie folgt erstellen:
Hans 1,5
Ruth 2
Urs 2,6
etc.Wie kriege ich das hin?
haben alle Schüler die gleiche Anzahl Fächer ?
Wie hast du die Noten pro Schüler gespeichert ?
Zeig mal die Struktur der Tabele, und wenn's geht auch mit den Typen der Felder.
Du könntest die Summe der Noten pro Schüler mit sum() aufsummieren und durch die Anzahl der Fächer teilen.
regds
Mike©
Moin!
Du könntest die Summe der Noten pro Schüler mit sum() aufsummieren und durch die Anzahl der Fächer teilen.
Könnte man machen. Könnte man aber auch gleich avg() als Funktion nehmen. :)
Zeig mal die Struktur der Tabele, und wenn's geht auch mit den Typen der Felder.
Tabellebenstruktur:
ID; INT (14); auto; key
NAME; VARCHAR (20)
NOTE; INT (2) -> Kommastellen lassen wir weg
Die Einträge sind so:
ID NAME NOTE
1 Hans 1
2 Ruth 2
3 Hans 4
4 Hans 3
5 Ruth 2
etc.
Ich möchte nun eine Abfrage machen, bei der ich die Durchschnittsnote pro Schüler erhalte. Im weiteren sollte die Abfrage eine Rangliste wie folgt erstellen:
1. Hans 1,5
2. Ruth 2
etc.
Wie kriege ich die Abfrage hin UND wie kann ich mir das Erbebnis anzeigen lassen?
Hallo Fragezeichen
Tabellebenstruktur:
ID; INT (14); auto; key
NAME; VARCHAR (20)
NOTE; INT (2) -> Kommastellen lassen wir wegDie Einträge sind so:
ID NAME NOTE
1 Hans 1
2 Ruth 2
3 Hans 4
4 Hans 3
5 Ruth 2
etc.Ich möchte nun eine Abfrage machen, bei der ich die Durchschnittsnote pro Schüler erhalte. Im weiteren sollte die Abfrage eine Rangliste wie folgt erstellen:
- Hans 1,5
- Ruth 2
etc.Wie kriege ich die Abfrage hin UND wie kann ich mir das Erbebnis anzeigen lassen?
Folgende SQL-Abfrage würde zum Beispiel die Durchschnittsnoten liefern (für tbl_noten müsstest du deinen Tabellennamen einsetzen)
SELECT NAME, AVG(NOTE) as DURCHSCHNITT FROM tbl_noten GROUP BY NAME;
Du kriegst als Ergebnis quasi eine tabelle mit den beiden feldern NAME und durchschnitt, also etwa so:
NAME DURCHSCHNITT
Hans 2.333
Ruth 2
Ich werd mal ein kleines PHP-Skript schreiben, dass aus einer Beispieltabelle diese Daten rausholt. Wenn ich fertig bin, meld ich mich per mail und schick dir den PHP-Code
freundliche Grüße mbr
So: Mini Beispiel steht im Netz. (siehe link)
Ist wirklich nur das allernotwendigste.
Die Profis mögen mir eventuelle Ungenauigkeiten nachsehen
liebe Grüße
mbr
Wie kriege ich die Abfrage hin UND wie kann ich mir das Erbebnis anzeigen lassen?
Das müsste so gehen:
SELECT NAME
, AVG(NOTE
) AS Durchschnitt
FROM tabellenname
GROUP BY NAME
ORDER BY Durchschnitt
Du musst bestimmt auch noch eine Formatierfunktion für die Kommastellen einfügen.
Ich möchte nun eine Abfrage machen, bei der ich die Durchschnittsnote pro Schüler erhalte. Im weiteren sollte die Abfrage eine Rangliste wie folgt erstellen:
Da bieten sich die Aggregat-Funktionen zusammen mit GROUP BY an.
Für die Rangliste kannst du das Ergebnis einfach per ORDER BY sortieren.
Moin dedlfix
Da bieten sich die Aggregat-Funktionen zusammen mit GROUP BY an.
Aus diesem Grund fragte ich nach der Struktur:
Es könte sein das es so gespeichert ist:
Hans|1,2|1,5|3,5
oder so
Hans|1,2
Hans|1,5
Hans|3,5
je nachdem Bedarf es einer unterschiedlichen vorgehensweise ;-)
regds
Mike©