Hệ thống có các chức năng cơ bản như quản lý mặt hàng, quản lý khách hàng, quản lý hoá đơn bán.. Thiết kế bảng Hàng hóa có các thuộc tính phù hợp, có lưu giá bán hiện tại.. Thiết kế bảng
Trang 1BÀI TẬP LỚN MÔN HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU
Họ và tên:
Mssv:
Lớp
GV giảng dạy:
Giới thiệu đầu bài.
Project 4: Xây dựng CSDL hệ thống quản lý bán hàng Thiết kế CSDL để
phục vụ app quản lý nhập xuất hàng hóa và bán hàng hóa Thống kê
báo cáo
Phân tích chức năng.
Hệ thống có các chức năng cơ bản như quản lý mặt hàng, quản lý khách hàng, quản lý hoá đơn bán Cửa hàng có thể có một hoặc nhiều người bán, với mỗi hoá đơn bán hàng phải có thông tin của người bán cho khách hàng cụ thể
1 Thiết kế bảng Hàng hóa có các thuộc tính phù hợp, có lưu giá bán hiện tại
Tạo table HANGHOA có các thuộc tính như sau:
Trang 22 Thiết kế bảng Hóa đơn nhập và các bảng liên quan để lưu thông tin nhập hàng, cho phép lưu giá nhập.
Tạo bảng HOADONNHAP các bảng liên quan là bảng NHACUNGCAP, CHITIETHOADONNHAP
3 Thiết kế bảng Hóa đơn bán và các bảng liên quan để lưu thông tin bán hàng, cho phép lưu giá bán thực tế để việc sửa giá sản phẩm đã bán không làm ảnh hưởng đến những hóa đơn đã bán.
Tạo bảng HOADONXUAT có các thuộc tính và các bảng liên quan là bảng NHANVIEN,KHACHHANG,CHITIETHOADONXUAT
Trang 34.Đặt các ràng buộc cứng (CHECK CONSTRAINT) cho phù hợp trong các bảng.
5 Liên kết các bảng với nhau bằng cách đặt khóa ngoại (FOREIGN KEY) phù hợp.
Trang 46 Viết SQL tạo 1 hóa đơn mới; sql để thêm/sửa/xóa các hàng hóa vào hóa đơn mới này Viết SQL Kiểm tra xem trong kho có đủ hàng cho hàng hóa này không?
Create procedure SP_INSERT_HDX Tạo một sp_themHDBH
@MANV nvarchar ( 50 ),
@MAKH int 1
AS BEGIN
INSERT into HOADONXUAT ( MANV , MAKH ) values ( @MANV , @MAKH )
END
Khi gõ lệnh xong thì đã hoàn tấ: t nhưng không thấ: y hiện ba @ng hóa đơn!
7 Viết SQL xóa 1 hóa đơn; cấu hình để xóa tự động các mặt hàng trong hóa đơn này.
VD:xóa dòng có MAHDX là ‘3’
delete from CHITIETHOADONXUAT where MAHDX = 3
Trang 58 Tạo function tính tổng tiền của 1 hóa đơn nhập.
create function TongTienHD ( @MAHDN int
RETURNS MONEY
AS BEGIN
declare @TONGTIEN money ; gán giá trị cho biế: n bơ @i lệnh select sum
SELECT @TONGTIEN = Sum ( SOLUONGN * DONGIAN )
FROM CHITIETHOADONNHAP
WHERE MAHDN = @MAHDN ; xác định đúng hóa đơn nhập
return @TONGTIEN ;
END
CHẠY:
select from CHITIETHOADONNHAP ;
select dbo TongTienHD ( ) as TONGTIEN
kết quả :tổng tiền của (MAHDN 01)
Trang 69 Tạo stored procedure tính tổng tiền doanh thu theo tháng.
VD: Tính tổng hóa đơn tháng 6
SELECT month ( HD NGAYXUAT ) Thang , sum ( HD TONGTIEN ) Tong
FROM HOADONXUAT HD
WHERE month ( HD NGAYXUAT )= 6
GROUP BY month ( HD NGAYXUAT )
Trang 710 Tạo stored procedure tính tổng tiền nhập hàng theo tháng
SELECT month ( HD NGAYNHAP ) Thang , sum ( HD TONGTIEN ) Tô@ ng FROM HOADONNHAP HD
WHERE month ( HD NGAYNHAP )= 3
GROUP BY month ( HD NGAYNHAP
Tính tổng tiền cho hóa đơn Nhập tháng 3
Trang 811 Tạo trigger để cập nhật số lượng hàng còn trong kho của mỗi loại.
update CHITIETHOADONXUAT set SOLUONGX = 5 where MAHH = 1
go
select from KHO
go
select from CHITIETHOADONXUAT
SOLUONG = SOLUONG - inserted.SOLUONGX + deleted.SOLUONGX
12 Viết SQL thống kê mặt hàng bán chạy.
Select Top 1 TENHH , SUM ( SOLUONGX ) as Tongsoluong
from HANGHOA , CHITIETHOADONXUAT
where HANGHOA MAHH = CHITIETHOADONXUAT MAHH
group by TENHH
order by Tongsoluong desc
Trang 913 Viết SQL thống kê mặt hàng bán chạy mà còn ít trong kho(để nhập
về bán tiếp)
Khi chạy câu lệnh:
Select Top ( ) with ties * from HANGHOA , KHO
where HANGHOA MAHH = KHO MAHH
order by SOLUONG asc
Sẽ thống kê ra thông tin mặt hàng còn ít nhất trong kho:
Trang 1014 Viết SQL thống kê mặt hàng bán chậm, ( nhằm tìm nguyên nhân để
xử lý, ví dụ vị trí bán hàng không tốt -> ko bán được)
Câu lệnh SQL tìm ra mặt hàng bán được ít nhất
Select Top ( ) with ties * from CHITIETHOADONXUAT , HANGHOA
where HANGHOA MAHH = CHITIETHOADONXUAT MAHH
order by SOLUONGX asc
Trang 1115 Viết SQL thống kê các hàng hóa có giá bán còn thấp hơn giá nhập Câu lệnh sql:
select from CHITIETHOADONNHAP
minus
select from HANGHOA
SELECT HANGHOA MAHH , TENHH , DONGIAN , DONGIA FROM
HANGHOA , CHITIETHOADONNHAP , CHITIETHOADONXUAT
Where HANGHOA MAHH = CHITIETHOADONNHAP MAHH AND
HANGHOA MAHH = CHITIETHOADONXUAT MAHH AND
DONGIA < DONGIAN
group by HANGHOA MAHH , TENHH , DONGIAN , DONGIA