Menggunakan sintaks SELECT empat di ADO
Penulis:Eve Cole
Waktu Pembaruan:2009-05-30 19:54:28
MEMILIKI
HAVING digunakan dalam ekspresi SELECT untuk memfilter catatan yang telah dihitung oleh GROUP BY. Setelah GROUP BY menghitung record, HAVING akan memfilter record yang cocok dengan ketentuan dalam klausa HAVING.
Sintaksnya adalah sebagai berikut:
PILIH daftar lapangan
DARI meja
kriteria pemilihan WHERE
KELOMPOK OLEH daftar bidang grup
[MEMILIKI kriteria grup]
.groupcriteria menunjukkan catatan statistik yang menentukan mana yang harus disaring.
HAVING mirip dengan WHERE dan digunakan untuk memutuskan record mana yang akan dipilih. Ketika GROUP BY digunakan untuk menghitung record, HAVING akan menentukan record yang harus ditampilkan, misalnya:
PILIH nama produk
DARI produk
KELOMPOK BERDASARKAN Kategori
MEMILIKI harga satuan > 1000
Klausa HAVING dapat berisi hingga 40 ekspresi operasional, dan ekspresi operasional tersebut akan dihubungkan dengan operator logika seperti AND atau OR.
Mari kita lihat contoh penggunaan perintah SQL ini dalam program ASP.
Kita dapat menggunakan klausa HAVING untuk menentukan record yang harus ditampilkan. Misalnya pada program ASP rs23.asp adalah sebagai berikut, [SELECT Name, Subject, Avg (Score) As Average From Exam Group By Name, Subject Have Avg ( Skor) >=60], gunakan Memiliki Rata-rata(skor) >=60 Temukan catatan dengan skor rata-rata lebih besar atau sama dengan 60 poin:
<%
Setel koneksi1 = Server.CreateObject("ADODB.Connection")
conn1.Buka "DBQ=" & Server.MapPath("ntopsamp.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"
Setel rs2 = Server.CreateObject("ADODB.Recordset")
SqlStr = "PILIH Nama, Mata Pelajaran, Rata-rata (Skor) Sebagai Rata-rata Dari Kelompok Ujian Berdasarkan Nama, Mata Pelajaran Memiliki Rata-rata (Skor) >=60"
rs2.Buka SqlStr,sambungan1,1,1
Response.Tulis "<p>Memiliki Rata-rata(skor) >=60"
Lakukan selagi bukan rs2.EOF
Respon.Tulis "<BR>" & rs2("Nama") & " " & rs2("Subjek") & " Rata-rata: " & rs2("Rata-rata")
rs2.PindahBerikutnya
Lingkaran
rs2.Tutup
%>
Program ASP rs23.asp di atas menggunakan browser pada klien untuk menelusuri hasil eksekusi dan menampilkan catatan yang skor rata-ratanya lebih besar atau sama dengan 60 poin.
Kita juga bisa menggunakan klausa HAVING untuk mencari record duplikat. Misalnya program ASP rs23.asp adalah sebagai berikut, [PILIH Kode Dari Grup Produk Berdasarkan Kode yang Memiliki Hitungan (Kode) > 1], gunakan Memiliki Hitungan (Kode) > 1 untuk menemukan kode duplikat Catatan:
<%
Setel koneksi1 = Server.CreateObject("ADODB.Connection")
conn1.Buka "DBQ=" & Server.MapPath("ntopsamp.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"
Setel rs2 = Server.CreateObject("ADODB.Recordset")
SqlStr = "PILIH Kode Dari Grup Produk Berdasarkan Kode Yang Memiliki Jumlah(kode) > 1"
rs2.Buka SqlStr,sambungan1,1,1
Response.Tulis "<p>Temukan duplikat yang Memiliki Jumlah(kode) > 1"
Lakukan selagi bukan rs2.EOF
Respon.Tulis "<BR>" & rs2("nama kode")
rs2.PindahBerikutnya
Lingkaran
rs2.Tutup
%>
Untuk program ASP rs23.asp di atas, gunakan browser di sisi klien untuk menelusuri hasil eksekusi dan menampilkan catatan dengan nama kode duplikat.
Serikat
Union dapat menggabungkan hasil dari beberapa kumpulan kueri.
Sintaksnya adalah sebagai berikut:
Kueri 1 UNION [SEMUA] Kueri 2 [UNION [SEMUA] Kueri 3 [ ... ]]
Kuerinya adalah ekspresi SELECT.
Saat Anda menggunakan operasi UNION, catatan duplikat tidak akan dikembalikan; jika Anda ingin mengembalikan semua catatan, Anda dapat menambahkan SEMUA setelah UNION. Menambahkan SEMUA akan mengeksekusi kueri lebih cepat.
Semua kueri dalam operasi UNION harus memiliki jumlah kolom yang sama. Ukuran bidang bisa berbeda, dan tipe data bidang juga bisa berbeda.
Alias hanya dapat digunakan pada ekspresi SELECT pertama dan dihilangkan pada ekspresi SELECT lainnya.
Anda dapat menggunakan klausa GROUP BY atau HAVING di setiap ekspresi SELECT untuk menghitung hasil kueri.
Anda dapat menggunakan klausa ORDER BY dalam ekspresi SELECT terakhir untuk menentukan urutan pengurutan hasil kueri.
Mari kita lihat contoh penggunaan perintah SQL ini dalam program ASP.
Union dapat digunakan untuk menggabungkan hasil dari dua set query. Misalnya, program ASP rs25.asp adalah sebagai berikut, [(PILIH nama, mata pelajaran, skor Dari ujian Dimana mata pelajaran='aritmatika' dan nama='Li Si' ) Persatuan (Nama PILIH, mata pelajaran, skor) Dari ujian Dimana mata pelajaran='aritmatika' dan nama='Zhang San')], gunakan Persatuan untuk menggabungkan hasil dari dua set kueri SELECT, satu grup akan menanyakan catatan skor aritmatika dari Li Si, dan yang lainnya adalah menanyakan catatan skor aritmatika Zhang San:
<%
Setel koneksi1 = Server.CreateObject("ADODB.Connection")
conn1.Buka "DBQ=" & Server.MapPath("ntopsamp.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"
Setel rs2 = Server.CreateObject("ADODB.Recordset")
SqlStr = "(PILIH nama, mata pelajaran, skorDari ujian Dimana mata pelajaran='aritmatika' dan nama='Li Si') Persatuan (PILIH nama, mata pelajaran, skorDari ujian Dimana mata pelajaran='aritmatika' dan nama='Zhang San') "
rs2.Buka SqlStr,sambungan1,1,1
Respon.Tulis "<p>Union"
Lakukan selagi bukan rs2.EOF
Respon.Tulis "<BR>" & rs2("Nama") & " " & rs2("Subjek") & " Nilai: " & rs2("Nilai")
rs2.PindahBerikutnya
Lingkaran
rs2.Tutup
%>
Program ASP rs25.asp di atas menggunakan browser pada klien untuk menelusuri hasil eksekusi dan menampilkan catatan pecahan aritmatika John Doe dan John Doe.