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
>
>