3.8:Hiển thị tất cả các mặt hàng của khách hàng có tên là Dũng đã mua hàng gồm mã hàng,tên khách hàng,số điện thoại.... 3.10:Hiển thị tất cả mặt hàng trên phiếu vận chuyển có số phiếu là
Trang 1ĐẠI HỌC DUY TÂN
TRƯỜNG KHOA HỌC MÁY TÍNH -
-ĐỒ ÁN NHÓM
ĐỀ TÀI SỐ 09
QUẢN LÝ HOẠT ĐỘNG KINH DOANH
Giảng viên : Nguyễn Dũng
Môn: Cơ sở dữ liệu
Lớp: IS 301 CA
Sinh viên :
ĐÀ NẴNG , 12 - 2023
Trang 2MỤC LỤC
1.Vẽ mô hình thực thể liên kết 1
1.1.Mô hình thực thể liên kết 1
2.Vẽ mô hình cơ sở dữ liệu quan hệ 1
3.Lập phép toán đại số quan hệ 3
4.Viết câu lệnh SQL 6
4.1 Cài đặt mô hình quan hệ câu 2 vào SQL SERVER 6
4.2 Nhập dữ liệu vào các bảng(tối thiểu 10 dòng) 7
4.3 Viết câu lệnh SQL cho các câu ở Câu 3 9
4.5 Hiển thị các đơn đặt hàng (PHIEUDONHAG) đã đặt hàng nhưng không thành công 12
4.6 Hiển thị tất cả các hoá đơn của khách hàng có số điện thoại 0905123456 đã đặt hàng và vận chuyển thành công……….12
4.7 Hiển thị hai hoá đơn đã bán có số tiền lớn nhất ……… 12
4.9 Thống kê tổng số lượng của từng mặt hàng bao gồm số lượng trong kho và số lượng đã bán 12
4.10 Xoá tất cả các phiếu hàng không chuyển thành hoá đơn 13
4.11 Xoá tất cả nhân viên vận chuyển đã hết hợp đồng với công ty 13
4.12 Diễn hoá chặt chẽ các ràng buộc toàn vẹn đã được mô tả trong lược đồ cơ sở dữ liệu 13
Trang 31.Vẽ mô hình thực thể liên kết
1.1.Mô hình thực thể liên kết
2 Vẽ mô hình cơ sở dữ liệu quan hệ
1
Trang 53.Lập phép toán đại số quan hệ
3.1
πMaHang,TenHang,SoLuong,MoTa (HangHoa)
3.2
πMaHang,TenHang(σChiTietPhieuDatHang.SoPhieuDH='PDH001'(σ ChiTietPhieuDatHang.MaHang=HangHoa.MaHang
(ChiTietPhieuDatHang HangHoa))) ⋈
3.3
3
Trang 6(σChiTietPhieuDatHang.NgayTao=GETDATE()(PhieuDatHang)) 3.4:Thống kê tổng số tiền đã bán của hoá đơn có mã là HD001
π MaHoaDon,SUM(ChiTietHoaDon.SoLuong*HangHoa.DonGia) ( σ MaHoaDon=’HD001’(HoaDon⋈MaHoaDon ChiTietHoaDon)) 3.5
π Makh,TenKH,Dienthoai(σMaHoaDon='HD02' (σHoaDon.MaKH=KhachHang.MaKH
(HoaDon ⋈KhachHang)))
3.6
πMaHoaDon,SUM(SoLuong*DonGia)
( σ HoaDon.MaHoaDon = ChiTietHoaDon.MaHoaDon
( σ ChiTietHoaDon.MaHang = HangHoa.MaHang
( σ HoaDon.MaHoaDon = PhieuChuyenHang.MaHoaDon
3.7
πMaHang,TenHang,SoLuong,DonGia(σHoaDon.MaHoaDon=’ HD05’
( HoaDon⋈ChiTietHoaDon HangHoa)) ⋈
3.8:Hiển thị tất cả các mặt hàng của khách hàng có tên là Dũng đã mua hàng gồm mã hàng,tên khách hàng,số điện thoại.
πMaHang,TenKH,DienThoai (
σ KhachHang.HoTen=’Dũng’
(KhachHang⋈MaKH HoaDon MaHoaDon ChiTietHoaDon ⋈ ⋈ MaHang HangHoa))
3.9 : Hiển thị tất cả mặt hàng trên phiếu vận chuyển có số phiếu là 01.
πMaHang,TenHang
(σSoPhieuChuyen=’01’ (HangHoa MaHang ChiTietHoaDon ⋈ ⋈ MaHoaDon PhieuChuyenHang))
4
Trang 73.10:Hiển thị tất cả mặt hàng trên phiếu vận chuyển có số phiếu là 01.
πMaHang,TenHang(
σSoPhieuChuyen=’01’(HangHoa⋈MaHang ChiTietHoaDon
⋈ MaHoaDon Hoa Don PhieuChuyenHang)) ⋈
3.11: Hiển thị nhân viên có tên là Hùng,địa chỉ Quảng Nam,gồm mã nhân viên,tên nhân viên,ngày sinh, địa chỉ ,bộ phận
πMaNV,HoTen,NgaySinh,DiaChi,MoTaKhac
(σ HoTen=’Hùng’ and DiaChi=’Quảng Nam’ (NhanVien)) 3.12:Thống kê số lượng hàng đã bán theo từng mặt hàng, gồm mã hàng,tên hàng,số lượng.
πMaHang,TenHang,Sum(Soluong)
(σ HangHoa MaHang ChiTietHoaDon) ⋈
(σDaThanhToan=’1’)
(MaHoaDon ChiTietHoaDon HoaDon) ⋈
3.13 Hiển thị các nhân viên vận chuyển hợp đồng bới công ty.
πNhanVien.MaNV, NhanVien.HoTen, NhanVien.DiaCHi,
NhanVien.NgaySinh, NhanVien.DienThoai,
NhanVien.MoTaKhac(NhanVien)
3.14
COUNT(PhieuChuyenHang.SoPhieuChuyen)
(σPhieuChuyenHang.TinhTrangChuyen=‘Chưachuyểnhàng’/\
CONVERT(DATE,PhieuChuyenHang.NgayChuyen)=CONVERT(DA TE,GETDATE()))(PhieuChuyenHang)
3.15
π MaNV, COUNT(SoPhieuChuyen) AS SoLuongDonHang
(PhieuChuyenHang NhanVien) ⋈
σ NgayHetHD > CONVERT(DATE, GETDATE()) (NhanVien)
3.16
5
Trang 8πKhachHang.MaKH,KhachHang.HoTen,KhachHang.DienThoai,Khac hHang.DiaChi(σKhachHang.MaKH = HoaDon.MaHD /\
KhachHang.DienThoai = ‘0905222507’ /\ CONVERT(DATE, HoaDon.NgayLapHD) = CONVERT(DATE, DATEADD(DAY, -1, GETDATE()))(KhachHang HoaDon) ⋈
4.Viết câu lệnh SQL
4.1 Cài đặt mô hình quan hệ câu 2 vào SQL SERVER
create database QLCT
Tạo ba ng KhachHang
CREATE TABLE KhachHang (
MaKH NVARCHAR( )10NOT NULLPRIMARY KEY,
HoTen NVARCHAR( )50NOT NULL,
DiaChi NVARCHAR(255),
DienThoai NVARCHAR( ),10
MoTaKhach NVARCHAR(255),
);
Tạo ba ng HangHoa
CREATE TABLE HangHoa (
MaHang NVARCHAR( )10NOT NULLPRIMARY KEY,
TenHang NVARCHAR( )50NOT NULL,
MoTaHang NVARCHAR(255),
ThoiGianBaoHanh DATE,
NhaSanXuat NVARCHAR( ),50
SoLuongHienCo INT,
DonGia DECIMAL( , )18 3
);
Tạo ba ng PhieuDatHang
CREATE TABLE PhieuDatHang(
SoPhieuDH NVARCHAR( )10NOT NULLPRIMARY KEY,
MaKH NVARCHAR( )10NOT NULL, Khóa ngoại tham chiế6u đế6n KhachHang
Tong INT,
NgayTao date,
FOREIGN KEY (MaKH)REFERENCES KhachHang(MaKH),
);
CREATE TABLE ChiTietPhieuDatHang(
SoPhieuDH NVARCHAR( ),10
MaHang NVARCHAR( ),10
SoLuong INT,
primary key(SoPhieuDH, MaHang),
foreign key (SoPhieuDH) references PhieuDatHang(SoPhieuDH),
foreign key (MaHang )references HangHoa(MaHang),
)
Tạo ba ng NhanVien
CREATE TABLE NhanVien (
MaNV NVARCHAR( )10NOT NULLPRIMARY KEY,
HoTen NVARCHAR( ),50
DiaChi NVARCHAR(255),
NgaySinh DATE,
DienThoai NVARCHAR( ),10
NgayHetHD DATE,
6
Trang 9Tạo ba ng HoaDon
CREATE TABLE HoaDon(
MaHoaDon NVARCHAR( )10NOT NULLPRIMARY KEY,
NgayLapHD DATE,
MaNV NVARCHAR( ),10
TongTienThanhToan DECIMAL( , ),18 3
DaThanhToan BIT,
GhiChu NVARCHAR(255),
foreign key (MaHoaDon) references PhieuDatHang(SoPhieuDH),
foreign key (MaNV )references NhanVien(MaNV),
);
CREATE TABLE ChiTietHoaDon(
MaHang NVARCHAR( ),10
MaHoaDon NVARCHAR( ),10
SoLuong INT,
DonGia INT,
primary key(MaHoaDon, MaHang),
foreign key (MaHoaDon) references HoaDon(MaHoaDon),
foreign key (MaHang )references HangHoa(MaHang),
);
Tao ba ng PhieuChuyenHang
CREATE TABLE PhieuChuyenHang (
SoPhieuChuyen NVARCHAR( )10NOT NULLPRIMARY KEY,
MaHoaDon NVARCHAR( )10NOT NULL, Khóa ngoại tham chiế6u đế6n PhieuDH
SoHieuNguoiChuyen NVARCHAR( )10NOT NULL, Khóa ngoại tham chiế6u đế6n
NhanVien
NgayChuyen DATE,
TinhTrangChuyen NVARCHAR( ),50
FOREIGN KEY (MaHoaDon) REFERENCES HoaDon(MaHoaDon),
FOREIGN KEY (SoHieuNguoiChuyen) REFERENCES NhanVien(MaNV),
);
4.2 Nhập dữ liệu vào các bảng(tối thiểu 10 dòng)
KhachHang
INSERT INTO KhachHang(MaKH, HoTen DiaChi DienThoai MoTaKhach, , , )
VALUES
('KH01', 'Nguyen Van A', '123 Duong ABC','0123456789','Khach hang moi'),
('KH02', 'Tran Thi B', '456 Duong XYZ', '0987654321', 'Khach hang xuat sac'),
('KH03', 'Le Van C', '789 Duong LMN','0123456789','Khach hang than thien'),
('KH04', 'Pham Thi D', '101 Duong PQR', '0987654321', 'Khach hang tiem nang'),
('KH05', 'Hoang Van E', '202 Duong STU','0123456789','Khach hang VIP'),
('KH06', 'Doan Van F', '303 Duong VWX', '0987654321', 'Khach hang uu dai'),
('KH07', 'Trinh Thi G', '404 Duong YZA','0123456789','Khach hang than quen'),
('KH08', 'Ngo Van H', '505 Duong BCW', '0987654321', 'Khach hang moi'),
('KH09', 'Dinh Van I', '606 Duong DEF', '0123456789', 'Khach hang xuat sac'),
('KH10', 'Lam Thi K', '707 Duong GHI', '0987654321', 'Khach hang than thien')
;
HangHoa
INSERT INTO HangHoa (MaHang TenHang MoTaHang ThoiGianBaoHanh NhaSanXuat , , , , ,
SoLuongHienCo, DonGia)
VALUES
('MH01', 'Laptop Dell', 'Laptop Dell moi nhat','2023-12-31','Dell', 50 ,
15000000),
('MH02', 'Smartphone Samsung' 'Dien thoai Samsung moi', ,'2023-12-31',
'Samsung', 30 8000000, ),
('MH03', 'Tai nghe Sony', 'Tai nghe chong on','2023-12-31','Sony', 20 ,
1000000),
('MH04', 'TV LG', 'TV 4K','2023-12-31','LG', 10 12000000, ),
('MH05', 'May tinh HP', 'May tinh de ban','2023-12-31','HP', 15 20000000, ),
7
Trang 10('MH07', 'Loa JBL', 'Loa Bluetooth','2023-12-31','JBL', 40 1500000, ),
('MH08', 'Quat Panasonic' 'Quat tiet trung', ,'2023-12-31','Panasonic', 12 ,
500000),
('MH09', 'May say Braun', 'May say toc nhanh','2023-12-31','Braun', 8 ,
800000),
('MH10', 'Tu lanh Toshiba' 'Tu lanh dung tich lon', ,'2023-12-31','Toshiba',
5, 10000000)
;
PhieuDatHang
INSERT INTO PhieuDatHang(SoPhieuDH, MaKH Tong NgayTao, , )
VALUES
('HD01', 'KH01', 15000000 ,'2023-12-15'),
('HD02', 'KH02', 8000000 '2023-12-16', ),
('HD03', 'KH03', 1000000 '2023-12-17', ),
('HD04', 'KH04', 12000000 ,'2023-12-18'),
('HD05', 'KH05', 20000000 ,'2023-12-19'),
('HD06', 'KH06', 5000000 '2023-12-20', ),
('HD07', 'KH07', 1500000 '2023-12-21', ),
('HD08', 'KH08', 500000 '2023-12-22', ),
('HD09', 'KH09', 8000000 '2023-12-23', ),
('HD10', 'KH10', 1000000 '2023-12-24', )
;
ChiTietPhieuDatHang
INSERT INTO ChiTietPhieuDatHang(SoPhieuDH, MaHang SoLuong, )
VALUES
('HD01', 'MH01', ), 2
('HD02', 'MH02', ), 1
('HD03', 'MH03', ), 3
('HD04', 'MH04', ), 2
('HD05', 'MH05', ), 1
('HD06', 'MH06', ), 4
('HD07', 'MH07', ), 2
('HD08', 'MH08', ), 1
('HD09', 'MH09', ), 3
('HD10', 'MH10', ) 2
;
NhanVien
INSERT INTO NhanVien(MaNV, HoTen DiaChi NgaySinh DienThoai NgayHetHD , , , , ,
MoTaKhac)
VALUES
('NV01', 'Tran Van X', '123 Duong MNO', '1990-01-01' '0123456789' '2023-12-, ,
31', 'Nhan vien quan ly'),
('NV02', 'Le Thi Y', '456 Duong PQR','1995-05-15','0987654321','2023-12-31',
'Nhan vien ban hang'),
('NV03', 'Nguyen Van Z', '789 Duong STU','1988-10-20','0123456789',
'2023-12-31', 'Nhan vien ke toan'),
('NV04', 'Doan Van K', '101 Duong VWX', '1992-03-08' '0987654321' '2023-12-, ,
31', 'Nhan vien IT'),
('NV05', 'Pham Thi L', '202 Duong YZA', '1985-12-25' '0123456789' '2023-12-, ,
31', 'Nhan vien quan ly'),
('NV06', 'Trinh Van M', '303 Duong BCW','1993-06-30','0987654321' '2023-12-,
31','Nhan vien ban hang'),
('NV07', 'Dinh Thi N', '404 Duong DEF' '1982-09-12' '0123456789' '2023-12-, , ,
31', 'Nhan vien ke toan'),
('NV08', 'Ngo Van P', '505 Duong GHI', '1997-04-18' '0987654321' '2023-12-, ,
31', 'Nhan vien IT'),
('NV09', 'Lam Van Q', '606 Duong JKL', '1991-07-05' '0123456789' '2023-12-, ,
31', 'Nhan vien quan ly'),
('NV10', 'Do Thi R', '707 Duong MNO','1987-02-28','0987654321','2023-12-31',
'Nhan vien ban hang')
;
HoaDon
8
Trang 11VALUES
('HD01', '2023-12-15', 'NV01', 15000000 0 , ,'Hoa don mua hang'),
('HD02', '2023-12-16', 'NV02', 8000000 1 , ,'Hoa don thanh toan'),
('HD03', '2023-12-17', 'NV03', 1000000 0 , ,'Hoa don mua hang'),
('HD04', '2023-12-18', 'NV04', 12000000 1 , ,'Hoa don thanh toan'),
('HD05', '2023-12-19', 'NV05', 20000000 0 , ,'Hoa don mua hang'),
('HD06', '2023-12-20', 'NV06', 5000000 0 , ,'Hoa don mua hang'),
('HD07', '2023-12-21', 'NV07', 1500000 1 , ,'Hoa don thanh toan'),
('HD08', '2023-12-22', 'NV08', 500000 0 , ,'Hoa don mua hang'),
('HD09', '2023-12-23', 'NV09', 8000000 0 , ,'Hoa don mua hang'),
('HD10', '2023-12-24', 'NV10', 1000000 1 , ,'Hoa don thanh toan')
;
ChiTietHoaDon
INSERT INTO ChiTietHoaDon(MaHoaDon, MaHang SoLuong DonGia, , )
VALUES
('HD01', 'MH01', , 2 15000000),
('HD02', 'MH02', , 1 8000000),
('HD03', 'MH03', , 3 1000000),
('HD04', 'MH04', , 2 12000000),
('HD05', 'MH05', , 1 20000000),
('HD06', 'MH06', , 4 5000000),
('HD07', 'MH07', , 2 1500000),
('HD08', 'MH08', , 1 500000),
('HD09', 'MH09', , 3 8000000),
('HD10', 'MH10', , 2 1000000)
;
INSERT INTO PhieuChuyenHang(SoPhieuChuyen, MaHoaDon SoHieuNguoiChuyen , ,
NgayChuyen, TinhTrangChuyen)
VALUES
('PC01', 'HD01', 'NV01', '2023-12-16', 'Dang chuyen hang'),
('PC02', 'HD02', 'NV02', '2023-12-17', 'Da nhan hang'),
('PC03', 'HD03', 'NV03', '2023-12-18', 'Dang chuyen hang'),
('PC04', 'HD04', 'NV04', '2023-12-19', 'Da nhan hang'),
('PC05', 'HD05', 'NV05', '2023-12-20', 'Dang chuyen hang'),
('PC06', 'HD06', 'NV06', '2023-12-21', 'Dang chuyen hang'),
('PC07', 'HD07', 'NV07', '2023-12-22', 'Da nhan hang'),
('PC08', 'HD08', 'NV08', '2023-12-23', 'Dang chuyen hang'),
('PC09', 'HD09', 'NV09', '2023-12-24', 'Dang chuyen hang'),
('PC10', 'HD10', 'NV10', '2023-12-25', 'Da nhan hang')
;
4.3 Viết câu lệnh SQL cho các câu ở Câu 3
3.1
SELECT MaHang, TenHang SoLuongHienCo MoTaHang , ,
FROM HangHoa
3.2
SELECT H.MaHang H TenHang,
FROM ChiTietPhieuDatHang p HangHoa H,
WHERE H.MaHang P MaHang = AND P SoPhieuDH='PDH01'
3.3
SELECT *
FROM PhieuDatHang P
WHERECONVERT(DATE, p NgayTao ) =CONVERT(DATE,GETDATE());
3.4
TÍNH TỔ NG TIỀON Ở BA NG HD
UPDATE HoaDon
SET TongTienThanhToan =(
SELECTSUM(SoLuong DonGia* )
FROM ChiTietHoaDon
WHERE ChiTietHoaDon MaHoaDon HoaDon = MaHoaDon
9
Trang 12SELECT MaHoaDon, TongTienThanhToan
FROM HoaDon
WHERE MaHoaDon='HD01'
3.5 :
SELECT KhachHang.MaKH KhachHang, HoTen KhachHang, DienThoai
FROM PhieuDatHang KhachHang,
WHERE PhieuDatHang.MaKH KhachHang MaKH=
AND PhieuDatHang SoPhieuDH ='HD02';
3.6 :
SELECTHoaDon MaHoaDon HoaDon , TongTienThanhToan AS TongTienBanDuoc
FROM HoaDon, ChiTietHoaDon PhieuChuyenHang,
WHERE HoaDon.MaHoaDon ChiTietHoaDon= MaHoaDon
AND HoaDon MaHoaDon PhieuChuyenHang = MaHoaDon
AND PhieuChuyenHang TinhTrangChuyen =N'Da nhan hang'
GROUP BY HoaDon.MaHoaDon HoaDon TongTienThanhToan, ;
3.7
SELECT ChiTietHoaDon.MaHang HangHoa, TenHang,
ChiTietHoaDon SoLuong , ChiTietHoaDon.DonGia
FROM ChiTietHoaDon HangHoa,
WHERE ChiTietHoaDon.MaHang HangHoa= MaHang
AND ChiTietHoaDon MaHoaDon ='HD05';
3.8
SELECT k.MaKH k HoTen , AS TenKhachHang k, DienThoai, pdh.SoPhieuDH,
c MaHang h TenHang ,
FROM
KhachHang k,
PhieuDatHang pdh,
ChiTietPhieuDatHang c,
HangHoa h
WHERE
k.MaKH = pdh.MaKH
AND pdh SoPhieuDH c SoPhieuDH =
AND c MaHang h MaHang=
AND k HoTen like N'%Dũng%';
3.9
SELECT
pch SoPhieuChuyen ,
pch MaHoaDon ,
kh.HoTen AS TenKhachHang,
nv.HoTen AS TenNhanVien
FROM
PhieuChuyenHang pch,
PhieuDatHang pdh,
ChiTietPhieuDatHang ctpdh,
KhachHang kh,
NhanVien nv,
HangHoa hh
WHERE
pch.MaHoaDon = pdh.SoPhieuDH
AND pdh SoPhieuDH ctpdh = SoPhieuDH
AND pdh MaKH kh MaKH =
AND pch SoHieuNguoiChuyen nv = MaNV
AND ctpdh MaHang hh MaHang =
AND pch TinhTrangChuyen ='Da nhan hang';
3.10
SELECT
pch SoPhieuChuyen ,
hh MaHang ,
10
Trang 13ctpdh SoLuong.
FROM
PhieuChuyenHang pch,
PhieuDatHang pdh,
ChiTietPhieuDatHang ctpdh,
HangHoa hh
WHERE
pch.SoPhieuChuyen ='PC01'
AND pch MaHoaDon pdh SoPhieuDH =
AND pdh SoPhieuDH ctpdh = SoPhieuDH
AND ctpdh MaHang hh MaHang = ;
3.11
SELECT n.MaNV n HoTen n NgaySinh n DiaChi n MoTaKhac, , , ,
FROM NhanVien n
WHERE N.HoTen N'Hung' = AND n DiaChi =N'Qua ng Nam'
3.12
SELECT hh.MaHang hh TenHang , ,SUM(cthd SoLuong ) AS SoLuong
FROM HangHoa hh, ChiTietHoaDon cthd HoaDon hd,
WHERE hh.MaHang cthd MaHang=
AND cthd MaHoaDon hd = MaHoaDon
AND hd DaThanhToan 1 =
GROUP BY hh.MaHang hh TenHang,
3.13
SELECT *
FROM NhanVien nv
WHERE nv.NgayHetHD >CONVERT(DATE,GETDATE()) AND nv MoTaKhac N'Nhan vien van =
chuyen'
3.14
SELECTCOUNT(*)AS SoLuongDonHang
FROM PhieuChuyenHang pch
WHERE pch.NgayChuyen =CONVERT(DATE,GETDATE())
3.15
SELECT nv.MaNV ,COUNT(pch SoPhieuChuyen ) AS SoLuongDonHang
FROM PhieuChuyenHang pch NhanVien nv,
WHERE EXISTS(
SELECT*
FROM NhanVien
WHERE NhanVien MaNV pch = SoHieuNguoiChuyen
) AND nv MaNV pch SoHieuNguoiChuyen = AND nv NgayHetHD >CONVERT(DATE,
GETDATE())
GROUP BY nv.MaNV
3.16
SELECT kh.MaKH kh HoTen kh DienThoai, , , kh.DiaChi
FROM KhachHang kh, PhieuDatHang pdh
WHERE kh.MaKH pdh MaKH = AND kh DienThoai ='0905222507'AND
CONVERT(DATE, pdh.NgayTao)=CONVERT(DATE,DATEADD DAY( , - ,GETDATE()))
4.5 Hiển thị các đơn đặt hàng (PHIEUDONHAG) đã
đặt hàng nhưng không thành công
11