Associazione internazionale

Il problema

Rel_associazione

Query

  1. I telefoni degli iscritti (IDiscritto, Cognome, Nome, Telefono)
  2. Gli iscritti
  3. Gli iscritti, con prima il nome poi il cognome
  4. Le nazioni
  5. Le nazioni con le lingue parlate (aggiungi il campo lingua)
  6. Le nazioni con lingua specificata
  7. Gli iscritti con un certo cognome
  8. Gli iscritti con un certo nome
  9. Gli iscritti con un certo cognome e nome
  10. Gli iscritti con un certo ruolo
  11. Le nazioni con lingua spagnolo
  12. Le nazioni con lingua spagnolo o portoghese
  13. Gli iscritti con telefono e nazione
  14. Tutto sugli iscritti
    SELECT   Cognome, Nome, Telefono, Email, Eccetera, Ruolo, Nazione
    FROM     (RUOLI INNER JOIN ISCRITTI ON RUOLI.IDruolo = ISCRITTI.HaRuolo)
              INNER JOIN NAZIONI  ON ISCRITTI.HaNazionalità = NAZIONI.IDnazione
    ORDER BY Cognome, Nome, Nazione
  15. Quanto ha versato un iscritto
    SELECT Sum(Importo) AS [Ha versato]
    FROM   VERSAMENTI
    WHERE  FattoDa = [Codice iscritto?]
  16. 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
  17. Quanti iscritti per ogni nazione
    SELECT   Nazione, Count(*) AS Quanti
    FROM     NAZIONI INNER JOIN ISCRITTI ON NAZIONI.IDnazione = ISCRITTI.HaNazionalità
    GROUP BY Nazione
    ORDER BY Nazione
  18. Quanti iscritti 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
  19. 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