Ciao a tutti ragazzi
Sto cercando di svolgere questi temi d'esame, chiaramente non senza difficolt�.
Ma il tempo non � amico e avrei bisogno di una mano per la risoluzione di queste query.
DATO LO SCHEMA:
STUDENTE(Email, Nome, Cognome, AnnoImmatricolazione)
MAILING_LIST(EmailStudente, CodCorso)
CORSO(Codice, Nome, Anno)
ESERCIZIO 3) Scrivere in SQL la query che determina, tra tutti i corsi del terzo anno,
quello (o quelli, in caso di parit�) avente/i il maggior numero di iscritti. Restituire
codice e nome del corso/i in questione. [VINCOLO: Non � possibile usare l�operatore
di HAVING]
Io ho creato una vista ma non so se � corretta cos� com'�
e non saprei come ovviare al vincolo del "non uso" dell'having
C'� un altro modo per scriverla senza viste/having?
Create view anno3iscritti(codcorso,nIscritti)
as select codcorso, count(*)
from mailing list
group by codcorso
select codcorso
from anno3iscritti
having max(iscritti)> (select max(nIscritti)
from anno3iscritti)
_______________________________________________
ESERCIZIO c) Scrivere in SQL la query che determina email, nome e cognome degli
studenti iscritti ad ALMENO due corsi del primo anno.
[VINCOLO: Non � possibile usare l�operatore di COUNT].
anche qui il vincolo mi da parecchi problemi.
Io l'ho scritta cos� ma, ripeto, anche qui non saprei come muovermi col vincolo.
Select email, nome, cognome
from studente
where email in(select emailstudente
from mailing list ML, corso C
where ML.codcorso=C.codice
and C.anno='1'
group by emailstudente
having count(*)>=2
__________________________________________________ __
Help me please![]()