use OsobaVztah drop table T1 SELECT generacia=1, r.id predok, d.id potomok, -- cast(111 as varchar(100)) ces=convert(varchar(100),r.id)+' --> '+convert(varchar(100),d.id), cesta=r.meno+' '+r.priezvisko +' --> '+ d.meno+' '+d.priezvisko 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, ces=ces+' --> '+convert(varchar(100),d.id), cesta=r.cesta+' --> '+ d.meno+' '+d.priezvisko 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, ces=ces+' --> '+convert(varchar(100),d.id), cesta=r.cesta+' --> '+ d.meno+' '+d.priezvisko 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, ces=ces+' --> '+convert(varchar(100),d.id), cesta=r.cesta+' --> '+ d.meno+' '+d.priezvisko INTO T4 FROM Osoba d JOIN T3 r ON r.potomok IN (d.matka, d.otec) select * from T4