SQL> SELECT * FROM jabatan;
       NO NIP   ESELON_JABATAN NAMA_JABATAN         TMT        
D_AKHIR_JABATAN
--------- ----- -------------- -------------------- ---------- 
----------------
        1 11111              1 Staff Kepegawaian    01/01/1996 01/01/1998
        2 11111              1 Staff Cuti           01/01/1998 01/01/1999
        3 11111              2 Kepala Bagian        01/01/1999 01/01/2001
        4 11111              3 Kepala               01/01/2001 Saat ini

SQL> SELECT nip, eselon_jabatan,
  2  TRUNC(SUM(MONTHS_BETWEEN(
  3  DECODE(d_akhir_jabatan,'Saat ini',SYSDATE,
  4  TO_DATE(d_akhir_jabatan,'DD/MM/YYYY')),
  5  TO_DATE(tmt,'DD/MM/YYYY')))/12)||' tahun '||
  6  ROUND(MOD(SUM(MONTHS_BETWEEN(
  7  DECODE(d_akhir_jabatan,'Saat ini',SYSDATE,
  8  TO_DATE(d_akhir_jabatan,'DD/MM/YYYY')),
  9  TO_DATE(tmt,'DD/MM/YYYY'))),12))||' bulan'
 10  lama_jabatan
 11  FROM jabatan
 12  GROUP BY nip, eselon_jabatan;
NIP   ESELON_JABATAN LAMA_JABATAN
----- -------------- ------------------------------
11111              1 3 tahun 0 bulan
11111              2 2 tahun 0 bulan
11111              3 6 tahun 8 bulan

hth,
AH

sam_hidayat wrote:
>
> Dear All,
>
> Saya mempunyai kasus begini. Saya sedang membuat sebuah aplkasi
> SIMPEG, dimana salah satu datanya adalah data jabatan.
>
> Contohnya begini:
> NIP : 11111 Nama: Samsun, data jabatan tabel jabatan mempunyai data
> sebagai berikut:
>
> NO. NIP Eselon_Jabatan nama_jabatan TMT D_Akhir_Jabatan
> 1. 11111 1 Staff Kepegawaian 01/01/1996 01/01/1998
> 2. 11111 1 Staff Cuti 01/01/1998 01/01/1999
> 3. 11111 2 Kepala Bagian 01/01/1999 01/01/2001
> 4. 11111 3 Kepala 01/01/2001 Saat ini
>
> Yang ingin saya dapatkan adalah, lama pegawai tersebut menduduki
> Eselon_Jabatan 1,2,3 tersebut dalam tahun dan bulan (mis 1 tahun 3
> bulan).
>
> Mungkin adayng bisa bantu?
>
> Terima kasih
>
>  

Kirim email ke