Visualizzazione risultati 1 fino 7 di 7

Discussione: [mysql] media voti

  1. #1
    Guest

    Predefinito [mysql] media voti

    Salve a tutti, ho un problema con una query in mysql.
    Inizio dicendo che sto studiando ad un istituto informatico, per esercitarmi ho creato un applicativo simile al registro elettronico, cioè i docenti possono inserire i voti relativi agli studenti nelle varie materie. Ora vorrei eseguire una query che calcola per ogni studente, la media dei voti in ogni materia. Solo che non riesco a creare la query funzionante.. Le tabelle che interessano sono queste:

    Tabella studenti
    Codice:
    matricola
    nome
    cognome
    Tabella materie
    Codice:
    idMateria
    descrizioneMateria
    Tabella voti
    Codice:
    studente (references studenti(matricola))
    materia (references materie(idMateria)))
    voto
    data
    ora
    Bene, ora che query posso usare per avere la media dei voti di ogni studente per ogni materia?
    Grazie in anticipo (:
    Ultima modifica di masitomato : 06-06-2012 alle ore 12.01.54 Motivo: Tag in più.

  2. #2
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Devi usare la GROUP BY raggruppando per studente e per materia e poi calcoli la media come SUM(voto) / COUNT(*)


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  3. #3
    Guest

    Predefinito

    Citazione Originalmente inviato da saitfainder Visualizza messaggio
    Devi usare la GROUP BY raggruppando per studente e per materia e poi calcoli la media come SUM(voto) / COUNT(*)
    ho fatto questa query:
    Codice:
    SELECT studenti.nome, studenti.cognome, voti.voto, materie.descrizioneMateria FROM studenti JOIN voti ON studenti.matricola = voti.studente JOIN materie ON voti.materia= materie.idMateria GROUP BY studenti.matricola
    solo che per ogni studente riporta solo il voto di una materia, a me servono tutti i voti di tutte le materie.. Dove sbaglio?

  4. #4
    Guest

    Predefinito

    Citazione Originalmente inviato da masitomato Visualizza messaggio
    ho fatto questa query:
    Codice:
    SELECT studenti.nome, studenti.cognome, voti.voto, materie.descrizioneMateria FROM studenti JOIN voti ON studenti.matricola = voti.studente JOIN materie ON voti.materia= materie.idMateria GROUP BY studenti.matricola
    solo che per ogni studente riporta solo il voto di una materia, a me servono tutti i voti di tutte le materie.. Dove sbaglio?
    Intendi tutte insieme? Cioè tipo la media complessiva di fine anno? Se sì, non ti basta togliere il JOIN con la tabella materie?

  5. #5
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Citazione Originalmente inviato da masitomato Visualizza messaggio
    solo che per ogni studente riporta solo il voto di una materia, a me servono tutti i voti di tutte le materie.. Dove sbaglio?
    Come ti ho detto:

    Devi usare la GROUP BY raggruppando per studente e per materia


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  6. #6
    Guest

    Predefinito

    Citazione Originalmente inviato da saitfainder Visualizza messaggio
    Come ti ho detto:
    Si ma devo eseguire due query diverse, o no?
    Come posso raggruppare per studente e per materia nella stessa query?

  7. #7
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Semplicemente così:

    Codice:
    SELECT studenti.nome, studenti.cognome, SUM(voti.voto), materie.descrizioneMateria
    FROM studenti JOIN voti ON studenti.matricola = voti.studente JOIN materie ON voti.materia= materie.idMateria
    GROUP BY studenti.matricola, materie.idMateria


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •