Minggu, 10 Februari 2013

Membuat Nomor Urut dengan MySQL, Nomor Ranking dengan Bahasa SQL.

Kadang kita perlu memberi nomor rangking pada suatu data hasil query dari database langsung pada data hasil query tersebut. Misal pada pembuatan report yang membutuhkan query sekali jadi misal pada Crystal Report dll.

Akhirnya penulis temukan yaitu dengan perintah berikut :

SET @ranking=0; 
SELECT @ranking:=@ranking+1 AS ranking, nip, nama,
tunjangan from dokter order by tunjangan desc;

Perintah tersebut akan menghasilkan keluaran seperti di bawah ini :

+---------+-------+------------+-----------+
| ranking | nip   | nama       | tunjangan |
+---------+-------+------------+-----------+
|       1 | 345   | Dr. Aline  |  23000000 |
|       2 | 111   | Dr. Andi   |   2000000 |
|       3 | 222   | Dr. Dewi   |   1500000 |
|       4 | 333   | Dr. Doni   |   1000000 |
|       5 | 444   | Dr. Donita |   1000000 |
+---------+-------+------------+-----------+

Ketika dicoba di bahasa pemrograman PHP - MySQL dengan kode program di bawah ini, ternyata dapat berjalan :

<table width="400" border="1" cellspacing="0" cellpadding="5">
  <tr>
    <td>Ranking</td>
    <td>NIP</td>
    <td>Nama</td>
    <td>Tunjangan</td>
  </tr>
<?php
mysql_connect("localhost","root","");
mysql_select_db("rumahsakit");
$query=mysql_query("SET @ranking=0;");
$query=mysql_query("SELECT @ranking:=@ranking+1 AS ranking, nip, nama, tunjangan from dokter order by tunjangan desc;");
while($data=mysql_fetch_array($query))
{
?>
  <tr>
    <td><?php echo $data['ranking']; ?>&nbsp;</td>
    <td><?php echo $data['nip']; ?>&nbsp;</td>
    <td><?php echo $data['nama']; ?>&nbsp;</td>
    <td><?php echo $data['tunjangan']; ?>&nbsp;</td>
  </tr>
<?php
}
?>
</table>

Hasilnya :


Cuma sayangnya penulis belum sempat mencoba untuk bahasa pemrograman desktop misal VB.NET atau C#.NET dan Java. Secara teori bisa, asal kedua perintah SQL tersebut dijalankan pada Satu Koneksi dengan Satu Command secara berurutan. Mungkin lain kali kita coba..

Semoga anda lebih beruntung dalam hal ini.

Silakan mencoba, semoga bermanfaat.