-- ============================================================================
-- WWW:  http://www.dis.uniroma1.it/~calvanese/didattica/02-03-basididati/
--         esercitazioni/eser-2002-10-10/soluzioni/punto-5-sol.sql
-- ============================================================================
-- Prima esercitazione di laboratorio
-- Soluzione dell'esercizio 5
-- ============================================================================


--1) Trovare nome e reddito dei genitori di Ezechiele

select Genitore, Reddito
from PERSONE, GENITORI
where Figlio = 'Ezechiele' and
      Genitore = Nome;

--2) Trovare i Nonni di Ezechiele

select N.Genitore as Nonno_Di_Ezechiele
from GENITORI P, GENITORI N
where P.Figlio = 'Ezechiele' and N.Figlio = P.Genitore;


--3) Trovare i figli (in comune) di Franco e Maria 

select GP.figlio
from GENITORI GP, GENITORI GM
where GP.Figlio = GM.Figlio and
      GP.Genitore = 'Franco' and
      GM.Genitore = 'Maria';

--4)Trovare i Nonni di Aldo e di Andrea

select distinct N.Genitore as Nonno
from GENITORI P, GENITORI N
where (P.Figlio = 'Aldo' or P.Figlio = 'Andrea') and N.Figlio = P.Genitore;


--5) Trovare la relazione che mostra le coppie di fratelli
--   (due persone sono fratelli se hanno un genitore in comune)

select distinct G1.Figlio as Nome, G2.Figlio as Nome
from GENITORI G1, GENITORI G2
where G1.Genitore = G2.Genitore and G1.Figlio > G2.Figlio;

--6) Trovare i fratelli di Maria

select distinct G2.Figlio as Fratello_di_Maria
from GENITORI G1, GENITORI G2
where G1.Genitore = G2.Genitore and G1.Figlio = 'Maria' and
      G1.Figlio <> G2.Figlio;

--7) Trovare la relazione che mostra le coppie fratello-sorella

select distinct G1.Figlio as Fratello, G2.Figlio as Sorella
from GENITORI G1, GENITORI G2, PERSONE F, PERSONE S
where G1.Genitore = G2.Genitore and
      G1.Figlio = F.nome and F.sesso = 'M' and
      G2.Figlio = S.nome and S.sesso = 'F';
