Tải bản đầy đủ (.doc) (47 trang)

bài tập lớn hệ quản trị cơ sở dữ liệu :Đề tài: Quản Lý Bán Hàng Công Ty Máy Tính TIC

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (232.8 KB, 47 trang )

Đề tài: Quản Lý Bán Hàng Công Ty Máy Tính TIC
MỤC LỤC
MỤC LỤC 1
PHẦN 1 2
PHÂN TÍCH ĐỀ TÀI 2
QUẢN LÝ BÁN HÀNG CỦA CÔNG TY MÁY TÍNH TIC 2
1.Danh mục Loại Hàng (LOAIHANG) 7
2.Danh mục Hàng (HANG) 7
3.Danh mục KháchHàng (KHACHHANG) 7
4.Danh mục Nhân Viên (NHANVIEN) 8
5.Hàng Xuất (HANGXUAT) 8
6.Phiếu xuất (PHIEUXUAT) 9
DỮ LIỆU SỬ DỤNG 9
PHẦN 3. LẬP TRÌNH CƠ SỞ DỮ LIỆU 12
3.1. VIEW 12
1. vw_HangXuat 12
2. vw_HX_PX 12
3. vw_PX_SLMAX 13
4. vw_SOPX_THANG 13
3.2. STORE PROCEDURE 14
1. Bang Hang 14
2. Bang Hang 17
3. Bang HangXuat 21
4. Bang PhieuXuat 24
5. Bang KhachHang 29
6. Bang NhanVien 32
7. THU TUC BAO CAO PHIEU XUAT LOC THEO SOPX 35
Nhóm sinh viên thực hiện: Nhóm 13 Page 1
Bài tập lớn môn hệ quản trị CSDL SQL 2000
3.3. FUNCTION 36
3.4. TRIGGER 40


1. trg_HANGXUAT_THEM 40
2. XOA BO LOAI HANG THI MAT HANG BI XOA 41
3. XOA KHACH HANG THI TU DONG XOA PHIEU XUAT 43
PHẦN 1
PHÂN TÍCH ĐỀ TÀI
QUẢN LÝ BÁN HÀNG CỦA CÔNG TY MÁY TÍNH TIC
I. Đặt Vấn Đề
Sự phát triển của ngành công nghệ thông tin trong những năm gần đây đã đem
lại những thành tựu to lớn trong việc phát triển kinh tế, nó góp phần không nhỏ
vào việc quản lý các hoạt động trên mọi mặt một cách nhanh chóng, thuận tiện
và chính xác. Hoạt động quản lý bán hàng cũng vậy, chương trình quản lý bán
hàng được xây dựng nhằm đáp ứng những đòi hỏi đặt ra của quá trình quản lý
như nhập thông tin hàng, quản lý, thống kê, in báo cáo và rất nhiều công việc
khác, giúp công ty hoạt động một cách hiệu quả và khoa học.
Bằng những kiến thức đã học, chúng em đã ứng dụng hệ quản trị cơ sở dữ liệu
SQL Server để thực hiện đề tài “Quản lý bán hàng của công ty máy tính TIC”.
II. Phát Biểu Bài Toán
Giảng viên: Cô Nga Page 2
Đề tài: Quản Lý Bán Hàng Công Ty Máy Tính TIC
Công ty TNHH TM Tin Học và Thiết Bị Văn Phòng TIC ở địa chỉ 45 Hồ Tùng
Mậu- Cầu Giấy- Hà Nội. Công ty chuyên bán các linh phụ kiện máy tính, đồ kỹ
thuật công nghệ cao.
Công ty có nhiều bộ phận đảm nhận những công việc khác nhau như: giám đốc,
kế toán, nhân viên bán hàng, nhân viên bảo vệ, bộ phận kỹ thuật… với các hoạt
động chính bao gồm: quản lý thông tin hàng, quản lý bán hàng, quản lý nhân
viên, và báo cáo thống kê.
1. Quản lý thông tin hàng
Khi hàng đc chuyển vào kho, bộ phận quản lý hàng tiến hành kiểm tra chất
lượng sản phẩm, thêm thông tin hàng mới, sửa thông tin đối với các mặt hàng
có sự thay đổi, và xóa thông tin hàng khi hàng không còn kinh doanh nữa.

Thông tin về hàng bao gồm: mã hàng, tên hàng, số lượng, thời gian bảo hành,
mô tả hàng, giá bán…
2. Quản lý bán hàng
Khách hàng mua hàng trực tiếp tại công ty, bộ phận bán hàng kiểm tra và thanh
toán cho khách, và giao cho khách một phiếu lưu các thông tin: mã hàng, tên
hàng, số lượng, đơn giá, thành tiền, tổng tiền, ngày lập gọi là phiếu xuất.
Nếu khách hàng nhận hàng trực tiếp tại công ty thì hàng được giao ngay cho
khách, khách hàng thanh toán tiền với thu ngân.
Đồng thời, công ty cũng có dịch vụ giao hàng tận nơi cho khách trong trường
hợp khách có yêu cầu và đặt mua hàng với số lượng lớn hoặc có giá trị cao.
3. Quản lý nhân viên
Để theo dõi và quản lý nhân viên làm việc, công ty thực hiện thêm thông tin
nhân viên mới được tuyển vào danh sách, sửa đổi thông tin khi có những biến
đổi xảy ra và xóa bỏ nhân viên khi hết hợp đồng hoặc bị sa thải. Thông tin về
nhân viên gồm: mã nhân viên, tên nhân viên, địa chỉ, điện thoại, ngày sinh, giới
tính và các mô tả khác.
4. Báo cáo thống kê
Để tiện theo dõi việc kinh doanh của công ty, hàng tháng công ty lập báo cáo
gửi cho ban giám đốc, báo cáo về doanh thu trong tháng, mặt hàng đã bán ra và
báo cáo hàng tồn kho. Từ đó có các biện pháp điều chỉnh và đề ra chiến lược
kinh doanh.
Nhóm sinh viên thực hiện: Nhóm 13 Page 3
Bài tập lớn môn hệ quản trị CSDL SQL 2000
MÔ HÌNH PHÂN CẤP CHỨC NĂNG CỦA HỆ THỐNG
III. Chức Năng Của Hệ Thống
Hệ thống bán hàng của công ty bao gồm các chức năng sau:
1. Liệt kê thông tin chi tiết của từng phiếu xuất
2. Liệt kê thông tin chi tiết các phiếu xuất cho các khách hàng tương ứng
Giảng viên: Cô Nga Page 4
Đề tài: Quản Lý Bán Hàng Công Ty Máy Tính TIC

3. Liệt kê các phiếu xuất hàng có số lượng lớn nhất
4. Thực hiện thêm mới dữ liệu cho bảng loại hàng.
5. Sửa đổi thông tin bảng loại hàng.
6. Xóa thông tin loại hàng.
7. Thêm thông tin hàng mới.
8. Sửa thông tin hàng.
9. Xóa thông tin hàng.
10. Thống kê thông tin các mặt hàng được bán.
11. Sửa thông tin hàng xuất.
12. Xóa thông tin hàng xuất.
13. Thêm mới phiếu xuất.
14. Sửa thông tin phiếu xuất.
15. Liệt kê thông tin các khách hàng mua hàng trong công ty.
16. Sửa thông tin khách hàng.
17. Xóa thông tin khách hàng.
18. Thêm thông tin nhân viên mới.
19. Sửa thông tin nhân viên.
20. Xóa thông tin nhân viên.
PHẦN 2
THIẾT KẾ CƠ SỞ DỮ LIỆU
Tác nhân chính trong hệ thống là: khách hàng.
Nhóm sinh viên thực hiện: Nhóm 13 Page 5
Bài tập lớn môn hệ quản trị CSDL SQL 2000
Quá trình chuẩn hóa:
Các thuộc tính 1 NF 2 NF 3 NF
Sopx
Makh
Manv
Tenkh
Diachikh

Dienthoaikh
Email
Sopx
Makh
Tenkh
Diachikh
Dienthoaikh
Email
Manv
Tennv
Gioitinh
Ngaysinh
Ngaylamviec
Diachinv
Dienthoainv
Ngaypx
Ngaygiaohang
Sopx
Makh
Tenkh
Diachikh
Dienthoaikh
Email
Manv
Tennv
Gioitinh
Ngaysinh
Ngaylamviec
Diachinv
Dienthoainv

Ngaypx
Ngaygiaohang
Sopx
Makh
Manv
Ngaypx
Ngaygiaohang
Makh
Tenkh
Diachikh
Dienthoaikh
Email
Manv
Tennv
Gioitinh
Ngaysinh
Ngaylamviec
Diachinv
Dienthoainv
Mah
Tenh
Soluong
Dvtinh
Thoigianbh
Slxuat
Giaban
Malh
Tenlh
Sopx
Mah

Sopx
Slxuat
Giaban
Mah
Sopx
Slxuat
Giaban
Mah
Tenh
Soluong
Dvtinh
Thoigianbh
Malh
tenlh
Mah
Tenh
Soluong
Dvtinh
Thoigianbh
Malh
Malh
Tenlh
Giảng viên: Cô Nga Page 6
Đề tài: Quản Lý Bán Hàng Công Ty Máy Tính TIC
Sau khi chuyển dữ liệu về dạng 3NF, ta có các thực thể như sau:
PHIEUXUAT (Sopx, Makh, Manv, Ngaypx, Ngaygiaohang)
KHACHHANG (Makh, Tenkh, Diachikh, Dienthoaikh, Email)
NHANVIEN (Manv, Tennv, gioitinh, Ngaysinh, Ngaylamviec, Diachinv,
Dienthoainv)
HANGXUAT (Mah, Sopx, Slxuat, Giaban)

HANG (Mah, Tenh, Malh, Soluong, Dvtinh, Thoigianbh)
MALHANG (Malh, Tenlh)
1. Danh mục Loại Hàng (LOAIHANG)
Chứa mọi thông tin về loại hàng có bán của công ty. Gồm các thuộc tính
hợp thành
Tên cột Ý nghĩa Kiểu Độ rộng Ràng buộc
MALH Mã loại hàng CHAR 4 Primary key
TENLH Tên loại hàng NVARCHAR 50
2. Danh mục Hàng (HANG)
Chứa mọi thông tin về hàng hóa trong kho của công ty. Gồm các thuộc
tính hợp thành
Tên cột Ý nghĩa Kiểu Độ rộng Ràng buộc
MAH Mã hàng CHAR 4 Primary key
TENH Tên hàng NVARCHAR 50
MALH Loại hàng CHAR 4 Foreign Key
SOLUONG Số lượng hàng INT
DVTINH Đơn vị tính VARCHAR 20
THOIGIANBH Thời gian bảo hành VARCHAR 20
3. Danh mục KháchHàng (KHACHHANG)
Chứa mọi thông tin về khách hàng mua hàng tại công ty. Gồm các thuộc
tính hợp thành
Nhóm sinh viên thực hiện: Nhóm 13 Page 7
Bài tập lớn môn hệ quản trị CSDL SQL 2000
Tên cột Ý nghĩa Kiểu Độ rộng Ràng buộc
MAKH Mã khách hàng VARCHAR 4 Primary key
TENKH Tên khách hàng NVARCHAR 50
DIACHIKH Địa chỉ khách hàng NVARCHAR 100
DIENTHOAIKH Điện thoại khách hàng NVARCHAR 20
EMAIL Email khách hàng VARCHAR 100
4. Danh mục Nhân Viên (NHANVIEN)

Chứa mọi thông tin về nhân viên làm việc cho công ty thực hiện công
việc lập phiếu xuất. Gồm các thuộc tính hợp thành
Tên cột Ý nghĩa Kiểu Độ
rộng
Ràng buộc
MANV Mã nhân viên CHAR 4 Primary key
TENNV Tên nhân viên NVARCHAR 50
GIOITINH Giới tính BIT
NGAYSINH Ngày sinh SMALLDATETIME
NGAYLAMVIEC Ngày làm việc SMALLDATETIME
DIACHINV Địa chỉ của nhân viên NVARCHAR 100
DIENTHOAINV Điện thoại nhân viên NVARCHAR 20
5. Hàng Xuất (HANGXUAT)
Chứa mọi thông tin về hàng đã bán được của công ty. Gồm các thuộc tính
hợp thành
Tên cột Ý nghĩa Kiểu Độ rộng Ràng buộc
MAH Mã hàng CHAR 4
Primary key
SOPX Mã phiếu xuất CHAR 4
SLXUAT Số lượng xuất INT
GIABAN Giá bán MONEY
Giảng viên: Cô Nga Page 8
Đề tài: Quản Lý Bán Hàng Công Ty Máy Tính TIC
6. Phiếu xuất (PHIEUXUAT)
Chứa mọi thông tin về phiếu xuất hàng cho công ty. Gồm các thuộc tính
hợp thành
Tên cột Ý nghĩa Kiểu Độ
rộng
Ràng buộc
SOPX Mã phiếu xuất CHAR 4 Primary

key
MANV Mã nhân viên CHAR 4 Foreign key
NGAYGIAOHANG Ngày giao hàng SMALLDATETIME NOT
NULL
NGAYPX Ngày đặt hàng SMALLDATETIME NOT
NULL
Từ đó, ta có sơ đồ liên kết thực thể như sau:
SƠ ĐỒ THỰC THỂ KẾT HỢP
DỮ LIỆU SỬ DỤNG
BẢNG KHACHHANG
Nhóm sinh viên thực hiện: Nhóm 13 Page 9
Bài tập lớn môn hệ quản trị CSDL SQL 2000
MAKH TENKH DIACHIKH DIENTHOAIK
H
EMAIL
KH01 Nguyen Ngoc Minh Ba Dinh, Ha Noi 01684825014
KH02 Tran Anh Manh Cau Giay, Ha Noi 0987253412
KH03 Nguyen Xuan Hoa Tu Liem, Ha Noi 0972584565
KH04 Ton Ngo Khong Hoan Kiem, HaNoi 01698585421
KH05 Ngo Trac Linh Cau Giay, Ha Noi 0915648457
KH06 Tran Khai Lam Ha Dong, Ha Noi 01668454544
BANG NHANVIEN
MANV TENNV GIOITINH NGAYSINH NGAYLAMVIEC DIACHINV DIENTHOAI
NV01 Huynh Hieu Lam 0 5/6/1975 2/25/2006 Ha Noi 01684512451
NV02 Tran Hoang Yen 1 1/3/1980 3/27/2006 Ha Noi 0934512545
NV03 Nguyen Thanh
Cong
0 5/8/1985 5/30/2008 Quang Ninh 0945612454
NV04 Do Van Nghinh 0 4/2/1981 6/14/2007 Ha Noi 0941235456
NV05 Nguyen Thai Phong 0 7/7/1984 5/17/2005 Hai Phong 0983445543

BANG HANG
MA
H
TENH MALH SOLUONG DONVITINH THOIGIANBH
H1 HP Compaq LH1 30 CAI 24 Thang
H2 Lenovo LH1 20 CAI 24 Thang
H3 Compaq Presario LH1 20 CAI 24 Thang
H4 Sony Vaio LH1 20 CAI 24 Thang
H5 May In LH3 25 CAI 24 Thang
H6 May Chieu LH3 20 CAI 24 Thang
H7 May Quet LH2 25 CAI 24 Thang
Giảng viên: Cô Nga Page 10
Đề tài: Quản Lý Bán Hàng Công Ty Máy Tính TIC
H8 May Quay LH2 25 CAI 12 Thang
H9 May Ghi Am LH2 30 CAI 12 Thang
BANG LOAIHANG
MAL
H
TENLH
LH1 May Tinh Xach Tay
LH2 THIET BI GIAI TRI
LH3 THIET BI VAN PHONG
BẢNG PHIEUXUAT
SOP
X
MAKH NGAYPX MANV NGAYGIAOHAN
G
PX01 KH01 07/15/2009 NV01 07/15/2009
PX02 KH02 07/15/2009 NV02 07/15/2009
PX03 KH03 08/15/2009 NV02 08/16/2009

PX04 KH04 08/16/2009 NV03 08/16/2009
PX05 KH05 09/15/2009 NV04 09/17/2009
PX06 KH05 9/18/2009 NV05 9/18/2009
PX07 KH06 9/18/2009 NV05 9/20/2009
BẢNG HANGXUAT
MA
H
SOPX SLXUAT GIABAN
H1
PX01 1 15,000,000
H2
PX02 2 14,000,000
H3
PX03 1 13,500,000
H4
PX04 2 14,500,000
H5
PX04 1 18,000,000
H3
PX05 1 13,500,000
Nhóm sinh viên thực hiện: Nhóm 13 Page 11
Bài tập lớn môn hệ quản trị CSDL SQL 2000
H9
PX05 2 1,100,000
H3 PX06 1 13500000
H3 PX07 1 13500000
PHẦN 3. LẬP TRÌNH CƠ SỞ DỮ LIỆU
3.1. VIEW
1. vw_HangXuat
Tao view vw_HangXuat de liet ke cac chi tiet xuat hang cua mot phieu xuat

CREATE VIEW vw_HANGXUAT
AS
SELECT sopx, a.mah, tenh, slxuat, giaban,
slxuat*giaban as thanhtien
FROM HANGXUAT a INNER JOIN HANG b ON a.mah = b.mah
GO
drop view vw_HANGXUAT
Su dung bang ao
SELECT * FROM vw_HANGXUAT
2. vw_HX_PX
Tao view vw_HX_PX de liet ke cac chi tiet xuat hang cho khach hang
CREATE VIEW vw_HX_PX
AS
SELECT b.mah, b.sopx, tenh, c.makh, tenkh, slxuat, giaban,
slxuat*giaban as thanhtien
FROM HANG a INNER JOIN HANGXUAT b ON a.mah=b.mah
Giảng viên: Cô Nga Page 12
Đề tài: Quản Lý Bán Hàng Công Ty Máy Tính TIC
INNER JOIN PHIEUXUAT c ON b.sopx=c.sopx
INNER JOIN KHACHHANG d ON c.makh=d.makh
GO
DROP VIEW vw_HX_PX
Su dung bang ao
SELECT *
FROM vw_HX_PX
3. vw_PX_SLMAX
Tao view vw_PX_SLMAX de liet ke cac phieu xuat hang co nhieu mat hang
nhat
CREATE VIEW vw_PX_SLMAX
AS

SELECT HANGXUAT.sopx, COUNT(mah) AS SoMH
FROM HANGXUAT
GROUP BY sopx
GO
DROP VIEW vw_PX_SLMAX
SELECT * FROM vw_PX_SLMAX
WHERE SoMH>=ALL (SELECT SoMH FROM vw_PX_SLMAX)
GO
4. vw_SOPX_THANG
Thong ke So phieu xuat theo thang
CREATE VIEW vw_SOPX_THANG
AS
Nhóm sinh viên thực hiện: Nhóm 13 Page 13
Bài tập lớn môn hệ quản trị CSDL SQL 2000
SELECT TOP 100 YEAR (ngaypx) AS Nam, MONTH (ngaypx) AS
Thang, COUNT (sopx) AS SopxThang
FROM phieuxuat
GROUP BY YEAR (ngaypx) , MONTH (ngaypx)
DROP VIEW vw_SOPX_THANG
GO
SELECT * FROM vw_SOPX_THANG
3.2. STORE PROCEDURE
Thu Tuc Noi Tai
1. Bang Hang
a. Them moi du lieu vao bang LoaiHang
DROP PROC spud_LoaiHang_them
CREATE PROC spud_LoaiHang_them
@malh CHAR(4),
@tenlh VARCHAR(50)
AS

IF EXISTS (SELECT * FROM LoaiHang WHERE malh = @malh)
BEGIN
PRINT 'Ma loai hang ' +@malh+ ' da co! Nhap ma loai hang khac'
RETURN
END
IF EXISTS (SELECT * FROM LoaiHang WHERE tenlh = @tenlh)
BEGIN
PRINT 'Ten loai hang ' +@tenlh+ ' da co! Nhap ten loai hang khac'
RETURN
END
Giảng viên: Cô Nga Page 14
Đề tài: Quản Lý Bán Hàng Công Ty Máy Tính TIC
ELSE
xu ly them mau tin
BEGIN
INSERT INTO LoaiHang VALUES(@malh, @tenlh)
PRINT 'Loai Hang da duoc them'
END
GO
EXEC spud_LoaiHang_them 'LH1','MAY TINH XACH TAY'
EXEC spud_LoaiHang_them 'LH4','THIET BI KY THUAT SO'
b. Sua thong tin LoaiHang
DROP PROC spud_LoaiHang_sua
CREATE PROC spud_LoaiHang_sua
@malh CHAR(4),
@tenlh VARCHAR(50)
AS
DECLARE @ErrMsg VARCHAR(100)
IF NOT EXISTS (SELECT malh FROM LoaiHang WHERE malh =
@malh)

BEGIN
SET @ErrMsg = 'Khong tim thay ma loai hang'+@malh
RAISERROR(@ErrMsg, 16, 1)
RETURN
END
Xu ly update
UPDATE LoaiHang
Nhóm sinh viên thực hiện: Nhóm 13 Page 15
Bài tập lớn môn hệ quản trị CSDL SQL 2000
SET tenlh = @tenlh
WHERE malh = @malh
GO
EXEC spud_LoaiHang_sua 'LH1','MAY TINH XACH TAY'
c. Xoa thong tin LoaiHang
drop proc spud_loaihang_xoa
CREATE PROC spud_LoaiHang_xoa
@malh CHAR(4)
AS
DECLARE @ErrMsg VARCHAR(100)
IF NOT EXISTS (SELECT * FROM LoaiHang WHERE malh = @malh)
BEGIN
SET @ErrMsg = 'Ma loai hang' +@malh+ ' khong ton tai, nen
khong the xoa'
RAISERROR(@ErrMsg, 16, 1)
RETURN
END
IF EXISTS (SELECT malh FROM Hang WHERE malh = @malh)
BEGIN
SET @ErrMsg = 'Ma loai hang ' +@malh+ ' ton tai trong bang
Hang nen khong the xoa'

RAISERROR(@ErrMsg, 16, 1)
RETURN
END
ELSE
BEGIN
Giảng viên: Cô Nga Page 16
Đề tài: Quản Lý Bán Hàng Công Ty Máy Tính TIC
Thuc hien xoa mau tin
DELETE LoaiHang WHERE malh = @malh
PRINT 'Loai hang' +@malh+ ' da duoc xoa'
END
GO
EXEC spud_LoaiHang_xoa 'LH4'
SELECT * FROM LoaiHang
2. Bang Hang
a. Them hang moi
DROP PROC spud_Hang_them
CREATE PROC spud_Hang_them
@mah CHAR(4),
@tenh VARCHAR(50),
@malh CHAR(4),
@soluong SMALLINT,
@dvtinh VARCHAR(20),
@thoigianbh VARCHAR(20)
AS
kiem tra ma hang chua co
IF EXISTS (SELECT * FROM Hang WHERE mah = @mah)
BEGIN
PRINT 'Ma hang ' +@mah+ ' da ton tai! NHAP MA HANG
KHAC'

RETURN
END
kiem tra ten hang khong trung
Nhóm sinh viên thực hiện: Nhóm 13 Page 17
Bài tập lớn môn hệ quản trị CSDL SQL 2000
IF EXISTS (SELECT * FROM Hang WHERE tenh = @tenh)
BEGIN
PRINT 'Ten hang ' +@tenh+ ' da ton tai! NHAP TEN HANG
KHAC '
RETURN
END
kiem tra ma loai hang da co
IF NOT EXISTS (SELECT * FROM LoaiHang WHERE malh = @malh)
BEGIN
PRINT 'Ma loai hang ' +@malh+ ' khong ton tai trong bang Loai
Hang'
RETURN
END
Them mau tin moi
BEGIN
INSERT INTO hang VALUES (@mah, @tenh, @malh,
@soluong, @dvtinh, @thoigianbh)
PRINT 'MAT HANG DA THEM THANH CONG!'
END
GO
EXEC spud_Hang_them 'H1','MAY ANH
CANON','LH1',12,'CAI','24THANG'
EXEC spud_Hang_them 'H10','MAY ANH
CANON','LH1',15,'CAI','24THANG'
b. Sua thong tin hang

DROP PROC spud_Hang_sua
CREATE PROC spud_Hang_sua
Giảng viên: Cô Nga Page 18
Đề tài: Quản Lý Bán Hàng Công Ty Máy Tính TIC
@mah CHAR(4),
@tenh VARCHAR(50),
@malh CHAR(4),
@soluong SMALLINT,
@dvtinh VARCHAR(20),
@thoigianbh CHAR(20)
AS
IF NOT EXISTS (SELECT mah FROM Hang WHERE mah = @mah)
BEGIN
PRINT 'Khong ton tai ma hang '+@mah+ ' nen khong the sua'
RETURN
END
IF NOT EXISTS (SELECT malh FROM LoaiHang WHERE malh =
@malh)
BEGIN
PRINT 'Khong ton tai ma loai hang '+@malh+ ' trong bang
LoaiHang, nen khong the sua'
RETURN
END
Thuc hien update
UPDATE hang
SET tenh = @tenh, malh = @malh, soluong = @soluong, dvtinh =
@dvtinh, thoigianbh = @thoigianbh
WHERE mah = @mah
PRINT 'sua hang thanh cong'
GO

SELECT * FROM HANG
Nhóm sinh viên thực hiện: Nhóm 13 Page 19
Bài tập lớn môn hệ quản trị CSDL SQL 2000
EXEC spud_Hang_sua 'H4','MAN HINH LCD 17 INCHES','LH5',10,
'CAI','24 THANG'
EXEC spud_Hang_sua 'H5','MAY IN MAU','LH3',25, 'CAI','24 THANG'
c. Xoa Hang
DROP PROCEDURE spud_Hang_xoa
CREATE PROCEDURE spud_Hang_xoa
@mah CHAR(4)
AS
IF NOT EXISTS (SELECT mah FROM Hang WHERE mah = @mah)
BEGIN
PRINT 'Ma hang '+@mah+ ' khong ton tai'
RETURN
END
IF EXISTS (SELECT mah FROM HangXuat WHERE mah = @mah)
BEGIN
PRINT 'Mat hang '+@mah+ 'da xuat hang, ban khong the xoa'
RETURN
END
Thuc hien xoa mau tin
DELETE Hang WHERE mah = @mah
PRINT 'xoa Mat hang ' +@mah+' thanh cong'
GO
EXEC spud_Hang_xoa 'H1'
EXEC spud_Hang_xoa 'H10'
Giảng viên: Cô Nga Page 20
Đề tài: Quản Lý Bán Hàng Công Ty Máy Tính TIC
3. Bang HangXuat

a. Them moi HangXuat
DROP PROCEDURE spud_HangXuat_them
CREATE PROCEDURE spud_HangXuat_them
@mah CHAR(4),
@sopx CHAR(4),
@giaban MONEY,
@slxuat SMALLINT
AS
DECLARE @ErrMsg VARCHAR(100)
IF NOT EXISTS (SELECT sopx FROM PhieuXuat WHERE sopx =
@sopx)
BEGIN
SET @ErrMsg = 'sopx '+@sopx+'chua co trong bang PhieuXuat.
KHONG THE XUAT HANG'
RAISERROR(@ErrMsg, 16, 1)
RETURN
END
IF NOT EXISTS (SELECT mah FROM hang WHERE mah = @mah)
BEGIN
SET @ErrMsg = 'mah '+@mah+ ' nay khong co trong hang. KHONG
THE XUAT HANG'
RAISERROR(@ErrMsg, 16, 1)
RETURN
END
IF EXISTS (SELECT mah FROM hangxuat WHERE mah = @mah and
sopx = @sopx)
BEGIN
Nhóm sinh viên thực hiện: Nhóm 13 Page 21
Bài tập lớn môn hệ quản trị CSDL SQL 2000
SET @ErrMsg = 'mah '+@mah+ ' nay da co trong sopx '+@sopx+'.

THEM MA HANG KHAC'
RAISERROR(@ErrMsg, 16, 1)
RETURN
END
IF (@giaban<0)
BEGIN
SET @ErrMsg = 'Don gia khong hop le, xin nhap lai'
RAISERROR(@ErrMsg, 16, 1)
RETURN
END
IF (@slxuat<0)
BEGIN
SET @ErrMsg = 'So luong khong hop le, xin nhap lai'
RAISERROR(@ErrMsg, 36, 1)
RETURN
END
INSERT INTO HangXuat VALUES (@mah, @sopx, @slxuat, @giaban)
GO
SELECT * FROM HANGXUAT
ALTER TABLE HANGXUAT NOCHECK CONSTRAINT ALL
ALTER TABLE HANGXUAT CHECK CONSTRAINT ALL
EXEC spud_HangXuat_them 'PX01', 'H10', 1, 1500000
EXEC spud_HangXuat_them 'PX01', 'H1', 1, 1500000
EXEC spud_HangXuat_them 'H4', 'PX01', 1, 15000000
Giảng viên: Cô Nga Page 22
Đề tài: Quản Lý Bán Hàng Công Ty Máy Tính TIC
GO
b. Sua thong tin HangXuat
DROP PROCEDURE spud_HangXuat_sua
CREATE PROCEDURE spud_HangXuat_sua

@mah CHAR(4),
@sopx CHAR(4),
@slxuat INT,
@giaban MONEY
AS
IF NOT EXISTS (SELECT sopx, mah FROM HangXuat WHERE (sopx
= @sopx) and (mah = @mah))
BEGIN
PRINT 'So phieu xuat '+@sopx+ 'va ma hang' +@mah+ 'khong ton tai
trong bang HangXuat, ban khong the sua'
RETURN
END
IF (@giaban<0)
BEGIN
PRINT 'Don gia Xuat khong hop le, xin nhap lai'
RETURN
END
IF (@slxuat<0)
BEGIN
PRINT 'So luong khong hop le, xin nhap lai'
RETURN
END
Nhóm sinh viên thực hiện: Nhóm 13 Page 23
Bài tập lớn môn hệ quản trị CSDL SQL 2000
UPDATE HangXuat
SET giaban = @giaban, slxuat = @slxuat
WHERE(sopx = @sopx) and (mah = @mah)
PRINT 'sua HangXuat thanh cong'
GO
EXEC spud_HangXuat_sua 'H1','PX01', 2, 15000000

c. Xoa HangXuat
DROP PROCEDURE spud_HangXuat_xoa
CREATE PROCEDURE spud_HangXuat_xoa
@mah CHAR(4),
@sopx CHAR(4)
AS
IF NOT EXISTS (SELECT sopx, mah FROM HangXuat WHERE (sopx
= @sopx) and (mah = @mah))
BEGIN
PRINT 'So phieu xuat '+@sopx+ 'va ma hang' +@mah+ 'khong ton tai
trong bang HangXuat, ban khong the xoa'
RETURN
END
DELETE HangXuat
WHERE (sopx = @sopx) and (mah = @mah)
PRINT 'xoa HangXuat thanh cong'
GO
EXEC spud_HangXuat_XOA 'H4', 'PX01'
4. Bang PhieuXuat
a. Them moi PhieuXuat
Giảng viên: Cô Nga Page 24
Đề tài: Quản Lý Bán Hàng Công Ty Máy Tính TIC
DROP PROCEDURE spud_PhieuXuat_them
ALTER TABLE PHIEUXUAT NOCHECK CONSTRAINT ALL
ALTER TABLE PHIEUXUAT CHECK CONSTRAINT ALL
CREATE PROCEDURE spud_PhieuXuat_them
@sopx CHAR(4),
@makh CHAR(4),
@manv CHAR(4),
@ngaypx SMALLDATETIME,

@ngaygiaohang SMALLDATETIME
AS
DECLARE @ErrMsg VARCHAR(100)
IF EXISTS (SELECT sopx FROM phieuxuat WHERE sopx = @sopx)
BEGIN
SET @ErrMsg = 'So Phieu xuat '+@sopx+ ' da ton tai trong bang
Phieuxuat. Nhap sopx khac de them'
RAISERROR(@ErrMsg, 16, 1)
RETURN
END
IF NOT EXISTS (SELECT makh FROM KhachHang WHERE makh =
@makh)
BEGIN
SET @ErrMsg = 'Ma khach hang '+@makh+ ' khong ton tai trong
bang KhachHang. Xin nhap KhachHang truoc'
RAISERROR(@ErrMsg, 16, 1)
RETURN
END
IF NOT EXISTS (SELECT manv FROM NhanVien WHERE manv =
@manv)
Nhóm sinh viên thực hiện: Nhóm 13 Page 25

×