Berikut ini adalah sebuah contoh soal dari penggunaan Subquery:
Sebelumnya kita akan membuat table terlebih dahulu:
1. Tmaster

Note: NO dijadikan sebagai primary key
2. Tanggota

Note: ID dijadikan sebagai primary key
3. Ttransaksi

Note: terdapat foreign key, yaitu pada ID_peminjam dan NOFILM.
Langsung saja kita latihan yaa..
Soal no. 1 :
Tampilkan seluruh film yang diproduksi tahun 2010.
Query:
Select judul from tmaster where tahun in (select tahun from tmaster where tahun = ‘2010’);
Output:

Soal no. 2 :
Tampilkan film – film yang BUKAN ber-genre ‘action’.
Query :
Select judul from tmaster where genre not in (select genre from tmaster where genre = ‘action’);
Output:

Soal no.3 :
Tampilkan jumlah film yang diproduksi pada tahun ‘2007’.
query:
select count(judul) from tmaster where tahun in (select tahun from tmaster where tahun = '2007');
Output:

soal no. 4:
tampilkan nomor ID peminjam yang dendanya sebanyak 1000.
query:
select id_peminjam from ttransaksi where denda in (select denda from id_peminjam where denda = '1000');
output:

soal no.5 :
tampilkan nama - nama peminjam yang tidak memiliki denda pada transaksi peminjaman
query :
select ta.nama from tanggota ta, ttransaksi tt where ta.id = tt.id_peminjam and tt.denda in (select min(denda) from ttransaksi);
output:

soal no. 6 :
tampilkan jumlah denda dari RINTUL.
query :
select sum(denda) from tanggota ta join ttransaksi tt on (ta.id = tt.id_peminjam)
where ta.nama in (select ta.nama from tanggota ta where ta.nama = 'rintul');
output:

soal no. 7 :
tampilkan data - data peminjaman anggota antara 1 januari 2005 sampai 1 januari 2007.
query :
select tt.id_peminjam, tt.nofilm, tt.tgl_pinjam, tt.tgl_kembali, tt.denda from tanggota ta join ttransaksi tt on (ta.id = tt.id_peminjam) where tt.tgl_pinjam in (select tt.tgl_pinjam from ttransaksi tt where tt.tgl_pinjam between '01-01-2005' and '04-03-2010');
output:

soal no. 8 :
tampilkan data peminjaman anggota yang bernama 'OCTOSIS'.
query:
select tt.id_peminjam, tt.nofilm, tt.tgl_pinjam, tt.tgl_kembali. tt.denda from ttransaksi tt, tanggota ta where ta.id = tt.id_peminjam and ta.nama in (select ta.nama from tanggota ta where ta.nama = 'octosis');
output:

soal no. 9 :
bimantoko ingin melihat film apa saja yang telah dia pinjam beserta data peminjaman lainnya di bawah tahun 2010 dan dendanya jika ada.
query:
select tt.id_peminjam, tt.nofilm, tt.denda, tm.judul, tt.tgl_pinjam, tt.tgl_kembali from ttransaksi tt, tmaster tm, tanggota ta where ta.id = tt.id_peminjam and tm.no = tt.nofilm and ta.nama in (select ta.nama from tanggota ta where ta.nama = 'bimantoko') and tt.tgl_pinjam in (select tt.tgl_pinjam from ttransaksi where tt.tgl_pinjam < '01-01-2010');
output:

soal no.10 :
tampilkan semua nama anggota yang meminjam film 'transformer 2'.
query:
select ta.nama from tanggota ta, tmaster tm, ttransaksi tt where ta.id = tt.id_peminjam and tm.no = tm.nofilm and tm.judul in (select tm.judul from tmaster tm where tm.judul = 'transformer 2');
output:

download link
2 komentar:
terima kasih ilmunya.. sangat bermanfaat pak.. ^^
kyknya no 1-5 g perlu pake subquery jg bisa deh..
Posting Komentar