MÔ HÌNH QUẢN LÝ BÁN HÀNG VÀ CÁC CÂU LỆNH SQL
TABLE KHÁCH HÀNG LÀ CÔNG TY CỦA KHÁCH HÀNG
Cho cơ sở dữ diệu sau được sử dụng để quản lý công tác giao hàng trong một công ty
kinh doanh.
trong đó:
• Bảng NHACUNGCAP lưu trữ dữ liệu về các đối tác cung cấp hàng cho công ty.
• Bảng MATHANG lưu trữ dữ liệu về các mặt hàng hiện có trong công ty.
• Bảng LOAIHANG phân loại các mặt hàng hiện có.
• Bảng NHANVIEN có dữ liệu là các thông tin về nhân viên làm việc trong công ty
• Bảng KHACHHANG được sử dụng để lưu trữ các thông tin về khách hàng của công
ty.
• Khách hàng đặt hàng cho công ty thông qua các đơn đặt hàng. Thông tin chung về các
đơn đặt hàng được lưu trữ trong bảng DONDATHANG (Mỗi một đơn đặt hàng phải
do một nhân viên của công ty lập và do đó bảng này có quan hệ với bảng
NHANVIEN)
• Thông tin chi tiết của các đơn đặt hàng (đặt mua mặt hàng gì, số lượng, giá cả,…)
được lưu trữ trong bảng CHITIETDATHANG, bảng này có quan hệ với hai bảng
DONDATHANG và MAHANG.
*CÂU LỆNH SQL ĐỂ TẠO BẢNG VÀ NHẬP DỮ LIỆU:
CREATE DATABASE QLBH
CREATE TABLE KHACHHANG
(
MaKhachHang INT
CONSTRAINT PK_KHACHHANG_MaKhachHang PRIMARY KEY,
TenCongTy NVARCHAR(50),
TenGiaoDich NVARCHAR(20),
DiaChi NVARCHAR(50),
Email VARCHAR(30),
DienThoai VARCHAR(15),
Fax VARCHAR(15),
)
ON UPDATE CASCADE,
CONSTRAINT FK_MATHANG_MaCongTy FOREIGN KEY(MaCongTy)
REFERENCES NHACUNGCAP(MaCongTy)
ON DELETE CASCADE
ON UPDATE CASCADE,
)
CREATE TABLE NHANVIEN
(
MaNhanVien CHAR(4)
CONSTRAINT PK_NHANVIEN_MaKhachHang PRIMARY KEY,
Ho NVARCHAR(40),
Ten NVARCHAR(10),
NgaySinh DATETIME,
NgayLamViec DATETIME,
DiaChi NVARCHAR(60),
DienThoai VARCHAR(15),
LuongCoBan NUMERIC(10,2),
PhuCap NUMERIC(10,2),
)
CREATE TABLE DONDATHANG
(
SoHoaDon INT
CONSTRAINT PK_DONDATHANG_SoHoaDon PRIMARY KEY,
MaKhachHang INT,
MaNhanVien CHAR(4),
NgayDatHang DATETIME,
NgayGiaoHang DATETIME,
NgayChuyenHang DATETIME,
NoiGiaoHang NVARCHAR(80),
CONSTRAINT FK_DONDATHANG_MaKhachHang FOREIGN KEY(MaKhachHang)
INSERT INTO LOAIHANG VALUES('DC', N'Dụng cụ học tập');
INSERT INTO KHACHHANG VALUES(1, N'Công ty sữa Việt Nam', 'VINAMILK', N'Hà
Nội', '', '04-891135', '');
INSERT INTO KHACHHANG VALUES(2, N'Công ty may mặc Việt Tiến', 'VIETTIEN',
N'Sài Gòn', '','08-808803','');
INSERT INTO KHACHHANG VALUES(3, N'Tổng công ty thực phẩm dinh dưỡng
NUTRIFOOD', 'NUTRIFOOD', N'Sài Gòn', '','08-809890','');
INSERT INTO KHACHHANG VALUES(4, N'Công ty điện máy Hà Nội', 'MACHANOI',
N'Hà Nội', '','04-898399','');
INSERT INTO KHACHHANG VALUES(5, N'Hãng hàng không Việt
Nam','VIETNAMAIRLINES',N'Sài Gòn','','08-888888','');
INSERT INTO KHACHHANG VALUES(6, N'Công ty dụng cụ học sinh MIC','MIC', N'Hà
Nội','','04-804408','');
INSERT INTO NHANVIEN VALUES('A001', N'Đậu Tố', N'Anh',
'03/07/1986','03/01/2009', N'Quy Nhơn', '056-647995', 10000000, 1000000);
INSERT INTO NHANVIEN VALUES('H001', N'Lê Thị Bích', N'Hoa',
'05/20/1986','03/01/2009', N'An Khê', '', 9000000, 1000000);
INSERT INTO NHANVIEN VALUES('H002', N'Ông Hoàng', N'Hải',
'08/11/1987','03/01/2009', N'Đà Nẵng', '0905-611725', 12000000, 0);
INSERT INTO NHANVIEN VALUES('H003', N'Trần Nguyễn Đức', N'Hồng',
'04/09/1986','03/01/2009', N'Quy Nhơn','', 11000000, 0);
INSERT INTO NHANVIEN VALUES('P001', N'Nguyễn Hồi', N'Phong', '06/14/1986',
'03/01/2009', N'Quy Nhơn','056-891135', 13000000, 0);
INSERT INTO NHANVIEN VALUES('Q001', N'Trương Thị Thế', N'Quang', '06/17/1987',
'03/01/2009', N'Ayunpa','0979-792176', 10000000, 500000);
INSERT INTO NHANVIEN VALUES('T001', N'Nguyễn Đức', N'Thắng', '09/13/1984',
'03/01/2009', N'Phù Mỹ', '0955-593893', 1200000,0);
INSERT INTO NHANVIEN VALUES('D001', N'Nguyễn Minh', N'Đăng', '12/29/1987',
'03/01/2009', N'Quy Nhơn','0905-779919', 14000000, 0);
INSERT INTO NHANVIEN VALUES('M001', N'Hồ Thị Phương', N'Mai', '09/14/1987',
75000);
INSERT INTO MATHANG VALUES('DT01', N'LCD Nec', 'DQV', 'DT', 10, N'Cái',
3100000);
INSERT INTO MATHANG VALUES('DT02', N'Ổ cứng 80GB', 'DQV', 'DT', 20, N'Cái',
800000);
INSERT INTO MATHANG VALUES('DT03', N'Bàn phím Mitsumi', 'DQV', 'DT', 20 ,
N'Cái', 150000);
INSERT INTO MATHANG VALUES('DT04', N'Tivi LCD', 'DQV', 'DT', 10, N'Cái',
20000000);
INSERT INTO MATHANG VALUES('DT05', N'Máy tính xách tay NEC', 'DQV', 'DT', 60,
N'Cái', 18000000);
INSERT INTO MATHANG VALUES('NT01', N'Bàn ghế ăn', 'DAF', 'NT', 20, N'Bộ',
1000000);
INSERT INTO MATHANG VALUES('NT02', N'Bàn ghế Salon', 'DAF', 'NT', 20, N'Bộ',
150000);
INSERT INTO MATHANG VALUES('DC01', N'Vở học sinh cao cấp', 'GOL', 'DC', 20000 ,
N'Ram', 48000);
INSERT INTO MATHANG VALUES('DC02', N'Viết bi học sinh', 'GOL', 'DC', 2000 ,
N'Cây', 2000);
INSERT INTO MATHANG VALUES('DC03', N'Hộp màu tô', 'GOL', 'DC', 2000 , N'Hộp',
7500);
INSERT INTO MATHANG VALUES('DC04', N'Viết mực cao cấp', 'GOL', 'DC', 2000 ,
N'Cây', 20000);
INSERT INTO MATHANG VALUES('DC05', N'Viết chì 2B', 'GOL', 'DC', 2000 , N'Cây',
3000);
INSERT INTO MATHANG VALUES('DC06', N'Viết chì 4B', 'GOL', 'DC', 2000 , N'Cây',
6000);
INSERT INTO DONDATHANG VALUES(1, 1, 'A001', '09/20/2007', '10/01/2007',
'10/01/2007', N'Hà Nội');
INSERT INTO DONDATHANG VALUES(2, 1, 'H001', '09/20/2007', '10/01/2007',
INSERT INTO CHITIETDATHANG VALUES(1, 'TP03', 12000, 5, 0);
INSERT INTO CHITIETDATHANG VALUES(1, 'TP06', 3000, 50, 0);
INSERT INTO CHITIETDATHANG VALUES(1, 'TP07', 40000,100, 0);
Sử dụng câu lệnh SELECT để thực hiện các yêu cầu sau:
1. Cho biết danh sách các đối tác cung cấp hàng cho công ty
2. Mã hàng, tên hàng và số lượng của các mặt hàng hiện có trong công ty
3. Họ tên, địa chỉ và năm bắt đầu làm việc của các nhân viên trong cty
4. Địa chỉ, điện thoại của nhà cung cấp có tên giao dịch VINAMILK
5. Mã và tên của các mặt hàng có giá trị lớn hơn 100000 và số lượng hiện có ít hơn 50
6. Cho biết mỗi mặt hàng trong công ty do ai cung cấp
7. Công ty Việt Tiến đã cung cấp những mặt hàng nào
8. Loại hàng thực phẩm do những công ty nào cung cấp, địa chỉ của công ty đó
9. Những khách hàng nào (tên giao dịch) đã đặt mua mặt hàng sữa hộp của công ty
10.Đơn đặt hàng số 1 do ai đặt và do nhân viên nào lập, thời gian và địa điểm giao hàng
là ở đâu
11.Hãy cho biết số tiền lương mà công ty phải trả cho mỗi nhân viên là bao nhiêu
(lương=lương cơ bản+phụ cấp)
12.Trong đơn đặt hàng số 3 đặt mua những mạt hàng nào và số tiền mà khách hàng phải
trả cho mỗi mặt hàng là bao nhiêu(số tiền phải trả=số lượng x giá bán – số lượng x giá
bán x mức giảm giá/100)
13.Hãy cho biết có những khách hàng nào lại chính là đối tác cung cấp hàng cho công ty
(tức là có cùng tên giao dịch)
14.Trong công ty có những nhân viên nào có cùng ngày sinh
15.Những đơn hàng nào yêu cầu giao hàng ngay tại công ty đặt hàng và những đơn đó là
của công ty nào
16.Cho biết tân công ty, tên giao dịch, địa chỉ và điện thoại của các khách hàng và nhà
cung cấp hàng cho công ty
17.Những mặt hàng nào chưa từng được khách hàng đặt mua
18.Những nhân viên nào của công ty chưa từng lập hóa đơn đặt hàng nào
19.Những nhân viên nào của công ty có lương cơ bản cao nhất
(giá trị trường NOIGIAOHANG bằng NULL).
36.Cập nhật lại dữ liệu trong bảng KHACHHANG sao cho nếu tên công ty và tên giao
dịch của khách hàng trùng với tên công ty và tên giao dịch của một nhà cung cấp
nào đú thì địa chỉ, điện thoại, fax và e-mail phải giống nhau.
37. Tăng lương lên gấp rưỡi cho những nhõn viên bán được số lượng hàng nhiều hơn
100 trong năm 2003.
38. Tăng phụ cấp lên bằng 50% lương cho những nhõn viân bán được hàng nhiều
nhất.
39. Giảm 25% lương của những nhân viân trong năm 2003 không lập được bất kỳ đơn
đặt hàng nào.
40. Giả sử trong bảng DONDATHANG có thâm trường SOTIEN cho biết số tiền mà
khách hàng phải trả trong mỗi đơn đặt hàng. Hãy tớnh giá trị cho trường này.
Thực hiện các yêu cầu dưới đây bằng câu lệnh DELETE.
41. Xoá khỏi bảng NHANVIEN những nhân viân đó làm việc trong công ty quá 40
năm.
42. Xoá những đơn đặt hàng trước năm 2000 ra khỏi cơ sở dữ liệu.
43. Xoá khỏi bảng LOAIHANG những loại hàng hiện không có mặt hàng.
44. Xoá khỏi bảng KHACHHANG những khách hàng hiện không cú bất kỳ đơn đặt
hàng nào cho cơng ty.
45. Xoá khỏi bảng MATHANG những mặt hàng có số lượng bằng 0 và không được đặt
mua trong bất kỳ đơn đặt hàng nào.
Bài làm:
CÂU 1:
/* Cho biết danh sách các đối tác cung cấp hàng cho công ty*/
SELECT * FROM NHACUNGCAP
SELECT * FROM MATHANG
SELECT * FROM NHANVIEN
SELECT DISTINCT NHACUNGCAP.MACONGTY, TENCONGTY
FROM NHACUNGCAP, MATHANG
WHERE NHACUNGCAP.MACONGTY=MATHANG.MACONGTY
FROM NHACUNGCAP, MATHANG
WHERE MATHANG.MACONGTY = NHACUNGCAP.MACONGTY AND
TENCONGTY LIKE N'%Việt Tiến'
CÂU 8
/* Loại hàng thực phẩm do những công ty nào cung cấp, địa chỉ của công ty đó*/
SELECT DISTINCT MATHANG.MALOAIHANG, TENLOAIHANG, TENCONGTY,
DIACHI
FROM NHACUNGCAP, LOAIHANG, MATHANG
WHERE LOAIHANG.MALOAIHANG=MATHANG.MALOAIHANG AND
MATHANG.MACONGTY = NHACUNGCAP.MACONGTY AND
TENLOAIHANG=N'THỰC PHẨM'
CÂU 9
/* Những khách hàng nào (tên giao dịch) đã đặt mua mặt hàng sữa hộp của công ty*/
SELECT KHACHHANG.MAKHACHHANG, TENGIAODICH, TENCONGTY,
TENHANG
FROM KHACHHANG, DONDATHANG, MATHANG, CHITIETDATHANG
WHERE KHACHHANG.MAKHACHHANG=DONDATHANG.MAKHACHHANG AND
DONDATHANG.SOHOADON=CHITIETDATHANG.SOHOADON AND
CHITIETDATHANG.MAHANG=MATHANG.MAHANG AND
TENHANG LIKE N'SỬA HỘP%'
CÂU 10
/* Đơn đặt hàng số 1 do ai đặt và do nhân viên nào lập, thời gian và địa điểm giao hàng là ở
đâu*/
SELECT * FROM NHANVIEN
SELECT * FROM KHACHHANG
SELECT * FROM DONDATHANG
SELECT KHACHHANG.MAKHACHHANG, TENCONGTY, HO,
TEN,NGAYGIAOHANG, NOIGIAOHANG
FROM KHACHHANG, NHANVIEN, DONDATHANG
WHERE NHANVIEN.MANHANVIEN=DONDATHANG.MANHANVIEN AND
CÂU 15
/* Những đơn hàng nào yêu cầu giao hàng ngay tại công ty đặt hàng
và những đơn đó là của công ty nào */
SELECT DISTINCT TENCONGTY, DIACHI, NOIGIAOHANG
FROM NHACUNGCAP, DONDATHANG
WHERE NHACUNGCAP.DIACHI=DONDATHANG.NOIGIAOHANG
CÂU 16
/* Cho biết tân công ty, tên giao dịch,
địa chỉ và điện thoại của các khách hàng và nhà cung cấp hàng cho công ty*/
SELECT TENCONGTY, TENGIAODICH, DIACHI, DIENTHOAI FROM KHACHHANG
UNION
SELECT TENCONGTY, TENGIAODICH, DIACHI, DIENTHOAI FROM
NHACUNGCAP
CÂU 17
/* Những mặt hàng nào chưa từng được khách hàng đặt mua*/
SELECT MAHANG,TENHANG FROM MATHANG
WHERE MAHANG NOT IN (SELECT MAHANG FROM CHITIETDATHANG)
CÂU 18
/* Những nhân viên nào của công ty chưa từng lập hóa đơn đặt hàng nào?*/
SELECT MANHANVIEN, HO, TEN FROM NHANVIEN
WHERE MANHANVIEN NOT IN (SELECT MANHANVIEN FROM DONDATHANG)
CÂU 19
Những nhân viên nào của công ty có lương cơ bản cao nhất?
SELECT HO, TEN, LUONGCOBAN
FROM NHANVIEN
WHERE LUONGCOBAN= (SELECT MAX(LUONGCOBAN)
FROM NHANVIEN)
CÂU 20
Tổng số tiền mà khách hàng phải trả cho mỗi đơn đặt hàng là bao nhiêu?
SELECT * FROM DONDATHANG
HAVING COUNT(CHITIETDATHANG.MAHANG)=1
CÁCH 2:
SELECT MAHANG FROM CHITIETDATHANG, DONDATHANG
WHERE CHITIETDATHANG.SOHOADON=DONDATHANG.SOHOADON AND
YEAR(NGAYDATHANG)=2007
GROUP BY MAHANG
HAVING COUNT(MAHANG)=1
CÁCH 3
SELECT MATHANG.MAHANG
FROM MATHANG, DONDATHANG, CHITIETDATHANG
WHERE MATHANG.MAHANG=CHITIETDATHANG.MAHANG AND
CHITIETDATHANG.SOHOADON=DONDATHANG.SOHOADON AND
YEAR(NGAYDATHANG)=2007
GROUP BY MATHANG.MAHANG, TENHANG
HAVING COUNT(CHITIETDATHANG.MAHANG)=1
CÂU 22
/* Mỗi khách hàng phải bỏ ra bao nhiêu tiền để đặt mua hàng của công ty */
SELECT KHACHHANG.MAKHACHHANG, TENCONGTY, TENGIAODICH,
SUM(SOLUONG*GIABAN-((SOLUONG*GIABAN*MUCGIAMGIA)/100))
FROM KHACHHANG, CHITIETDATHANG, DONDATHANG
WHERE KHACHHANG.MAKHACHHANG=DONDATHANG.MAKHACHHANG AND
DONDATHANG.SOHOADON=CHITIETDATHANG.SOHOADON
GROUP BY KHACHHANG.MAKHACHHANG, TENCONGTY, TENGIAODICH
CÂU 23
/*Mỗi nhân viên của công ty đã lập bao nhiêu đơn đặt hàng
(nếu chưa hề lập hóa đơn nào thì cho kết quả là 0)*/
SELECT NHANVIEN.MANHANVIEN, HO, TEN, COUNT(SOHOADON)AS 'SO HOA
DON DA LAP'
FROM NHANVIEN LEFT JOIN DONDATHANG
ON NHANVIEN.MANHANVIEN=DONDATHANG.MANHANVIEN
WHERE MATHANG.MAHANG=CHITIETDATHANG.MAHANG
GROUP BY MATHANG.MAHANG, TENHANG
CÂU 27
/* Nhân viên nào của công ty bán được số lượng hàng nhiều nhất
và số lượng hàng bán được của mhữmg nhân viên này là bao nhiêu*/
CÁCH 1
SELECT NHANVIEN.MANHANVIEN,HO,TEN,SUM(SOLUONG)
FROM (NHANVIEN INNER JOIN DONDATHANG
ON NHANVIEN.MANHANVIEN=DONDATHANG.MANHANVIEN)
INNER JOIN CHITIETDATHANG
ON DONDATHANG.SOHOADON=CHITIETDATHANG.SOHOADON
GROUP BY NHANVIEN.MANHANVIEN,HO,TEN
HAVING SUM(SOLUONG)>=ALL(SELECT SUM(SOLUONG)
FROM (NHANVIEN INNER JOIN DONDATHANG
ON NHANVIEN.MANHANVIEN=DONDATHANG.MANHANVIEN)
INNER JOIN CHITIETDATHANG ON
DONDATHANG.SOHOADON=CHITIETDATHANG.SOHOADON
GROUP BY NHANVIEN.MANHANVIEN,HO,TEN)
CÁCH 2
SELECT NHANVIEN.MANHANVIEN, HO, TEN,
SUM(CHITIETDATHANG.SOLUONG)
FROM NHANVIEN, DONDATHANG, CHITIETDATHANG
WHERE NHANVIEN.MANHANVIEN=DONDATHANG.MANHANVIEN AND
DONDATHANG.SOHOADON=CHITIETDATHANG.SOHOADON
GROUP BY NHANVIEN.MANHANVIEN, HO, TEN
HAVING SUM(SOLUONG)>=ALL(SELECT SUM(SOLUONG)
FROM NHANVIEN, DONDATHANG, CHITIETDATHANG
WHERE NHANVIEN.MANHANVIEN=DONDATHANG.MANHANVIEN AND
DONDATHANG.SOHOADON=CHITIETDATHANG.SOHOADON
GROUP BY NHANVIEN.MANHANVIEN, HO, TEN)
/* Mỗi một loại hàng bao gồm những mặt hàng nào, tổng số lượng của mỗi loại và
tổng số lượng của tất cả các mặt hàng hiện có trong cty*/
SELECT LOAIHANG.MALOAIHANG, LOAIHANG.TENLOAIHANG, MAHANG,
TENHANG, SOLUONG
FROM LOAIHANG, MATHANG
WHERE MATHANG.MALOAIHANG=LOAIHANG.MALOAIHANG
ORDER BY LOAIHANG.MALOAIHANG
COMPUTE SUM(SOLUONG) BY (LOAIHANG.MALOAIHANG)
COMPUTE SUM(SOLUONG)
CÂU 32
/*Thống kê trong năm 2006 mỗi một mặt hàng trong mỗi tháng và trong cả năm bán
được với số lượng bao nhiêu (Yêu cầu kết quả hiểu thị dưới dạng bảng,
hai cột đầu là mã hàng, tên hàng, các cột còn lại tương ứng từ tháng
1 đến tháng 12 và cả năm. Như vậy mỗi dòng trong kết quả cho biết số
lượng hàng bán được mỗi tháng và trong cả năm của mỗi mặt hàng*/
SELECT b.mahang,tenhang,
SUM(CASE MONTH(ngaydathang) WHEN 1 THEN b.soluong
ELSE 0 END) AS Thang1,
SUM(CASE MONTH(ngaydathang) WHEN 2 THEN b.soluong
ELSE 0 END) AS Thang2,
SUM(CASE MONTH(ngaydathang) WHEN 3 THEN b.soluong
ELSE 0 END) AS Thang3,
SUM(CASE MONTH(ngaydathang) WHEN 4 THEN b.soluong
ELSE 0 END) AS Thang4,
SUM(CASE MONTH(ngaydathang) WHEN 5 THEN b.soluong
ELSE 0 END) AS Thang5,
SUM(CASE MONTH(ngaydathang) WHEN 6 THEN b.soluong
ELSE 0 END) AS Thang6,
SUM(CASE MONTH(ngaydathang) WHEN 7 THEN b.soluong
ELSE 0 END) AS Thang7,
SELECT * FROM MATHANG
CÂU 35
/* Cập nhật giá trị của trường NOIGIAOHANG trong bảng DONDATHANG bằng
địa chỉ của khách hàng đối với những đơn đặt hàng chưa xác định được nơi
giao hàng (giá trị trường NOIGIAOHANG bằng NULL).*/
UPDATE DONDATHANG
SET NOIGIAOHANG=DIACHI
FROM KHACHHANG
WHERE DONDATHANG.MAKHACHHANG=KHACHHANG.MAKHACHHANG AND
NOIGIAOHANG=NULL
SELECT * FROM DONDATHANG
CÂU 36
/* Cập nhật lại dữ liệu trong bảng KHACHHANG sao cho nếu tân công ty và
tên giao dịch của khách hàng trùng với tân công ty và tên giao dịch của một nhà
cung cấp nào đó thì địa chỉ, điện thoại, fax và e-mail phải giống nhau.*/
UPDATE KHACHHANG
SET KHACHHANG.DIACHI=NHACUNGCAP.DIACHI,
KHACHHANG.DIENTHOAI=NHACUNGCAP.DIENTHOAI,
KHACHHANG.FAX=NHACUNGCAP.FAX,
KHACHHANG.EMAIL=NHACUNGCAP.EMAIL
FROM NHACUNGCAP
WHERE KHACHHANG.TENCONGTY=NHACUNGCAP.TENCONGTY and
KHACHHANG.TENGIAODICH=NHACUNGCAP.TENGIAODICH
SELECT * FROM KHACHHANG
CÂU 37
/* Tăng lương lên gấp rưỡi cho những nhân viên bán được số lượng hàng nhiều hơn 100
trong năm 2003.*/
UPDATE NHANVIEN
SET LUONGCOBAN=LUONGCOBAN*1.5
WHERE MANHANVIEN IN(SELECT MANHANVIEN
SELECT * FROM NHANVIEN
CÂU 40
/* Giả sử trong bảng DONDATHANG có thêm trường SOTIEN cho biết số tiền mà khách
hàng
phải trả trong mỗi đơn đặt hàng. Hãy tính giá trị cho trường này.*/
ALTER TABLE DONDATHANG ADD SOTIEN INT
UPDATE DONDATHANG
SET SOTIEN=(SELECT
SUM(SOLUONG*GIABAN+SOLUONG*GIABAN*MUCGIAMGIA)
FROM CHITIETDATHANG
WHERE SOHOADON=DONDATHANG.SOHOADON
GROUP BY SOHOADON)
SELECT * FROM DONDATHANG
CÂU 41
/* Xoá khỏi bảng NHANVIEN những nhân viên đã làm việc trong công ty quá 40 năm.*/
DELETE FROM NHANVIEN
WHERE YEAR(GETDATE())-YEAR(NGAYLAMVIEC)>40
SELECT * FROM NHANVIEN
CÂU 42
/* Xoá những đơn đặt hàng trước năm 2000 ra khỏi cơ sở dữ liệu.*/
DELETE FROM DONDATHANG
WHERE NGAYDATHANG<'1/1/2000'
SELECT * FROM DONDATHANG
CÂU 43
/* Xoá khỏi bảng LOAIHANG những loại hàng hiện không có mặt hàng.*/
DELETE FROM LOAIHANG
WHERE NOT EXISTS (SELECT MALOAIHANG
FROM MATHANG
WHERE MALOAIHANG=LOAIHANG.MALOAIHANG)
SELECT * FROM LOAIHANG