Menampilkan record dari nomor tertentu dalam SQL Server 2000
By: pieter_edison@yahoo.com
Contoh Kasus :
Misalkan dalam suatu database anda, perusahaan anda memiliki database spare-part yang memiliki master customer ( pelanggan ).Kemudian dalam suatu kasus tertentu, anda ingin menampilkan record customer sebanyak 10 baris tetapi dengan nomor urut bukan dari 1 sampai x tertentu, tapi anda justru ingin menampilkan record pelanggan dari record 6 sampai ke 10 disebabkan data pelanggan ini memiliki kasus tertentu.
Kalau di MySQL dan Oracle dikenal dengan istilah LIMIT .
Hal ini dapat dilakukan dengan melakukan sedikit tip dan trik di SQL Server, khususnya SQL Server 2000.
Misalkan data Customer Anda adalah :
Tablename : Cust
ID CustName
01 DATA1
02 DATA2
03 DATA3
04 DATA4
05 DATA5
06 DATA6
07 DATA7
08 DATA8
09 DATA9
10 DATA10
11 DATA11
12 DATA12
13 DATA13
Anda ingin menampilkan data dari ID=05 sampai ID=11
Hal ini dapat dilakukan dengan :
Step 1 : Tampilkan dahulu data semua data sampai record ke 11
SELECT TOP 11 * FROM Cust ORDER BY [ID]
Akan menghasilkan record dari ID=1 sampai ID=11
Hasil
ID CustName
01 DATA1
02 DATA2
03 DATA3
04 DATA4
05 DATA5
06 DATA6
07 DATA7
08 DATA8
09 DATA9
10 DATA10
11 DATA11
Step 2 : Kemudian data ini dibuat alias sub quey sebagai data baru, data baru ini kita olah, dimana dari ID=1 sampai ID=11 ini, kita hanya ingin menampilkan data ID=05 sampai ID=11. Dengan kata lain kita ingin memfilter data ini sebanyak selisih 7 karena mulai dari ID=05 sampai ID=11.
Dengan query sqlnya sebagai berikut :
Syntax SQL : SELECT TOP 7 * FROM (
SELECT TOP 11 * FROM Cust ORDER BY [ID]
) A ORDER BY [ID] DESC
Dari query diatas, query Step 1 yang diatas kita simpan sebagai sub query dengan nama alias A, kemudian kita ambil 7 record dari alias table A tersebut, jangan lupa kita order dengan perintah DESC.
Akan menghasilkan record dari ID=05 sampai ID=11 dengan urutan DESC
Hasil :
ID CustName
11 DATA11
10 DATA10
09 DATA9
08 DATA8
07 DATA7
06 DATA6
05 DATA5
Step 3 : Setelah data tersebut terurut dan sesuai dengan step yang kita inginkan, selanjutnya data ini tinggal kita tampilkan kembali agar order datanya ASC dengan menggunakan sub query baru dari step 2 diatas.
Syntax SQL : SELECT * FROM
( SELECT TOP 7 * FROM (
SELECT TOP 11 * FROM Cust ORDER BY [ID]
) A ORDER BY [ID] DESC
) B ORDER BY [ID]
Akhirnya data tersebut akan terurut order sesuai dengan data yang kita minta.
Hasil :
ID CustName
05 DATA5
06 DATA6
07 DATA7
08 DATA8
09 DATA9
10 DATA10
11 DATA11
Demikian hasil yang diperoleh dan akhir dari isi tutorial ini.
Best Regards,
Pieter
By: pieter_edison@yahoo.com
Contoh Kasus :
Misalkan dalam suatu database anda, perusahaan anda memiliki database spare-part yang memiliki master customer ( pelanggan ).Kemudian dalam suatu kasus tertentu, anda ingin menampilkan record customer sebanyak 10 baris tetapi dengan nomor urut bukan dari 1 sampai x tertentu, tapi anda justru ingin menampilkan record pelanggan dari record 6 sampai ke 10 disebabkan data pelanggan ini memiliki kasus tertentu.
Kalau di MySQL dan Oracle dikenal dengan istilah LIMIT .
Hal ini dapat dilakukan dengan melakukan sedikit tip dan trik di SQL Server, khususnya SQL Server 2000.
Misalkan data Customer Anda adalah :
Tablename : Cust
ID CustName
01 DATA1
02 DATA2
03 DATA3
04 DATA4
05 DATA5
06 DATA6
07 DATA7
08 DATA8
09 DATA9
10 DATA10
11 DATA11
12 DATA12
13 DATA13
Anda ingin menampilkan data dari ID=05 sampai ID=11
Hal ini dapat dilakukan dengan :
Step 1 : Tampilkan dahulu data semua data sampai record ke 11
SELECT TOP 11 * FROM Cust ORDER BY [ID]
Akan menghasilkan record dari ID=1 sampai ID=11
Hasil
ID CustName
01 DATA1
02 DATA2
03 DATA3
04 DATA4
05 DATA5
06 DATA6
07 DATA7
08 DATA8
09 DATA9
10 DATA10
11 DATA11
Step 2 : Kemudian data ini dibuat alias sub quey sebagai data baru, data baru ini kita olah, dimana dari ID=1 sampai ID=11 ini, kita hanya ingin menampilkan data ID=05 sampai ID=11. Dengan kata lain kita ingin memfilter data ini sebanyak selisih 7 karena mulai dari ID=05 sampai ID=11.
Dengan query sqlnya sebagai berikut :
Syntax SQL : SELECT TOP 7 * FROM (
SELECT TOP 11 * FROM Cust ORDER BY [ID]
) A ORDER BY [ID] DESC
Dari query diatas, query Step 1 yang diatas kita simpan sebagai sub query dengan nama alias A, kemudian kita ambil 7 record dari alias table A tersebut, jangan lupa kita order dengan perintah DESC.
Akan menghasilkan record dari ID=05 sampai ID=11 dengan urutan DESC
Hasil :
ID CustName
11 DATA11
10 DATA10
09 DATA9
08 DATA8
07 DATA7
06 DATA6
05 DATA5
Step 3 : Setelah data tersebut terurut dan sesuai dengan step yang kita inginkan, selanjutnya data ini tinggal kita tampilkan kembali agar order datanya ASC dengan menggunakan sub query baru dari step 2 diatas.
Syntax SQL : SELECT * FROM
( SELECT TOP 7 * FROM (
SELECT TOP 11 * FROM Cust ORDER BY [ID]
) A ORDER BY [ID] DESC
) B ORDER BY [ID]
Akhirnya data tersebut akan terurut order sesuai dengan data yang kita minta.
Hasil :
ID CustName
05 DATA5
06 DATA6
07 DATA7
08 DATA8
09 DATA9
10 DATA10
11 DATA11
Demikian hasil yang diperoleh dan akhir dari isi tutorial ini.
Best Regards,
Pieter

0 Comments:
Post a Comment
<< Home