Đề tài: Tổ chức và xây dựng CSDL bán hàng
Mô tả bài toán
Quản lý CSDL bán hàng gồm có :
• Thông tin về nhân viên bao gồm: Mã nhân viên, Tên nhân viên, Địa chỉ, SĐT,
Giới tính, Ngày sinh.
• Mỗi hàng hóa sẽ có mã hàng hóa khác nhau, thông tin về hàng hóa được lưu trữ
bao gồm: Mã hàng hóa, Tên hàng hóa, Giá nhập, Số lượng 1, Mã nhà cung
cấp. Trong hóa đơn có một hoặc nhiều hàng hóa.
• Khi khách hàng đến mua quần áo, những khách hàng mua được hàng sẽ lưu lại
thông tin bao gồm: Mã khách hàng, Tên khách hàng, Địa chỉ, Số điện thoạị.
• Nhân viên bán hàng sẽ lập hóa đơn khi khách hàng thực hiện thanh toán, hóa đơn
bao gồm những thông tin: Mã hóa đơn, Mã nhân viên, Mã khách hàng, Mã
hàng hóa, Giá bán, Số lượng 2, Thành tiền, Ngày lập. Một nhân viên có thể
xuất một hoặc nhiều hóa đơn và một hóa đơn chỉ thuộc về một nhân viên. Một
khách hàng có thể nhận một hoặc nhiều hóa đơn nhưng một hóa đơn chỉ thuộc về
một khách hàng.
• Thông tin bắt buộc về nhà cung cấp bao gồm: Mã nhà cung cấp, Tên nhà cung
cấp, Địa chỉ. Một nhà cung cấp có thể cung cấp một hoặc nhiều hàng hóa và một
hàng hóa chỉ thuộc về một nhà cung cấp.
1. Tạo liên kết giữa các bảng.
create table NhanVien
(
MaNV nchar(10) primary key,
TenNV nvarchar(50)not null,
DiaChi nvarchar(100)not null,
DienThoai int not null,
GioiTinh nchar(3)not null,
NgaySinh datetime not null,
)
create table KhachHang
(
)
class="bi x2 y2f w1 h2"
Bảng Nhà cung cấp:
Bảng hàng hóa:
Bảng khách hàng:
Bảng nhân viên:
Bảng hóa đơn:
2. Câu lệnh select.
select N.MaNCC, N.TenNCC, H.TenHH, H.SoLuong1
from NhaCC N inner join HangHoa H on N.MaNCC=H.MaNCC
where H.SoLuong1>80
select N.MaNCC, N.TenNCC, H.TenHH, H.SoLuong1
from NhaCC N inner join HangHoa H on N.MaNCC=H.MaNCC
select N.MaNV, N.TenNV, N.GioiTinh
from NhanVien N
where N.GioiTinh='nam'
select N.MaNV, N.TenNV, N.GioiTinh, N.DiaChi
from NhanVien N
where N.Diachi='ha noi'
select count(K.MaKH) as soluongkhach, sum(HD.ThanhTien) tongtienmuahang
from KhachHang K inner join HoaDon HD on K.MaKH=HD.MaKH
where K.DiaChi='vinh phuc'
select N.TenNCC,H.TenHH
from NhaCC N full outer join HangHoa H on N.MaNCC=H.MaNCC
where N.TenNCC='cocacola'
select K.TenKH,HD.SoLuong2,K.DiaChi
from KhachHang K inner join HoaDon HD on K.MaKH=HD.MaKH
where HD.SoLuong2>9
(select K.MaKH
from KhachHang K inner join HoaDon HD on K.MaKH=HD.MaKH
Câu lệnh: select MaHH,TenHH,GiaNhap
from HangHoa
order by GiaNhap
• Hiển thị tên khách hàng và địa chỉ khách hàng đã mua sản phẩm có hóa
đơn lập vào ngày 1/7/2015
Câu lệnh: select KhachHang.TenKH, KhachHang.DiaChi, HoaDon.NgayLap
From KhachHang inner join HoaDon on KhachHang.MaKH=HoaDon.MaKH
Where NgayLap= '1/7/2015'
• Hiển thị tên và mã hàng hóa có giá bán > 15.000 và được khách hàng
mua với số lượng <10
Câu lệnh: select HangHoa.MaHH,TenHH
From HangHoa inner join HoaDon on HangHoa.MaHH=HoaDon.MaHH
Where GiaBan >15.000 and SoLuong2< 10
• Cho biết nhà cung cấp cocacola đã cung cấp những mặt hàng nào
Câu lệnh select HangHoa.MaHH,TenHH
From HangHoa inner join NhaCC on HangHoa.MaNCC=NhaCC.MaNCC
Where TenNCC= 'cocacola'
• Cho biết hàng hóa nào có giá nhập lớn nhất
Câu lệnh select MaHH,TenHH
From HangHoa
Where GiaNhap=( select MAX(GiaNhap) from HangHoa)
• Tính tổng thành tiền của mỗi nhóm hàng hóa được bán
Câu lệnh: select MaHH,sum(ThanhTien) from HoaDon
Group by MaHH
• Tính tổng thành tiền của mỗi nhóm hành hóa và hiển thị những mã hàng
hóa có tổng thành tiền >200
Câu lệnh : select MaHH,sum(ThanhTien) from HoaDon
Group by MaHH
Having sum(ThanhTien)>200
• Tìm số lượng hàng hóa nhỏ nhất, lớn nhất và đếm số lượng hàng hóa