This is basically the test code :
Let me know if this is correct according to your logic. Though it isn't printing Jesson 5
TYPES : BEGIN OF ty_source,
emp TYPE char40,
sup TYPE char40,
END OF ty_source,
BEGIN OF ty_target,
emp TYPE char40,
reportee TYPE i,
END OF ty_target,
BEGIN OF ty_name,
name TYPE char40,
END OF ty_name .
DATA : lt_source TYPE TABLE OF ty_source,
wa_source TYPE ty_source,
wa_source2 TYPE ty_source,
emp_temp TYPE TABLE OF ty_name,
wa_temp TYPE ty_name,
lt_target TYPE TABLE OF ty_target,
wa_target TYPE ty_target,
lv_count TYPE i,
l1 TYPE i.
CLEAR : wa_source.
wa_source-emp = 'Devi'.
wa_source-sup = 'Vidya'.
APPEND wa_source to lt_source.
CLEAR : wa_source.
wa_source-emp = 'Yuktesh'.
wa_source-sup = 'Devi'.
APPEND wa_source to lt_source.
CLEAR : wa_source.
wa_source-emp = 'Vidya'.
wa_source-sup = 'Jesson'.
APPEND wa_source to lt_source.
CLEAR : wa_source.
wa_source-emp = 'Ramya'.
wa_source-sup = 'Vidya'.
APPEND wa_source to lt_source.
CLEAR : wa_source.
wa_source-emp = 'Anu'.
wa_source-sup = 'Vidya'.
APPEND wa_source to lt_source.
CLEAR : wa_source.
loop at lt_source INTO wa_source.
append wa_source-emp to emp_temp. "Just psuedo code, u need to write proper sytax here
CLEAR wa_temp.
Loop at emp_temp INTO wa_temp.
loop at lt_source INTO wa_source2 where sup = wa_temp-name.
lv_count = lv_count + 1.
append wa_source2-emp to emp_temp.
endloop.
endloop.
Write : / wa_source-emp, lv_count.
clear : emp_temp, lv_count.
endloop.