Assalamu'alaikum Warahmatullahi Wabarakatuh
Salam jumpa dengan teman-teman semua, lama saya fakum di blog ini karena segudang kesibukan saya (alasan saja tuh). Pada postingan saya kali saya mau share tentang bagaimana menampilkan umur seseorang dari kolom BirthDate dan mencoba menggabungkan 3 buah kolom menjadi satu.
Kasus ini saya alami ketika ada seorang teman menanyakan bisa atau tidak dan jika bisa gimana sih caranya. Oke langsung saja saya disini menggunakan database SQL Northwind, saya ambil data dari tabel Employees, struktur tabelnya seperti berikut :
I . Kasus Pertama
Kasus pertama adalah menggabungkan 3 buah kolom yaitu TitleOfCourtesy, FirstName dan LastName. Berikut Query yang sudah saya buatkan :
SELECT Fullname=(((SELECT CONVERT(nvarchar, TitleOfCourtesy + ' ' + FirstName + ' ' + LastName)))) FROM Employees
Jadi dari ketiga kolom tersebut saya konvert dulu menjadi satu dengan nama kolom nantinya akan menjadi kolom Fullname, yang sebetulnya secara fisik kolom Fullname tidak ada. Mari kita execute query diatas, seharusnya keluarannya akan seperti berikut.
Akan berbeda ketika kita lakukan query dengan perintah berikut :
SELECT TitleOfCourtesy, Firstname, LastName FROM Employees
Maka hasilnya akan seperti berikut :
Oke, terlihat jelas bukan perbedaannya? Ya, pada gambar yang pertama ketika perintah di Execute 3 kolom menjadi satu, tapi pada gambar kedua 3 kolom tampil terpisah.
II. Kasus Kedua
Pada kasus kedua adalah bagaimana caranya mengetahui berapa usia karyawan masing-masing, sedangkan pada struktur tabelnya kita hanya diberikan data tanggal, bulan, tahun lahirnya karyawan dan tidak ada kolom usia karyawan. Jadi bagaimana ini? Oke mari kita buat Query nya...
SELECT FirstName, YEAR(CURRENT_TIMESTAMP)-YEAR(BirthDate)- CASE WHEN
(MONTH(BirthDate)*100+DAY(BirthDate))>(MONTH(CURRENT_TIMESTAMP)*100+DAY(CURRENT_TIMESTAMP))
THEN 1 ELSE 0 END AS Age
FROM Employees
Saya membuat Query diatas dengan mengambil 2 kolom dari tabel Employees, kolom apa itu? Ya, kolom FirstName dan BirthDate. Mari kita lihat Query tersebut ketika di Execute,
Mari saya jelaskan sedikit soal logika Query nya ya, jadi begini hlo ceritanya kita cari dulu hasil dari tahun sekarang-tahun lahir. Kalau udah ketemu hasilnya, hasil itu kita kurangi 1 (satu) jika (bulan lahir kali 100 ditambah tanggal lahir) lebih besar dari (bulan sekarang kali 100 ditambah tanggal hari ini). Jika tidak demikian maka hasil perhitungan tahun tersebut tidak perlu dikurangi 1. Udah dulu ya....capek ngetiknya, hehehe
Wassalamu'alaikum.....
Salam jumpa dengan teman-teman semua, lama saya fakum di blog ini karena segudang kesibukan saya (alasan saja tuh). Pada postingan saya kali saya mau share tentang bagaimana menampilkan umur seseorang dari kolom BirthDate dan mencoba menggabungkan 3 buah kolom menjadi satu.
Kasus ini saya alami ketika ada seorang teman menanyakan bisa atau tidak dan jika bisa gimana sih caranya. Oke langsung saja saya disini menggunakan database SQL Northwind, saya ambil data dari tabel Employees, struktur tabelnya seperti berikut :
I . Kasus Pertama
Kasus pertama adalah menggabungkan 3 buah kolom yaitu TitleOfCourtesy, FirstName dan LastName. Berikut Query yang sudah saya buatkan :
SELECT Fullname=(((SELECT CONVERT(nvarchar, TitleOfCourtesy + ' ' + FirstName + ' ' + LastName)))) FROM Employees
Jadi dari ketiga kolom tersebut saya konvert dulu menjadi satu dengan nama kolom nantinya akan menjadi kolom Fullname, yang sebetulnya secara fisik kolom Fullname tidak ada. Mari kita execute query diatas, seharusnya keluarannya akan seperti berikut.
Akan berbeda ketika kita lakukan query dengan perintah berikut :
SELECT TitleOfCourtesy, Firstname, LastName FROM Employees
Maka hasilnya akan seperti berikut :
Oke, terlihat jelas bukan perbedaannya? Ya, pada gambar yang pertama ketika perintah di Execute 3 kolom menjadi satu, tapi pada gambar kedua 3 kolom tampil terpisah.
II. Kasus Kedua
Pada kasus kedua adalah bagaimana caranya mengetahui berapa usia karyawan masing-masing, sedangkan pada struktur tabelnya kita hanya diberikan data tanggal, bulan, tahun lahirnya karyawan dan tidak ada kolom usia karyawan. Jadi bagaimana ini? Oke mari kita buat Query nya...
SELECT FirstName, YEAR(CURRENT_TIMESTAMP)-YEAR(BirthDate)- CASE WHEN
(MONTH(BirthDate)*100+DAY(BirthDate))>(MONTH(CURRENT_TIMESTAMP)*100+DAY(CURRENT_TIMESTAMP))
THEN 1 ELSE 0 END AS Age
FROM Employees
Saya membuat Query diatas dengan mengambil 2 kolom dari tabel Employees, kolom apa itu? Ya, kolom FirstName dan BirthDate. Mari kita lihat Query tersebut ketika di Execute,
Mari saya jelaskan sedikit soal logika Query nya ya, jadi begini hlo ceritanya kita cari dulu hasil dari tahun sekarang-tahun lahir. Kalau udah ketemu hasilnya, hasil itu kita kurangi 1 (satu) jika (bulan lahir kali 100 ditambah tanggal lahir) lebih besar dari (bulan sekarang kali 100 ditambah tanggal hari ini). Jika tidak demikian maka hasil perhitungan tahun tersebut tidak perlu dikurangi 1. Udah dulu ya....capek ngetiknya, hehehe
Wassalamu'alaikum.....
Comments
Post a Comment
Komentar spam, menyertakan link aktif dan alamat blog tidak akan muncul. Tidak semua pertanyaan sempat atau bisa dijawab. Thanks for visiting and the comment :)