io avrei fatto diversamente... una vista e un'interrogazione...
CREATE VIEW StudentiDB (Matricola, NomeS, CognomeS)
SELECT Mat, Nome, Cognome
FROM Studente JOIN Esame ON Studente.Mat=Esame.MatStudente
JOIN Corso ON Esame.CodCorso=Corso.Cod
WHERE Corso.Nome='Basi di Dati'
AND Esame.Voto BETWEEN 18 AND 30 OR Esame.Voto='30 e lode'
------------------
SELECT COUNT (Matricola)
FROM StudentiDB JOIN Esame ON StudentiDB.Matricola=Esame.MatStudente
JOIN (Insegnamenti ON Esame.CodCorso=Insegnamenti.CodCorso)
JOIN (Insegnante ON Insegnamenti.MatProf=Insegnante.Mat)
WHERE Insegnante.Nome='Mario'
AND Insegnante.Cognome='Rossi'
Poi non sò correggetemi se sbaglio qualcosa e mi auto-criticherò e auto-correggerò