ĐỀ TÀI:QUẢN LÍ BÁN HÀNGPHẦN I.PHÂN TÍCH YÊU CẦU VÀ THIẾT KẾ MÔ HÌNH CƠ SỞ DỮ LIỆU1.Mô tả bài toánMỗi khách hàng có một mã khách hàng MAKH duy nhất, mỗi MAKH xác định được các thông tin v
Trang 1ĐẠI HỌC DUY TÂN TRƯỜNG KHOA HỌC MÁY TÍNH
ĐỒ ÁN CÁ NHÂN
Đề Tài:
QUẢN LÍ BÁN HÀNG
GIẢNG VIÊN : TRẦN HUỆ CHI
LỚP : IS 301 M
1 2821115057 7 LÊ VĨNH TÚ
Đà Nẵng, … /20…
Trang 2MỤC LỤC PHẦN I: PHÂN TÍCH YÊU CẦU VÀ THIẾT KẾ MÔ HÌNH CƠ SỞ DỮ LIỆU
1 Mô tả bài toán
2 Mô hình thực thể liên kết
3 Mô hình quan hệ
4 Nhập dữ liệu cho mỗi bảng
PHẦN II: BIỂU THỨC ĐẠI SỐ QUAN HỆ
1 Lập danh sách các khách hàng nữ
2 Lập danh sách những mặt hàng có dvt là kg
3 Lấy những hóa đơn năm 2023 Mahd, makh, ngayhd
4 Lấy những mặt hàng có sl bán>=20 Mah, mahd, slban
5 Lấy những mặt hàng có trong hd01 Mahd, mah, tenhang
6 Lấy những mặt hàng mà kh01 đã mua Makh, mahd, mah, tenh
7 Lấy những hóa đơn mua với sl>50 Mah, mahd, tenh, sl
8 Lấy những mặt hàng chưa ai mua
PHẦN III: NGÔN NGỮ SQL
1 Lấy những khách hàng phái Nữ: makh, hoten, phai, sdt
2 Lấy những mặt hàng có dvt là “kg” (hoặc dvt khác): mah, tenh, dvt
3 Lấy những hóa đơn trong năm 2023: mahd, nam, makh
4 Lấy những mặt hàng có số lượng từ 10 đến 20 Sắp xếp tăng dần theo số lượng: mahd, mah, soluong, dongia
5 Lấy 2 mặt hàng có đơn giá cao nhất mah, soluong, dongia
6 Liệt kê những hóa đơn của khách họ Lê (hoặc họ khác): makh, hoten, mahd, ngayhd
7 Liệt kê những mặt hàng Bia có đơn giá >400000 Mah, tenh, soluong, dongia
8 Liệt kê những hóa đơn trong tháng 10 Mahd, thang, mah, soluong
9 Liệt kê những khách hàng mua “hoa ly”: Makh, mah, tenh, soluong
10 Liệt kê những khách phái nam có mua “rượu” Makh, hoten, phai, mah, tenh, soluong
11 Đếm số hóa đơn của kh01
12 Tính số lượng cao nhất của mặt hàng “Bia huda”
13 Tính tổng tiền đã bán được trong năm 2023
14 Tính đơn giá thấp nhất của mặt hàng h01
15 Tính số lượng trung bình của hóa đơn HD02
16 Tính tổng số lượng đã bán của từng mặt hàng: mah, tenh, tong_sl
17 Tính tổng tiền của mỗi hóa đơn: Mahd, ngayhd, makh, tong_tien
18 Lấy khách hàng mua với tổng tiền >1.000.000 Makh, hoten, tongtien
19 Lấy mặt hàng bán với trung bình đơn giá >10.000: Mah, tenh, TB_dongia
20 Lấy những mặt hàng được mua trên 5 lần: Mah, tenh, so_lan
21 Lấy mặt hàng chưa có người mua: Mah, tenh, dvt
22 Lấy hóa đơn có tổng tiền cao nhất
23 Lấy khách hàng mua cả bia lẫn rượu
24 Lấy hóa đơn mua tất cả cả món hang
25 Cập nhật đơn giá lên 10% cho mặt hàng H01
26 Xóa mặt hàng không có người mua
Trang 3ĐỀ TÀI:QUẢN LÍ BÁN HÀNG PHẦN I.PHÂN TÍCH YÊU CẦU VÀ THIẾT KẾ MÔ HÌNH CƠ SỞ DỮ LIỆU
1.Mô tả bài toán
Mỗi khách hàng có một mã khách hàng (MAKH) duy nhất, mỗi MAKH xác định được các thông tin về khách hàng như : họ tên khách hàng (HOTEN), địa chỉ (ĐIACHI), số điện thoại (ĐIENTHOAI) Các mặt hàng được phân loại theo từng nhóm hàng, mỗi nhóm hàng có một mã nhóm (MANHOM) duy nhất, mỗi mã nhóm hàng xác định tên nhóm hàng (TENNHOM), tất nhiên một nhóm hàng có thê có nhiêu mặt hàng Mỗi mặt hàng được đánh một mã sô (MAHANG) duy nhất, môi mã số này xác định các thông tin về mặt hàng đó như : tên hàng (TENHANG), đơn giá bán (ĐONGIA), đơn vị tính (ĐVT) Mỗi hóa đơn bán hàng có một số hóa đơn (SOHĐ) duy nhất, mỗi hóa đơn xác định được khách hàng và ngày lập hóa đơn
(NGAYLAPHĐ), ngày bán hàng (NGAYBAN) Với mỗi mặt hàng trong một hóa đơn cho biết số lượng bán (SLBAN) của mặt hàng đó
2 Vẽ mô hình thực thể liên kết
Ho ten
Dia chi
dien thoai
Khách hàng
Nhóm hàng
Ma nhom
Ten nhom
Mặt hàng
Mã hàng Ten hang
đvt
Đơn giá
Trang 43.Mô hình quan hệ
4.Nhập dữ liệu cho mỗi bảng: Bảng KhachHang:
Bảng Hang:
Bảng HoaDon:
Trang 5Bảng ChiTiet:
PHẦN II: BIỂU THỨC ĐẠI SỐ QUAN HỆ
Khachhang(makh, hoten, phai, sdt)
Hang(mah, tenh, dvt)
Hoadon(mahd, ngayhd, makh)
Chitiet(mahd, mah, soluong, dongia)
1.Lập danh sách các khách hang nữ
phai=”Nu”(khachhang)
Ϭ
2.Lập danh sách những mặt hang có dvt là kg
dvt=”Kg”(hang)
Ϭ
3.Lấy những hóa đơn năm 2023 Mahd, makh, ngayhd
Π mahd,makh,ngayhd ngayhd=“2023”(hoadon*khachhang))ϭ 4.Lấy những mặt hàng có sl bán>=20 Mah, mahd, slban
Π mah,mahd,soluong ( soluong>=”20”(hoadon*khachhang))ϭ 5.Lấy những mặt hàng có trong hd01 Mahd, mah, tenhang
Π mahd,mah,tenh ( mah=”hd01”(hoadon*hang))ϭ
6.Lấy những mặt hàng mà kh01 đã mua Makh, mahd, mah, tênh
Π makh,mahd,mah,tenh ( makh=”kh01”(hang*hoadon))ϭ 7.Lấy những hóa đơn mua với sl>50 Mah, mahd, tenh, sl
Π mah,mahd,tenh,soluong ( soluong>”50”(hang*chitiet))ϭ 8.Lấy những mặt hàng chưa ai mua
Π mah,tenh,dvt ( mah=”is null”(hang))ϭ
Trang 6PHẦN III NGÔN NGỮ SQL
Khachhang(makh, hoten, phai, sdt)
Hang(mah, tenh, dvt)
Hoadon(mahd, ngayhd, makh)
Chitiet(mahd, mah, soluong, dongia)
1.Lấy những khách hàng phái Nữ: makh, hoten, phai, sdt
SELECT makh, hoten, phai, sdt FROM Khachhang WHERE phai = 'Nu';
2.Lấy những mặt hàng có dvt là “thung” (hoặc dvt khác): mah, tenh, dvt SELECT mah, tenh, dvt FROM Hang WHERE dvt = 'thung';
3.Lấy những hóa đơn trong năm 2023: mahd, nam, makh
SELECT mahd, YEAR(ngayhd) as nam, makh FROM Hoadon WHERE YEAR(ngayhd) = 2023;
4.Lấy những mặt hàng có số lượng từ 10 đến 20 Sắp xếp tăng dần theo số lượng: mahd, mah, soluong, dongia
Trang 7SELECT mahd, mah, soluong, dongia FROM Chitiet WHERE soluong BETWEEN 10 AND 20 ORDER BY soluong ;
5.Lấy 2 mặt hàng có đơn giá cao nhất mah, soluong, dongia
SELECT TOP 2 mah, soluong, dongia FROM Chitiet ORDER BY dongia ;
6.Liệt kê những hóa đơn của khách họ Lê (hoặc họ khác): makh, hoten, mahd, ngayhd
SELECT KhachHang.makh, hoten, hoadon.mahd, hoadon.ngayhd FROM KhachHang,hoadon
WHERE Khachhang.makh = hoadon.makh and hoten LIKE 'Le*';
7.Liệt kê những mặt hàng Bia có đơn giá >400000 Mah, tenh, soluong, dongia select hang.mah, tenh, soluong, dongia
from hang,chitiet
WHERE hang.tenh like 'Bia*' AND chitiet.dongia > 400000;
Trang 88.Liệt kê những hóa đơn trong tháng 10 Mahd, thang, mah, soluong
SELECT hoadon.Mahd, month(ngayhd)as thang, mah, soluong
From hoadon,chitiet
where hoadon.mahd = chitiet.mahd and MONTH(ngayhd) = 10;
9.Liệt kê những khách hàng mua “hoa ly”: Makh, mah, tenh, soluong
SELECT Khachhang.makh, hang.mah, hang.tenh, chitiet.soluong
FROM Khachhang,hoadon,chitiet,hang
where khachhang.makh=hoadon.makh and chitiet.mah = hang.mah and tenh
= 'Hoa ly';
10.Liệt kê những khách phái nam có mua “rượu” Makh, hoten, phai, mah, tenh, soluong
Select Makh, hoten, phai, chitiet.mah, tenh, soluong
From khachhang,chitiet,hang
where hang.mah = chitiet.mah and phai = 'nu' and tenh like 'Rượu*';
Trang 911.Đếm số hóa đơn của kh01
12.Tính số lượng cao nhất của mặt hàng “Bia huda”
SELECT MAX(soluong) as SoLuongCaoNhat_BiaHuda FROM Chitiet WHERE mah = 'h1';
13.Tính tổng tiền đã bán được trong năm 2023
SELECT sum(soluong*dongia) as tongtiendaban_nam2023
from chitiet,hoadon
where chitiet.mahd = hoadon.mahd and year(hoadon.ngayhd)= '2023';
14.Tính đơn giá thấp nhất của mặt hàng h01
SELECT Min(dongia) as DonGiaThapNhat_H1
FROM Chitiet,hang
Trang 10WHERE chitiet.mah = 'h1';
15.Tính số lượng trung bình của hóa đơn HD02
SELECT AVG(soluong) AS SoLuongTrungBinh
FROM Chitiet
WHERE mahd = 'HD02';
16.Tính tổng số lượng đã bán của từng mặt hàng: mah, tenh, tong_sl SELECT chitiet.mah, hang.tenh, sum(chitiet.soluong) as tong_sl From Chitiet,hang
where chitiet.mah = hang.mah
GROUP BY Chitiet.mah, Hang.tenh;
17.Tính tổng tiền của mỗi hóa đơn: Mahd, ngayhd, makh, tong_tien SELECT hoadon.mahd, hoadon.ngayhd, hoadon.makh, Sum(chitiet.soluong*chitiet.dongia) as tong_tien
from hoadon, chitiet
where hoadon.mahd = chitiet.mahd
Trang 11Group by hoadon.mahd , hoadon.ngayhd, hoadon.makh;
18.Lấy khách hàng mua với tổng tiền >1.000.000 Makh, hoten, tongtien SELECT khachhang.Makh, khachhang.hoten,
sum(chitiet.soluong*chitiet.dongia) as tongtien
From khachhang,chitiet,hoadon
where khachhang.makh = hoadon.makh and Hoadon.mahd = Chitiet.mahd Group by khachhang.makh , khachhang.hoten
having sum(chitiet.soluong*chitiet.dongia) >1000000;
19.Lấy mặt hàng bán với trung bình đơn giá >10.000: Mah, tenh, TB_dongia SELECT hang.Mah, hang.tenh,AvG(dongia) as TB_dongia
From hang,chitiet
Where hang.mah = chitiet.mah
group by hang.mah,tenh
having AvG(dongia) >10000
Trang 1220.Lấy những mặt hàng được mua trên 1 lần: Mah, tenh, so_lan
SELECT Hang.mah, Hang.tenh, COUNT(Chitiet.mah) AS SoLan FROM Hang, chitiet
where Hang.mah = Chitiet.mah
group by Hang.mah, Hang.tenh
having COUNT(Chitiet.mah) >1;
21.Lấy mặt hàng chưa có người mua: Mah, tenh, dvt
SELECT *
FROM HANG
WHERE (((HANG.[MAH]) Not In (SELECT MAH FROM CHITIET))); 22.Lấy hóa đơn có tổng tiền cao nhất
SELECT TOP 1 Hoadon.mahd, Hoadon.ngayhd, Hoadon.makh,
SUM(Chitiet.soluong * Chitiet.dongia) AS TongTien
FROM Hoadon,chitiet
where Hoadon.mahd = Chitiet.mahd
Trang 13GROUP BY Hoadon.mahd, Hoadon.ngayhd, Hoadon.makh
ORDER BY SUM(Chitiet.soluong * Chitiet.dongia) DESC;
23.Lấy khách hàng mua cả bia lẫn rượu
SELECT MAKH FROM HOADON A,HANG B,CHITIET C
WHERE A.MAHD=C.MAHD AND B.MAH=C.MAH AND TENH LIKE "bia*"
24.Lấy hóa đơn mua tất cả cả món hang
select mahd, count(mah) as somon
from chitiet
group by mahd
having count(mah);
25.Cập nhật đơn giá lên 10% cho mặt hàng H01
update chitiet
Trang 14set dongia=dongia*1.1
where mah like"h1"
26.Xóa mặt hàng không có người mua delete*from Hang
where mah not in(select mah from chitiet)