Sistem Management Basis Data – Penggunaan Datediff

Itu tu pas semalem mengais2 file tugas2 jadoel, ketemu lah tugas dari dosen SMBD Pak Arif Imam Suroso. Yaitu untuk membuat suatu database yang bisa menjawab 33 pertanyaan dari Pak dosen. Dimana kami mahasiswanya dibebaskan untuk membuat content database tersebut. Pertanyaan2nya adalah sbb (saya ambil bbrp pertanyaan yg berhubungan dengan tanggal bulan dan tahun):

17. Tampilkan semua karyawan yang lahir sesudah tahun 1975

19. Tampilkan semua karyawan yang lahir antara bulan Maret s/d Mei dan lahir sebelum tahun 1975

20. Tampilkan semua karyawan yang lahir pada tanggal setelah 26 dan pada bulan Maret, Juli atau Nopember sebelum tahun 1975

21. Tampilkan semua karyawan yang saat ini baru berumur kurang dari 25 tahun

22. Tampilkan semua karyawan yang berjenis kelamin wanita, status belum menikah, dan umurnya antara 20-30 tahun 

Pertama saya membuat database fiktif sederhana (nama tabelnya pun campur aduk antara Inggris dengan Indonesia, maklum bikinnya kejar tayang), lalu tentukan relationshipnya kemudian utk isi records mengarang indah deh tp nomor induk dibikinnya ngga ngasal loh, ada polanya, digit 1-2 menunjukkan kode tahun masuk (misal 20 utk tahun 2001-2005), digit ke 3-4 itu menunjukan kode section (misal 70 untuk customer care) dan 4 digit terakhir no ID si pegawai, yah begono deh, eik kan cuma ngepas2in sama soal dari si Bapak dosen.

Berikut detailnya: 

Relationship relationship 

tabel Pegawai table employee 

table profile table profile 

table jabatan table jabatan 

tabel gaji pegawai tabel gaji pegawai  

17. Tampilkan semua karyawan yang lahir sesudah tahun 1975

SELECT A.No_Induk, A.Nama, B.Tanggal_Lahir FROM [Table Employee] AS A INNER JOIN [Tabel Profile] AS B ON A.No_Induk = B.No_Induk WHERE ((YEAR(B.Tanggal_Lahir)>1975))ORDER BY B.Tanggal_Lahir;

Query17  

19. Tampilkan semua karyawan yang lahir antara bulan Maret s/d Mei dan lahir sebelum tahun 1975

SELECT B.No_Induk, A.Nama, B.Tanggal_Lahir FROM [Table Employee] AS A INNER JOIN [Tabel Profile] AS B ON A.No_Induk=B.No_Induk WHERE ((YEAR(B.Tanggal_Lahir)<1965 And ((Month(B.Tanggal_Lahir)) Between 3 And 5)))ORDER BY B.No_Induk; 

Query19  

20. Tampilkan semua karyawan yang lahir pada tanggal setelah 26 dan pada bulan Maret, Juli atau Nopember sebelum tahun 1975

SELECT A.No_Induk, A.Nama, B.Tanggal_Lahir FROM [Table Employee] AS A INNER JOIN [Tabel Profile] AS B ON A.No_Induk=B.No_Induk WHERE ((Day(B.Tanggal_Lahir)>26) And ((Month(B.Tanggal_Lahir)) In (3,7,11))) And ((year(B.Tanggal_Lahir))<1975)ORDER BY A.No_Induk;

 Query20  

21. Tampilkan semua karyawan yang saat ini baru berumur kurang dari 25 tahun SELECT A.No_Induk, A.Nama, B.Tanggal_Lahir FROM [Table Employee] AS A INNER JOIN [Tabel Profile] AS B ON A.No_Induk=B.No_Induk WHERE (((DateDiff(“y”,B.Tanggal_Lahir,Now())/365)<25));

 Query21  

22. Tampilkan semua karyawan yang berjenis kelamin wanita, status belum menikah, dan umurnya antara 20-30 tahun

SELECT A.No_Induk, A.Nama, B.Jenis_Kelamin, B.[Status Perkawinan], B.Tanggal_Lahir FROM [Table Employee] AS A INNER JOIN [Tabel Profile] AS B ON A.No_Induk=B.No_Induk WHERE (((B.Jenis_Kelamin)=”wanita”) And ((B.[Status Perkawinan])=”s”) And ((DateDiff(“y”,B.Tanggal_Lahir,Now())/365) Between 20 And 30))ORDER BY A.No_Induk, A.Nama;

 Query22    Simpel ya? simpel kaaan?? simpel dong!!! hohoho.

4 Comments

  1. Halah…lu nulis apa si nyonk??? ga ngerti gw..!!

  2. Walo ngga ngerti, tp nama lu ada di sono noh (query 17, 21 & 22), caileee seneng khaaan???

  3. keren..belajar dimana neng?

  4. Wkt di stanchart sempet bikin report yg kaya beginian tp pake SQL Server. Dikampus juga pernah juga diajarin si wkt belajar 4GL (bahasa pemrograman generasi ke-4)


Comments RSS TrackBack Identifier URI

Leave a comment