Home • ECDL • Algoritmi • Java • Basi di dati • Seconda prova • Eccetera • Cerca nel sito

Associazione

Precedente
SUPERIORE
Successiva
Tratto da: A. Lorenzi, D. Rossi LE BASI DI DATI - IL LINGUAGGIO SQL - ATLAS

Schema relazionale esteso

Query

Tutto 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;

Associazione - ApPuNtIdIuNiNfOrMaTiCo

Home • ECDL • Algoritmi • Java • Basi di dati • Seconda prova • Eccetera • Cerca nel sito

Precedente
SUPERIORE
Successiva