(sullo schema utilizzato per la prova di autovalutazione) Scrivere l'interrogazione SQL che trova codice e titolo dei concerti che hanno almeno un pezzo di un compositore il cui cognome sia Rossi SELECT distinct c.codice, c.titolo FROM Compositori com join Pezzi Z on com.codice = Z.autore join programmazione pro on Z.codice = pro.pezzo join concerti c on c.codice = pro.concerto WHERE Com.cognome = 'Rossi' ----- Scrivere l'interrogazione SQL che trova codice e titolo dei concerti che hanno SOLO PEZZI di un compositore il cui cognome sia Rossi SELECT distinct c.codice, c.titolo FROM Compositori com join Pezzi Z on com.codice = Z.autore join programmazione pro on Z.codice = pro.pezzo join concerti c on c.codice = pro.concerto EXCEPT SELECT c.codice, c.titolo FROM Compositori com join Pezzi Z on com.codice = Z.autore join programmazione pro on Z.codice = pro.pezzo join concerti c on c.codice = pro.concerto WHERE Com.cognome != 'Rossi' ---- Scrivere l'interrogazione SQL che trova codice e titolo dei concerti che non hanno pezzi di un compositore il cui cognome sia Rossi SELECT distinct c.codice, c.titolo FROM concerti c EXCEPT SELECT distinct c.codice, c.titolo FROM Compositori com join Pezzi Z on com.codice = Z.autore join programmazione pro on Z.codice = pro.pezzo join concerti c on c.codice = pro.concerto WHERE Com.cognome = 'Rossi' SELECT distinct c.codice, c.titolo FROM concerti c WHERE c.codice NOT IN (SELECT distinct c.codice                                     FROM Compositori com join Pezzi Z on com.codice = Z.autore                                 join programmazione pro on Z.codice = pro.pezzo                                    join concerti c on c.codice = pro.concerto                                     WHERE Com.cognome = 'Rossi') ---- Scrivere l'interrogazione SQL che trova per ogni concerto, il numero di pezzi. Supporre che per tutti i concerti ci sia almeno un pezzo. Mostrare codice e titolo del concerto e durata totale. Ordinare per codice. SELECT C.codice, C.titolo, count(C.codice) as numero_pezzi from Concerti C JOIN Programmazione ON C.codice=concerto JOIN Pezzi P ON pezzo=P.codice GROUP by C.codice, C.titolo ORDER BY C.codice ---- Scrivere l'interrogazione SQL che trova i concerti che hanno almeno 3 pezzi, mostrando codice, titolo e numero di pezzi per ogni concerto. Supporre che per tutti i concerti ci sia almeno un pezzo. Mostrare codice e titolo del concerto e durata totale. Ordinare per codice. SELECT C.codice, C.titolo, count(C.codice) as numero_pezzi from Concerti C JOIN Programmazione ON C.codice=concerto JOIN Pezzi P ON pezzo=P.codice GROUP by C.codice, C.titolo HAVING count(C.codice) >2 ORDER BY C.codice --- Scrivere l'interrogazione SQL che trova codice, nome e cognome dei compositori che sono presenti in tutti i concerti. Ordinare per codice SELECT com.codice, count(distinct concerto) FROM Compositori com join Pezzi Z on com.codice = Z.autore join programmazione pro on Z.codice = pro.pezzo join concerti c on c.codice = pro.concerto Group by com.codice having count(distinct concerto) = (select count(*) from concerti)