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

Paternità, maternità

Precedente
SUPERIORE
Successiva
Tratto da: AA. VV. SQL, il linguaggio per le basi di dati - HOEPLI

Schema relazionale

Paternità(cognome_padre, nome_padre, cognome_figlio, nome_figlio)
Maternità(cognome_madre, nome_madre, cognome_figlio, nome_figlio)

Query

Tutte 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");

Paternità, maternità - ApPuNtIdIuNiNfOrMaTiCo

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

Precedente
SUPERIORE
Successiva