Anda di halaman 1dari 2

1.

Diberikan sebuah table seperti dibawah ini


ID_Karyawan Nama_Depan Nama_Belakang ID_Departemen Upah
100 Gede Ronaldo 20 10000
101 Ketut Poltak 20 20000
102 Made Suroto 30 15000
103 Wayan Muhammad 10 12000
104 Luh Angelina 50 25000
105 Putu Mely 10 22000

Buat perintah SQL untuk


i) Tampilkan data pegawai yang gajinya lebih kecil dari ID_karyawan 105 dengan asumsi upah atau gaji pegawai ID 105 tidak diketahui

select id_karyawan,nama_depan,nama_belakang,id_departemen
from departemen
where upah < (select upah from departemen where ID_Karyawan ='105' )

ii) Menampilkan nama depan, nama belakang dan gaji dari pegawai yang gajinya lebih besar dari rata-rata gaji pegawai pada department tempat dia bekerja.

select nama_depan,nama_belakang,upah
from departemen
where upah > (select avg (upah)from departemen)

2. Terdapat 3 buah table spt dibawah ini. Tabel “TrPinjam” merupakan table anak, dan lainnya merupakan table induk.

Tabel MsFilm
KdVcd Judul StatusPinjam
KM001 The Mask Y
KM002 Maju kena mundur nggak kena T
KR001 Naruto Shipdeh T
AC001 Rambu T
FS001 Suparman T
AC002 Speed o meter Y

Tabel MsPeminjam
KdPeminjam NmPeminjam KTP Alamat Telp
P0001 Made Rimpeg 20049876 Jl Drupadi No 99 484844
P0002 Ketut Semprong 20059876 Jl Imam Bonjol 222 567845
P0003 Sathosi 20051111 Jl Kebo Iwo 20 487563
P0004 Kim Tae Hun 20065432 Jl Teuku Umar 32 578612

Tabel TrPinjam
KdTransaksi TglPinjam KdPeminjam KdVcd LamaPinjam TglKembali Denda
TR001 1/1/2008 P0001 KM001 6 1/7/2008
TR002 1/1/2008 P0002 AC001 6 1/8/2008 500
TR003 1/1/2008 P0003 AC002 6 1/7/2008
TR004 1/1/2008 P0004 FS001 6 1/9/2008 1000
TR005 1/2/2008 P0001 KR001 8 1/10/2008
TR006 1/10/2008 P0003 KM001 6 1/19/2008 1500

Buat perintah SQL untuk


i) Tampilkan daftar transaksi yang dikenakan denda dengan menghitung apakah “tglKembali” terlambat atau tidak (perhatikan “tglPinjam” dan “LamaPinjam”)

select * from tr_pinjam


where day(tgl_pinjam) + lama_pinjam != day(tgl_kembali)

ii) Tampilkan daftar film yang tidak disewa dengan melibatkan table “MsFilm” dan “trPinjam”

--No 2.2
select distinct a.judul ,b.kd_vcd
from ms_film a left join tr_pinjam b
on a.kd_vcd = b.kd_vcd
where b.kd_vcd is null

iii) Tampilkan daftar seluruh film yang melebihi lama pinjam

--no 2.3
select distinct a.judul from ms_film a inner join tr_pinjam b
on a.kd_vcd = b.kd_vcd
where b.lama_pinjam < (select day(tgl_pinjam) + day(tgl_kembali))
iv) Tampilkan data penyewa yang meminjam lebih dari satu kali

--no 2.4
select kd_peminjaman,count(kd_peminjaman) as pijam_lebih_dari_1
from tr_pinjam
group by kd_peminjaman
having count(kd_peminjaman) > 1

v) Tampilkan judul film, nama peminjam,dan tgl pinjam dari peminjam yang pernah meminjam

select a.judul,b.nm_peminjam,c.tgl_pinjam
from ms_film a inner join tr_pinjam c
on a.kd_vcd = c.kd_vcd inner join ms_pinjam b
on b.kd_peminjaman = c.kd_peminjaman
order by judul

vi) Tampilkan semua data film dan nama peminjam yang meminjam film tersebut. Kalau tidak ada peminjamnya, tampilkan null di nama peminjam

--2.6
select distinct a.judul,b.nm_peminjam,c.kd_peminjaman
from ms_film a left join tr_pinjam c
on a.kd_vcd = c.kd_vcd left join ms_pinjam b
on b.kd_peminjaman = c.kd_peminjaman
order by judul

vii) Tampilkan kode peminjam, nama peminjam dan total denda. Untuk peminjam yang tidak pernah kena denda, tampilkan total denda samadengan 0 (nol)

select a.kd_peminjaman,a.nm_peminjam,b.denda as total_denda


from ms_pinjam a inner join tr_pinjam b
on a.kd_peminjaman = b.kd_peminjaman

Anda mungkin juga menyukai