USE OsobaVztah --select * from Osoba drop table T1 SELECT generacia=1, r.id predok, d.id potomok INTO T1 FROM Osoba d JOIN Osoba r ON r.id IN (d.matka, d.otec) select * from T1 drop table T2 SELECT generacia=2, r.predok, d.id potomok INTO T2 FROM Osoba d JOIN T1 r ON r.potomok IN (d.matka, d.otec) select * from T2 drop table T3 SELECT generacia=3, r.predok, d.id potomok INTO T3 FROM Osoba d JOIN T2 r ON r.potomok IN (d.matka, d.otec) select * from T3 drop table T4 SELECT generacia=4, r.predok, d.id potomok INTO T4 FROM Osoba d JOIN T3 r ON r.potomok IN (d.matka, d.otec) select * from T4 SELECT * FROM T1 UNION ALL SELECT * FROM T2 UNION ALL SELECT * FROM T3 UNION ALL SELECT * FROM T4