Tải bản đầy đủ (.docx) (11 trang)

BÀI TẬP LỚN HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU

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 (208.72 KB, 11 trang )

BÀ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
hố đơ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:


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.
2.

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.


4.Đặ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.


6. 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ì đã hồn tất nhưng khơng thấy hiện bả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



8. 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(1) as TONGTIEN

kết quả :tổng tiền của (MAHDN 01)


9. 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)


10. 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.


11. 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


13. 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 (1) 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:



14. Viết SQL thống kê mặt hàng bán chậm, ( nhằm tìm ngun 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 (1) with ties *from CHITIETHOADONXUAT,HANGHOA
where HANGHOA.MAHH = CHITIETHOADONXUAT.MAHH
order by SOLUONGX asc ;


15. 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
DONGIAgroup by HANGHOA.MAHH,TENHH,DONGIAN,DONGIA



×