SQL: esercizio 1 sulle query

Paul David Bond

Dato lo schema relazionale costituito dalle seguenti tabelle (le chiavi primarie sono sottolineate)

PERSONE(idpersona, CodFisc, Nome, Cognome, Indirizzo, Citta)

MULTE(IdMulta, idpersona, DataMulta, Somma)

Popolare il database con i seguenti dati:

Persone
id_persona CodFisc Nome Cognome Indirizzo Citta
1 BRGFNC68T18L736H Giovanni Capuano Via dei Vanga 63 Bolzano
2 ctrcfg57r19u584h Mario Rossi Via rossi 34 Bolzano
3 GHTERT87T2343J90 Rosa Gialla Via Domenicani 54 Bolzano
Multe
ID_multa Id_persona DataMulta Somma
1 1 19/12/2005 € 60,00
2 2 08/12/2005 € 56,00
3 1 08/12/2005 € 78,00
4 3 08/12/2016 € 100,00
5 3 07/12/2016 € 58,00
6 1 08/12/2004 € 48,00
7 2 15/01/2004 € 52,00
8 2 12/02/2004 € 48,00

Creare le seguenti query dandogli il nome query# con# il relativo punto di menù

  1. estrarre tutti i record della tabella persone
  2. estrarre tutti i record della tabella multe
  3. estrarre tutte le persone con la relativa multa
  4. estrarre la cifra totale delle multe prese dalle singole persone
  5. Calcolare il valore medio di tutte le multe comminate
  6. estrarre il nome delle persone che hanno preso delle multe nel 2005
  7. estrarre il nome delle persone che hanno preso delle multe nel 2016
  8. estrarre il nome delle persone che hanno preso delle multe nel 2014
  9. estrarre le multe solo del Sig. Capuano
  10. estrarre il nome delle persone che hanno preso una multa a dicembre del 2005
Questa voce è stata pubblicata in Senza categoria. Contrassegna il permalink.

2 risposte a SQL: esercizio 1 sulle query

  1. Francesco Bragadin scrive:

    Il punto 4 è indubbiamente complesso: la soluzione è:

    SELECT b.cognome, SUM(a.somma)
    FROM multe AS A, persone AS B
    WHERE a.idpersona=b.idpersona
    GROUP BY a.idpersona, b.cognome

  2. Francesco Bragadin scrive:

    il punto 6, 7 e 8 segue il seguente criterio

    SELECT
    a.nome,
    a.cognome,
    b.datamulta
    FROM
    persone AS a,
    multe AS b
    WHERE
    a.idpersona=b.idpersona
    AND
    b.datamulta between #01/01/2005# and #31/12/2005#

Rispondi a Francesco Bragadin Annulla risposta

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *