Merubah Kolom Menjadi Row Dalam Oracle

Assalamu'alaikum Wr. Wb.

Hai sahabat, hari ini saya akan mencoba share tentang bagaimana merubah kolom menjadi row dalam oracle. Kebetulan tadi pagi saya menemukan permasalahan tersebut dan alhamdullilah berhasil diselesaikan dengan baik :D.

Disini saya menggunakan fungsi decode dalam oracle.

Oke kita mulai.

case pertama saya mempunyai sebuah query

select c.xar_uid as bm_id,
       e.xar_uid as saldir_id,
       g.gm_id as findir_id,
       i.gm_id as presdir_id
from T_PCSR2_DESCRIPTION a
         left join SYS_ROLES b on a.ACCOUNT_MANAGER = b.xar_uid
         left join SYS_ROLES c on b.SUPERVISOR_ID = c.xar_uid
         left join T_DIVISI  d on b.DIV_ID = d.div_id
         left join SYS_ROLES e on d.GM_ID = e.xar_uid
         left join SYS_ROLES f on a.PROJECT_MANAGER = f.xar_uid,
     T_DIVISI g
         left join SYS_ROLES h on g.gm_id = h.xar_uid,
     T_DIVISI i
         left join SYS_ROLES j  on i.gm_id = j.xar_uid
where g.div_id = 5 and i.div_id = 4

yang menampilkan data seperti berikut :

dan untuk merubah kolom menjadi row maka saya menggunakan query sebagai berikut

select approver_id from(
            select decode(r,1, bm_id,2,saldir_id,3,findir_id,4,presdir_id) as approver_id
            from (
                            select c.xar_uid as bm_id,
                                   e.xar_uid as saldir_id,
                                   g.gm_id as findir_id,
                                   i.gm_id as presdir_id
                            from T_PCSR2_DESCRIPTION a
                                     left join SYS_ROLES b on a.ACCOUNT_MANAGER = b.xar_uid
                                     left join SYS_ROLES c on b.SUPERVISOR_ID = c.xar_uid
                                     left join T_DIVISI  d on b.DIV_ID = d.div_id
                                     left join SYS_ROLES e on d.GM_ID = e.xar_uid
                                     left join SYS_ROLES f on a.PROJECT_MANAGER = f.xar_uid,
                                 T_DIVISI g
                                     left join SYS_ROLES h on g.gm_id = h.xar_uid,
                                 T_DIVISI i
                                     left join SYS_ROLES j  on i.gm_id = j.xar_uid
                            where g.div_id = 5 and i.div_id = 4 and a.id = 583
                   ) a,(select rownum r from all_objects where rownum <= 4)
       )

 Semoga bermanfaat :D

Wassalamu'alaikum Wr WB
      
      
      
       

SHARE ON:

Hello guys, I'm Tien Tran, a freelance web designer and Wordpress nerd. Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae.

    Blogger Comment

0 komentar:

Posting Komentar