Query con operatori aggregati

di il
1 risposte

Query con operatori aggregati

Salve a tutti avrei questo problema:
ho queste tabelle:

DOCENTE (Cognome*, dipartimento)
DOCENZA (CognomeDocente*,CodiceCorso*)
CORSO (Codice*,Nome,crediti)

vorrei trovare il docente che eroga il maggior numero di corsi. ho provato a fare così:ma.....

Select d.cognome, sum(c.crediti) as SommaCrediti 
From docente as d, docenza as a, corso as c
where d.cognome= a.cognomeDocente and c.codice = a.codicecorso
group by d.cognome
having max (SommaCrediti)
qualcuno può aiutarmi GRAZIE

1 Risposte

  • Re: Query con operatori aggregati

    Ciao,

    se devi contare il numero di corsi effettuati:

    (PS ho aggiunto una colonna IdDocente ma è uguale)
    
    SELECT Cognome, COUNT(docenza.IdDocente) AS [Numero Docenze]
    FROM Docente, Docenza
    WHERE Docente.IdDocente = Docenza.IdDocente
    GROUP BY Cognome
    ORDER BY Count(Docenza.IdDocente) DESC
    
    se devi sommare il numero di crediti:
    
    SELECT Cognome, SUM(corso.Crediti) AS [Somma Crediti]
    FROM docente, corso, docenza
    WHERE docente.IdDocente = docenza.IdDocente AND docenza.IdCorso = corso.Codice
    GROUP BY Cognome
    ORDER BY SUM(corso.crediti) DESC
    
    se vuoi estrarre soltanto il prof che eroga il maggior numero di corsi:
    
    SELECT  TOP 1 SUM(corso.Crediti) AS [Somma Crediti], cognome
    FROM docente, corso, docenza
    WHERE docente.IdDocente = docenza.IdDocente AND docenza.IdCorso = corso.Codice
    GROUP BY cognome
    ORDER BY SUM(corso.crediti) DESC
    
Devi accedere o registrarti per scrivere nel forum
1 risposte