::: BELAJAR SQL (LANJUT) 2 :::

Kalau pada bagian pertama kita telah belajar hingga perintah GROUP BY maka untuk kali ini kita akan mempelari perintah yang mengikuti GROUP BY yaitu perintah HAVING.

HAVING

Perintah Having digunakan setelah perintah Group By untuk melakukan pengelompokan dengan kriteria yang lebih spesifik. 

Bila pada pertemuan pertama, kita mencoba mencari gaji maksimum dari pegawai baru berdasarkan pendidikannya maka dengan perintah Having kita dapat menambahkan dengan kriteria lain, misalnya hanya pegawai bergaji dibawah 400000 saja yang diproses. Bila anda masih bingung, contoh dibawah ini akan lebih jelas :   

Pembelian

Pembeli Barang Harga
Saiful Gitar 400000
Saleh Stik Drum 50000
Saiful Simbal 300000
Bakir Gitar 500000
Saiful Gitar 500000
Bakir Senar Bass 100000
Rohmat Gitar 300000

Dari tabel Pembelian diatas, kita ingin menampilkan nama-nama pembeli, berapa kali mereka melakukan transaksi dan total harga yang mereka keluarkan. Untuk tampilan seperti ini, kita cukup menggunakan Group By saja :

select Pembeli,count(Pembeli),sum(Harga)
from Pembelian
GROUP BY Pembeli;

Tapi bagaimana bila yang ingin kita proses hanya pembeli yang melakukan transaksi lebih dari 1 kali saja ? Jawabannya, kita harus tambahkan Having seperti dibawah ini :

select Pembeli,count(Pembeli),sum(Harga)
from Pembelian
GROUP BY Pembeli
HAVING count(Pembeli) > 1;

Hasilnya:

Saiful 3 1200000
Bakir 2 600000

 

AND,BETWEEN,OR,IN

AND adalah perintah untuk menggabungkan kedua kondisi yang keduanya harus dipenuhi.

Misalkan kita memiliki tabel seperti ini:

Nilai_siswa

Nama Nilai
Budi 80
Agung 70
Roni 90
Edi 70
Lulu 60
Sinta 80
Yuni 90

Maka bila kita ingin menampilkan nama siswa yang memiliki nilai antara 70 hingga 90, perintahnya adalah:

select Nama
from Nilai_siswa
where Nilai>=70 AND Nilai<=90;

Perintah diatas dapat pula diganti menggunakan perintah BETWEEN seperti ini:

select Nama
from Nilai_siswa
where Nilai BETWEEN 70 AND 90;

 

OR adalah perintah untuk menggabungkan dua/lebih kondisi yang paling tidak salah satunya harus terpenuhi.

Contoh : Dari tabel Nilai_siswa, kita ingin tampilkan nilai siswa yang namanya Lulu atau Lala. 

Perintahnya:

select Nilai
from Nilai_siswa
where Nama='Lulu' or Nama='Lala';

Hasilnya:

60

Dengan perintah OR maka bila tidak ada nama Lala, ia akan mencari nama Lulu, begitupula sebaliknya. Perintah diatas juga dapat diubah dengan menggunakan perintah IN, seperti dibawah ini:

select Nilai
from Nilai_siswa
where Nama IN ('Lulu','Lala');

Kebalikan dari perintah IN dan BETWEEN adalah NOT IN dan NOT BETWEEN.

 

 

Created at Sep 5 2002