Feeds:
Posts
Comments

Archive for December, 2009

Number again in MySQL

Dear All,

Dah lama tak posting blog, ini postingan terakhir di tahun 2009, mudah – mudahan di tahun 2010 bisa lebih banyak memberikan informasi yang sedikit nyeleneh …

Lagi, kita berbicara masalah SQL yang tentunya di MySQL, karena saya berkutat di MySQL, kalo DB yang lain ??? hmm… boleh juga kali ya… cuma harus belajar lagi.

Nah, ada tuntutan dari gawean untuk memberikan penomoran kembali di laporan kapan karyawan itu masuk dan berapa orangย  … ? merasa tertantang dengan gawean tersebut, saya coba aplikasikan dan putar otak terus sampe mabok dan akhirnya ada juga hasilnya nih …

Pengen hasilnya adalah seperti gambar dibawah ini :

Setelah postingan lama untuk menomorkan data dari 1 ~ n dari data awal sampe akhir, tapi kalo sekarang itu berbeda.

Data yang sama baru dihitung penomoran nya, tapi kalau misalnya ada data 4 orang, pengen nya penomoran awal dari record nomor 2 dan seterusnya. Pemodelan penomoran itu adalah dari tanggal kemudian nomor urutnya. :mrgreen: nyeleneh kan ๐Ÿ˜†

Nah, setelah lihat gambar diatas, bagaimana query nya nih .. ๐Ÿ˜Ž … putar – puter otak … dah yang baca blog ini gak perlu putar otak lagi, tinggal ganti table dan field yang diinginkan, trus hasilnya sama dengan gambar diatas, kalo gak sama berarti ada salah di query tuh….

Nih query yang saya buat pake MySQL :

select distinctrow mb.hire_date,
       if (t.rowId <> 0, concat(day(mb.hire_date), '.', t.rowId),
       day(mb.hire_date)) as number
from m_biodata mb
inner join
(
   select c.hire_date,
          @row := if (@hd = c.hire_date, @row + 1, 0) as rowId,
         (@hd := if (c.hire_date is null, '', c.hire_date)) as hd
   from (select @row := 0, @hd := '') as rowInit, m_biodata c
   order by c.hire_date
) as t on mb.hire_date = t.hire_date
order by mb.hire_date, number

Nah, gimana ? mudah kan … :mrgreen:

Sampai jumpa lagi InsyaAlloh di tahun 2010 dengan materi yang nyeleneh – nyeleneh … ah … dasar aya-aya wae :mrgreen:

Salam DBA,
๐Ÿ˜Ž
Man’z

Read Full Post »