Tổng hợp đề thi và bài giải môn HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down

Tổng hợp đề thi và bài giải môn HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU

Bài gửi  Admin on Tue Nov 05, 2013 4:10 am



Code:

--Cau1:
create or replace function F_TileCK(soluong quanly_dathang.ct_ddh.sl%type)
return number
is
  tile number;
begin
  if soluong >= 50 then tile := 0.05;
    elsif soluong >=30 and soluong <50 then tile := 0.03;
      else tile := 0;
  end if;
  return tile;
end;
--test function
select f_tileck('&Nhap_vao_so_luong') from dual;

alter table quanly_dathang.ct_ddh add (TiLeCK number(3,2) default 0
      check (TileCK>=0 and TileCK<=1));

update quanly_dathang.ct_ddh set sl = 81 where maddh = 'DDH02' and mahg = 'TL92';
update quanly_dathang.ct_ddh set sl = 48 where maddh = 'DDH01' and mahg = 'NN01';
update quanly_dathang.ct_ddh set tileck = f_tileck(sl);
insert into quanly_dathang.ct_ddh values('DDH01','GK13',10,10000,0);
--Cau3:
create or replace function F_TriGiaDH(ma_donhang quanly_dathang.donhang.maddh%type)
return number
is
  ketqua number;
  cursor c_mathang is
    select * from quanly_dathang.ct_ddh where ma_donhang=maddh;
begin
  ketqua := 0;
  for d in c_mathang
    loop
      ketqua := ketqua + d.sl*d.dongia*(1-d.tileck);
    end loop;
  return ketqua;
end;
-----test function
select F_TriGiaDH('&Nhap_vao_ma_don_hang') from dual;
update quanly_dathang.donhang set trigia = f_trigiadh(maddh);
--Cau4: tao thu tuc T_NV
--Buoc1:
create or replace procedure inThongTin(v_maddh quanly_dathang.ct_ddh.maddh%type)
is
  i integer;
  tenhang quanly_dathang.hanghoa.tenhg%type;
  cursor c_ct_ddh is
    select * from quanly_dathang.ct_ddh where maddh = v_maddh;
begin
  i:=0;
  dbms_output.put_line('    '||'STT  '||'Ten hang    '||'So luong  '||' Don gia   ');
  for d in c_ct_ddh
  loop
    i:=i+1;
    select tenhg into tenhang from quanly_dathang.hanghoa where mahg = d.mahg;
    dbms_output.put_line('    '||i||'    '||tenhang||'   '||d.sl||'         '||d.dongia);
  end loop;
end;
--test procedure
set serveroutput on;
execute inThongTin('DDH01');
--Buoc2:
--Buoc3:
create or replace procedure T_NV(v_ten quanly_dathang.nhanvien.ten%type)
is
  i integer;
  tencongty varchar2(40);
  cursor c_donhang is
    select * from quanly_dathang.donhang
    where manv = (select manv from quanly_dathang.nhanvien where ten = v_ten);
begin
  i:=0;
  for d in c_donhang
  loop
    i:=i+1;
    select tencty into tencongty from quanly_dathang.khach where makh = d.makh;
    dbms_output.put_line(i||'. Ma DDH:'||d.MaDDH||'  Ngay dat:'||d.ngaydat
    ||'   Ten cong ty:'||tencongty);
    dbms_output.put_line('   Tong tri gia: '||d.trigia||'              Nhan vien nhan don:'||d.manv);
    dbms_output.put_line('   Gom:');
    inThongTin(d.maddh);
  end loop;
end;

----test
set serveroutput on;
execute T_NV('&Nhap_ten_nhanvien');

insert into quanly_dathang.donhang values ('DDH03','2702','NV92','05-nov-2013','24-nov-2013','Khu 3 elcit','Can Tho',10000);

Admin
Admin

Tổng số bài gửi : 217
Reputation : 20
Join date : 17/11/2012
Age : 24

Xem lý lịch thành viên http://elcit.forumvi.com

Về Đầu Trang Go down

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang


 
Permissions in this forum:
Bạn không có quyền trả lời bài viết