|
Tratto da: AA. VV. SQL, il linguaggio per le
basi di dati - HOEPLI
Schema relazionalePaternità(cognome_padre, nome_padre, cognome_figlio, nome_figlio) Maternità(cognome_madre, nome_madre, cognome_figlio, nome_figlio) QueryTutte le coppie figlio-genitore SELECT nome_figlio, cognome_figlio, nome_madre, cognome_madre FROM Maternità UNION SELECT nome_figlio, cognome_figlio, nome_padre, cognome_padre FROM Paternità; Le coppie figlio-genitore con etichette appropriate SELECT nome_figlio AS Nome, cognome_figlio AS Cognome, nome_madre AS [Nome genitore], cognome_madre AS [Cognome genitore] FROM Maternità UNION SELECT nome_figlio, cognome_figlio, nome_padre, cognome_padre FROM Paternità; I figli (senza ripetizioni) SELECT nome_figlio, cognome_figlio FROM Maternità UNION SELECT nome_figlio, cognome_figlio FROM Paternità; I cognomi di tutti, ordinati SELECT cognome_padre as COGNOME FROM Paternità UNION SELECT cognome_figlio FROM Paternità UNION SELECT cognome_madre FROM Maternità UNION SELECT cognome_figlio FROM Maternità ORDER BY COGNOME; I genitori con numero di figli SELECT cognome_madre AS [Cognome genitore], nome_madre AS [Nome genitore], COUNT(*) AS [Numero figli] FROM Maternità GROUP BY cognome_madre, nome_madre UNION SELECT cognome_padre, nome_padre, COUNT(*) FROM Paternità GROUP BY cognome_padre, nome_padre; I genitori con numero di figli, ordinati per cognome e nome SELECT cognome_madre AS [Cognome genitore], nome_madre AS [Nome genitore], COUNT(*) AS [Numero figli] FROM Maternità GROUP BY cognome_madre, nome_madre UNION SELECT cognome_padre, nome_padre, COUNT(*) FROM Paternità GROUP BY cognome_padre, nome_padre ORDER BY [Cognome genitore], [Nome genitore]; I genitori con almeno 2 figli SELECT cognome_madre AS [Cognome genitore], nome_madre AS [Nome genitore], COUNT(*) AS [Numero figli] FROM Maternità GROUP BY cognome_madre, nome_madre HAVING COUNT(*)>1 UNION SELECT cognome_padre, nome_padre, COUNT(*) FROM Paternità GROUP BY cognome_padre, nome_padre HAVING COUNT(*)>1; I padri con più figli della signora... SELECT cognome_padre, nome_padre, count(*) AS [Numero figli] FROM Paternità GROUP BY cognome_padre, nome_padre HAVING COUNT(*)>(SELECT COUNT(*) FROM Maternità WHERE cognome_madre=[Cognome madre?] AND nome_madre=[Nome madre?]); La nonna paterna di... SELECT cognome_madre AS [Cognome nonna paterna], nome_madre AS [Nome nonna paterna] FROM Maternità WHERE cognome_figlio=(SELECT cognome_padre FROM Paternità WHERE cognome_figlio="Cognome" AND nome_figlio="Nome") nome_figlio=(SELECT nome_padre FROM Paternità WHERE cognome_figlio="Cognome" AND nome_figlio="Nome"); |
|