Kamis, 15 Desember 2011

Latihan SBD

create table MsBarang
(
KdBarang char(5) primary key,
NamaBarang varchar(20),
Jumlah numeric
)

create table MsJenisBarang
(
KdJenisBarang char(5) primary key,
JenisBarang varchar(20)
)
/*
1. Tambahkan column KdJenisBarang sebagai foreign key di table MsBarang
*/
alter table MsBarang
add KdJenisBarang char(5) references MsJenisBarang

/*
2. Insert table MsJenisBarang seperti pada tampilan berikut :
*/
insert into MsJenisBarang values ('JB001','CDMusik')
insert into MsJenisBarang values ('JB002','CDFilm')

/*
3. Insert table MsBarang seperti pada tampilan berikut :
*/
insert into MsBarang values ('BR001',null,20,'JB001')
insert into MsBarang values ('BR002','Narnia',20,'JB002')
insert into MsBarang values ('BR003','Gita Gutawa-Bukan Permainan','JB001')

/*
4. Update NamaBarang menjadi 'Wang Lee Hom - Only One' pada table MsJenisBarang dimana NamaBarang adalah null
*/
update MsBarang set NamaBarang = 'Wang Lee Hom - Only one'
where
NamaBarang is null

/*
5. Hapus data pada tabel MsBarang yang jenisBarangnya adalah 'CDFilm'
*/
delete MsBarang from MsBarang b, MsJenisBarang jb
where
b.kdJenisBarang = jb.KdJenisBarang
and JenisBarang = 'CDFilm'

/*
6. Buatlah sebuah view dengan nama viewJenisBarang yang menampilkan semua data dari table MsJenisBarang
*/
create view viewJenisBarang
as
select * from MsJenisBarang

sp_tables

/*
7. Tampilkan KdPenjualan, NamaMember, NamaPegawai, TanggalPenjualan dimana NamaMember terdiri dari 1 kata dan
NamaPegawai terdiri dari 2 kata
*/

select KdPenjualan, NamaMember, NamaPegawai, convert(varchar,TglPenjualan,103) as TanggalPenjualan
from
TrHeaderPenjualan th join MsMember m on m.KdMember = th.KdMember
join MsPegawai p on th.KdPegawai = p.KdPegawai
where
NamaMember not like '% %'
and NamaPegawai like '% %'

/*
8. Tampilkan semua Nama di dalam database, baik NamaPegawai yang terdiri dari 2 kata, NamaMember yang terdiri dari 2 kata ataupun NamaBoneka yang terdiri dari 3 kata ke dalam 1 column.
Perhatikan hasil query, urutan harus sama seperti tampilan berikut :
*/
select NamaPegawai as Nama from MsPegawai
where
NamaPegawai like '% %'

union

select NamaMember from MsMember
where
NamaMember like '% %'
union all
select NamaBoneka from MsBoneka
where NamaBoneka like '% % %'

/*
9. Tampilkan KdBoneka, NamaBoneka, JumlahJual didapat dari jumlah qty dimana tanggal penjualan lebih besar dari 20,
NamaBoneka tidak mengandung kata 'teddy' digabungkan dengan KdBoneka, NamaBoneka dan Stok dari MsBoneka dimana 2 digit
terakhir kdBoneka lebih kecil dari 5
*/

select b.KdBoneka, NamaBoneka, sum(Qty) as JumlahJual
from TrDetailPenjualan dp join MsBoneka b on dp.kdBoneka = b.kdBoneka
join TrHeaderPenjualan hp on hp.KdPenjualan = dp.KdPenjualan
where
day(TglPenjualan) > 20
and NamaBoneka not like '%teddy%'
group by b.KdBoneka, NamaBoneka
union
select KdBoneka, NamaBoneka, Stok
from MsBoneka
where right(KdBoneka,2) < 5

Tidak ada komentar: