Untuk hierarchical query, mungkin bisa pake LEVEL pada klausa "Start With Connect By" untuk mendapatkan generasi dan "Sys_Connect_By_Path" untuk mendapatkan nama dari manager tanpa harus melakukan self join.
select mgr_id, substr(sys_connect_by_path(nama,'/'),INSTR(sys_connect_by_path(nama,'/'),substr(nama,1,1))-(length(nama)+1),length(nama)) manager, empno, nama, LEVEL-1 Generasi from pegawai where mgr_id <> '00000001' start with mgr_id = '00000001' connect by prior empno=mgr_id maaf klo query nya agak berantakan... dari sisi cost querynya sepertinya lebih bagus daripada melakukan self join ... tp coba dicek saja lagi hehehe.. semoga bisa membantu... CMIIW Regards Ario --- Pada Rab, 7/7/10, Abe <[email protected]> menulis: Dari: Abe <[email protected]> Judul: [indo-oracle] tanya Hierarchical Query Kepada: [email protected] Tanggal: Rabu, 7 Juli, 2010, 3:59 PM Dear All, saya mau tanya ttg query nich. saya punya data empno nama mgr_id ------------------------------- 00829204 ZIKI 00664797 00664797 Yudi 00006256 00006256 Meri 00655146 00655146 Lina 00402241 00666661 Budi 00664797 00402241 Wira 00000001 saya ingin query yg bisa menghasilkan seperti empno nama GetFrom GetName Generasi 00402241 WIRA 00655146 LINA 1 00655146 LINA 00006256 MERI 2 00006256 MeRISA 00664797 YUDI 3 00664797 YUDI 00829204 ZIKI 4 00664797 YUDI 00666661 BUDI 4 - Lina adalah Generasi 1 dari Wira - Meri adalah Generasi 1 dari Lina dan Generasi 2 dari Wira - Yudi adalah Generasi 1 dari Meri, Generasi 2 dari Lina dan Generasi 3 dari Wira - Ziki adalah Generasi 1 dari Yudi, Generasi 2 dari Meri, Generasi 3 dari Lina dan Generasi 4 dari Wira mohon dong para pakar oracle untuk memecahkan masalah saya. terimakasih. [Non-text portions of this message have been removed]

