|
Tratto da: A. Lorenzi, D. Rossi LE BASI DI DATI - IL LINGUAGGIO SQL - ATLAS Schema relazionale estesoQueryTutto sugli iscritti SELECT Cognome, Nome, Telefono, Email, Eccetera, Ruolo, Nazione FROM RUOLI INNER JOIN (NAZIONI INNER JOIN ISCRITTI ON (NAZIONI.IDnazione = ISCRITTI.HaNazionalità)) ON (RUOLI.IDruolo = ISCRITTI.HaRuolo) ORDER BY Cognome, Nome, Nazione; Quanto ha versato un iscritto SELECT Sum(Importo) AS [Ha versato] FROM VERSAMENTI WHERE (FattoDa = [Codice iscritto?]); Graduatoria degli iscritti per totale dei versamenti SELECT FattoDa AS Iscritto, Sum(Importo) AS [Ha versato] FROM VERSAMENTI GROUP BY FattoDa ORDER BY Sum(Importo) DESC; Quanti per ogni nazione SELECT Nazione, Count(*) AS Quanti FROM NAZIONI INNER JOIN ISCRITTI ON (NAZIONI.IDnazione = ISCRITTI.HaNazionalità) GROUP BY Nazione ORDER BY Nazione; Quanti per ogni ruolo SELECT Ruolo, Count(*) AS Quanti FROM RUOLI INNER JOIN ISCRITTI ON (RUOLI.IDruolo = ISCRITTI.HaRuolo) GROUP BY Ruolo ORDER BY Count(*) DESC; I dati degli iscritti (compreso il totale dei versamenti) SELECT Cognome, Nome, ..., (select sum(importo) from VERSAMENTI where (VERSAMENTI.FattoDa = ISCRITTI.IDiscritto)) AS [Ha versato] FROM ISCRITTI ORDER BY Cognome, Nome; |
|