SinhVienCNTT.Net
Thứ Tư, Tháng 4 22, 2026
  • Login
No Result
View All Result
  • Trang chủ
  • Bài viết nổi bật
  • Security
    • Kỹ thuật phân tích mã độc
    • CEH v13
  • Các môn học đại học
    • Các môn đại cương
      • Nhập môn mạng máy tính
      • Nhập môn lập trình
      • Hệ điều hành
    • Ngành An toàn thông tin
      • Lập trình hệ thống
    • Ngành Mạng máy tính & Truyền thông dữ liệu
  • Tài liệu CNTT
  • Liên hệ
Gửi email
  • Trang chủ
  • Bài viết nổi bật
  • Security
    • Kỹ thuật phân tích mã độc
    • CEH v13
  • Các môn học đại học
    • Các môn đại cương
      • Nhập môn mạng máy tính
      • Nhập môn lập trình
      • Hệ điều hành
    • Ngành An toàn thông tin
      • Lập trình hệ thống
    • Ngành Mạng máy tính & Truyền thông dữ liệu
  • Tài liệu CNTT
  • Liên hệ
No Result
View All Result
SinhVienCNTT.Net
No Result
View All Result
Home Các môn học đại học

Đáp án bài tập thực hành CSDL – Quản lý bán hàng

Nhà ngoại cảm by Nhà ngoại cảm
2 Tháng 9, 2024
in Các môn học đại học
Reading Time: 82 mins read
1
Đáp án bài tập thực hành CSDL – Quản lý bán hàng
Bài viết này là phần 1/2 thuộc series Cơ sở dữ liệu
  • Phần 1: Đáp án bài tập thực hành CSDL – Quản lý bán hàng
  • Phần 2: Đáp án bài tập thực hành CSDL – Quản lý giáo vụ

KHACHHANG (MAKH, HOTEN, DCHI, SODT, NGSINH, DOANHSO, NGDK)
NHANVIEN (MANV, HOTEN, SODT, NGVL)
SANPHAM (MASP, TENSP, DVT, NUOCSX, GIA
HOADON (SOHD, NGHD, MAKH, MANV, TRIGIA)
CTHD (SOHD, MASP, SL)

bai tap csdl quan ly ban hang
Bài tập quản lý bán hàng CSDL SQL Server

I. Ngôn ngữ định nghĩa dữ liệu (Data Definition Language) – Khởi tạo cơ sở dữ liệu Quản lý bán hàng

1. Tạo các quan hệ và khai báo các khóa chính, khóa ngoại của quan hệ. Cơ sở dữ liệu Quản lý bán hàng

Download Microsoft SQL Server tại đây.

2. Thêm vào thuộc tính GHICHU có kiểu dữ liệu varchar(20) cho quan hệ SANPHAM.

SQL
ALTER TABLE SANPHAM ADD GHICHU varchar(20)

3. Thêm vào thuộc tính LOAIKH có kiểu dữ liệu là tinyint cho quan hệ KHACHHANG.

SQL
ALTER TABLE KHACHHANG ADD LOAIKH tinyint

4. Sửa kiểu dữ liệu của thuộc tính GHICHU trong quan hệ SANPHAM thành varchar(100).

SQL
ALTER TABLE SANPHAM ALTER COLUMN GHICHU varchar(100)

5. Xóa thuộc tính GHICHU trong quan hệ SANPHAM

SQL
ALTER TABLE SANPHAM DROP COLUMN GHICHU

6. Làm thế nào để thuộc tính LOAIKH trong quan hệ KHACHHANG có thể lưu các giá trị là: “Vang lai”, “Thuong xuyen”, “Vip”, …

SQL
ALTER TABLE KHACHHANG ALTER COLUMN LOAIKH VARCHAR(12)
ALTER TABLE KHACHHANG ADD CONSTRAINT CHK_LOAIKH
   CHECK (LOAIKH IN ('Vang lai', 'Thuong xuyen', 'Vip'))

7. Đơn vị tính của sản phẩm chỉ có thể là (“cay”,”hop”,”cai”,”quyen”,”chuc”)

SQL
ALTER TABLE SANPHAM ADD CONSTRAINT CHK_DVT
CHECK (DVT IN ('cay', 'hop', 'cai', 'quyen', 'chuc'))

8. Giá bán của sản phẩm từ 500 đồng trở lên.

SQL
ALTER TABLE SANPHAM ADD CONSTRAINT CHK_GIA CHECK (GIA >= 500)

9. Mỗi lần mua hàng, khách hàng phải mua ít nhất 1 sản phẩm.

SQL
ALTER TABLE HOADON ADD CONSTRAINT CHK_MUAHANG CHECK (TRIGIA > 0)

10. Ngày khách hàng đăng ký là khách hàng thành viên phải lớn hơn ngày sinh của người đó.

SQL
ALTER TABLE KHACHHANG ADD CONSTRAINT CHK_NGDK CHECK (NGDK > NGSINH)

11. Ngày mua hàng (NGHD) của một khách hàng thành viên sẽ lớn hơn hoặc bằng ngày khách hàng đó đăng ký thành viên (NGDK).

SQL
-- Trigger: thêm và sửa NgHD của HoaDon 
CREATE TRIGGER trg_ins_udt_NgHD ON HoaDon  FOR Insert, Update  AS  BEGIN  IF (
	EXISTS (
		SELECT 
			* 
		FROM 
			KhachHang, 
			inserted   
		WHERE 
			KhachHang.MaKH = inserted.MaKH   
			AND KhachHang.NgDK > inserted.NgHD
	)
)   BEGIN  PRINT 'Error: NgHD phai >= NgDK'   ROLLBACK TRANSACTION  END  END  -- Trigger: sửa NGDK của KhachHang 
CREATE TRIGGER trg_upd_NgDK ON KhachHang  FOR Update  AS  BEGIN  IF (
	EXISTS (
		SELECT 
			* 
		FROM 
			HoaDon, 
			inserted  
		WHERE 
			HoaDon.MaKH = inserted.MAKH  
			AND HoaDon.NgHD < inserted.NgDK
	)
)   BEGIN  PRINT 'Error: NgHD phai >= NgDK'   ROLLBACK TRANSACTION  END  END

12. Ngày bán hàng (NGHD) của một nhân viên phải lớn hơn hoặc bằng ngày nhân viên đó vào làm. 

SQL
-- Trigger: thêm và sửa NgHD của HoaDon 
CREATE TRIGGER trg_ins_udt_NgBH ON HoaDon  FOR Insert, Update  AS  BEGIN  IF (
	EXISTS (
		SELECT 
			* 
		FROM 
			NhanVien, 
			inserted   
		WHERE 
			NhanVien.MaNV = inserted.MaKH   
			AND NhanVien.NgVL > inserted.NgHD
	)
)   BEGIN  PRINT 'Error: NgHD phai >= NgVL'   ROLLBACK TRANSACTION  END  END  -- Trigger: sửa NGVL của NhanVien 
CREATE TRIGGER trg_upd_NgVL ON NhanVien  FOR Update  AS  BEGIN  IF (
	EXISTS (
		SELECT 
			* 
		FROM 
			HoaDon, 
			inserted  
		WHERE 
			HoaDon.MaNV = inserted.MANV  
			AND HoaDon.NgHD < inserted.NgVL
	)
)   BEGIN  PRINT 'Error: NgHD phai >= NgDK'   ROLLBACK TRANSACTION  END  END

13. Mỗi một hóa đơn phải có ít nhất một chi tiết hóa đơn. 

SQL
-- Trigger: Xóa một CTHD 
CREATE TRIGGER trg_del_CTHD ON CTHD  FOR Delete  AS  BEGIN  IF (
	(
		SELECT 
			COUNT (*) 
		FROM 
			deleted 
		WHERE 
			SoHD = deleted.SoHD
	)   = (
		SELECT 
			COUNT (*) 
		FROM 
			HoaDon, 
			deleted 
		WHERE 
			deleted.SoHD = HoaDon.SoHD
	)
)   BEGIN  PRINT 'Error: Moi hoa don phai co it nhat 1 CTHD'   ROLLBACK TRANSACTION  END  END

14. Trị giá của một hóa đơn là tổng thành tiền (số lượng*đơn giá) của các chi tiết thuộc hóa đơn đó. 

15. Doanh số của một khách hàng là tổng trị giá các hóa đơn mà khách hàng thành viên đó đã mua. 

SQL
-- Trigger: Update DoanhSo của KhachHang 
CREATE TRIGGER trg_upd_DoanhSo ON KhachHang FOR Update 
	AS BEGIN DECLARE @TongTriGia MONEY, 
	@DoanhSo MONEY 
SELECT 
	@TongTriGia = SUM(TriGia) 
FROM 
	HoaDon, 
	inserted 
WHERE 
	HoaDon.MaKH = inserted.MaKH 
SELECT 
	@DoanhSo = DoanhSo 
FROM 
	inserted IF (@DoanhSo <> @TongTriGia) BEGIN PRINT(
		'Doanh so cua mot khach hang la tong tri gia cac hoa don khach hang thanh vien do da mua'
	) ROLLBACK TRANSACTION END END

II. Ngôn ngữ thao tác dữ liệu (Data Manipulation Language) – CSDL Quản lý bán hàng

1. Nhập dữ liệu cho các quan hệ trên. CSDL Quản lý bán hàng 

2. Tạo quan hệ SANPHAM1 chứa toàn bộ dữ liệu của quan hệ SANPHAM. Tạo quan hệ KHACHHANG1 chứa toàn bộ dữ liệu của quan hệ KHACHHANG. 

SQL
SELECT 
	* INTO SANPHAM1 
FROM 
	SANPHAM 
SELECT 
	* INTO KHACHHANG1 
FROM 
	KHACHHANG

3. Cập nhật giá tăng 5% đối với những sản phẩm do “Thai Lan” sản xuất (cho quan hệ SANPHAM1) 

SQL
UPDATE 
	SANPHAM1 
SET 
	Gia = 1.05 * Gia 
WHERE 
	NuocSX = 'Thai Lan'

4. Cập nhật giá giảm 5% đối với những sản phẩm do “Trung Quoc” sản xuất có giá từ 10.000 trở xuống (cho quan hệ SANPHAM1). 

SQL
UPDATE 
	SANPHAM1 
SET 
	GIA = 0.95 * GIA 
WHERE 
	NUOCSX = 'Trung Quoc' 
	AND GIA <= 10000

5. Cập nhật giá trị LOAIKH là “Vip” đối với những khách hàng đăng ký thành viên trước ngày  1/1/2007 có doanh số từ 10.000.000 trở lên hoặc khách hàng đăng ký thành viên từ 1/1/2007 trở về sau có doanh số từ 2.000.000 trở lên (cho quan hệ KHACHHANG1). 

SQL
UPDATE
	KHACHHANG1 
SET
	LOAIKH = 'Vip'  
WHERE
	(
		NGDK < '1/1/2007'
		AND DOANHSO >= 10000000
	)
	OR (
    		NGDK >= '1/1/2007'
    		AND DOANHSO >= 2000000
  	) 

III. Ngôn ngữ truy vấn dữ liệu: 

1. In ra danh sách các sản phẩm (MASP,TENSP) do “Trung Quoc” sản xuất. 

SQL
SELECT 
	MaSP, TenSP 
FROM 
	SanPham 
WHERE 
	NuocSX = 'Trung Quoc' 

2. In ra danh sách các sản phẩm (MASP, TENSP) có đơn vị tính là “cay”, ”quyen”. 

SQL
SELECT 
	MaSP, TenSP 
FROM 
	SanPham 
WHERE 
	DVT IN ('cay', 'quyen') 

3. In ra danh sách các sản phẩm (MASP,TENSP) có mã sản phẩm bắt đầu là “B” và kết thúc là “01”. 

SQL
SELECT 
	MaSP, TenSP 
FROM 
	SanPham 
WHERE 
	MaSP LIKE 'B%01' 

4. In ra danh sách các sản phẩm (MASP,TENSP) do “Trung Quốc” sản xuất có giá từ 30.000 đến 40.000. 

SQL
SELECT 
	MaSP, 
	TenSP 
FROM 
	SanPham 
WHERE 
	NuocSX = 'Trung Quoc' 
	AND Gia BETWEEN 30000 
	AND 40000

5. In ra danh sách các sản phẩm (MASP,TENSP) do “Trung Quoc” hoặc “Thai Lan” sản xuất có giá từ 30.000 đến 40.000. 

SQL
SELECT 
	MaSP, 
	TenSP  
FROM 
	SanPham  
WHERE   
        NuocSX IN ('Trung Quoc', 'Thai Lan')   
	AND Gia BETWEEN 30000 
	AND 40000 

6. In ra các số hóa đơn, trị giá hóa đơn bán ra trong ngày 1/1/2007 và ngày 2/1/2007. 

SQL
SELECT 
	SoHD, 
	TriGia  
FROM 
	HoaDon  
WHERE 
	NgHD IN ('1/1/2007', '2/1/2007')  

7. In ra các số hóa đơn, trị giá hóa đơn trong tháng 1/2007, sắp xếp theo ngày (tăng dần) và trị giá của hóa đơn (giảm dần). 

SQL
SELECT 
	SoHD, 
	TriGia  
FROM 
	HoaDon  
WHERE 
	MONTH (NgHD) = 1   
	AND YEAR (NgHD) = 2007  
ORDER BY 
	NgHD ASC, 
	TriGia DESC 

8. In ra danh sách các khách hàng (MAKH, HOTEN) đã mua hàng trong ngày 1/1/2007. 

SQL
SELECT 
	DISTINCT KhachHang.MaKH, 
	HoTen  
FROM 
	KhachHang, 
	HoaDon  
WHERE   
        KhachHang.MaKH = HoaDon.MaKH   
	AND NgHD = '1/1/2007'  

9. In ra số hóa đơn, trị giá các hóa đơn do nhân viên có tên “Nguyen Van B” lập trong ngày 28/10/2006. 

SQL
SELECT 
	SoHD, 
	TriGia  
FROM 
	HoaDon, 
	NhanVien  
WHERE   
        HoaDon.MaNV = NhanVien.MaNV  
	AND HoTen = 'Nguyen Van B'   
	AND NgHD = '28/10/2006'  

10. In ra danh sách các sản phẩm (MASP,TENSP) được khách hàng có tên “Nguyen Van A” mua trong tháng 10/2006. 

SQL
SELECT 
	DISTINCT SanPham.MaSP, 
	TenSP  
FROM 
	SanPham, 
	CTHD, 
	KhachHang, 
	HoaDon  WHERE CTHD.MaSP = SanPham.MaSP  
	AND CTHD.SoHD = HoaDon.SoHD  
	AND HoaDon.MaKH = KhachHang.MaKH  
	AND HoTen = 'Nguyen Van A'   
	AND MONTH (NgHD) = 10 
	AND YEAR (NgHD) = 2006

11. Tìm các số hóa đơn đã mua sản phẩm có mã số “BB01” hoặc “BB02”. 

SQL
SELECT 
	DISTINCT SoHD  
FROM 
	CTHD  
WHERE 
	MaSP IN ('BB01', 'BB02')

12. Tìm các số hóa đơn đã mua sản phẩm có mã số “BB01” hoặc “BB02”, mỗi sản phẩm mua với số lượng từ 10 đến 20. 

SQL
SELECT 
	DISTINCT SoHD  
FROM 
	CTHD  WHERE   MaSP IN ('BB01', 'BB02')    
	AND SL BETWEEN 10 
	AND 20

13. Tìm các số hóa đơn mua cùng lúc 2 sản phẩm có mã số “BB01” và “BB02”, mỗi sản phẩm mua với số lượng từ 10 đến 20. 

SQL
SELECT 
	DISTINCT SoHD  
FROM 
	CTHD  
WHERE 
	MaSP = 'BB01' 
	AND SL BETWEEN 10 
	AND 20  INTERSECT  (
		  
		SELECT 
			DISTINCT SoHD  
		FROM 
			CTHD  
		WHERE 
			MaSP = 'BB02' 
			AND SL BETWEEN 10 
			AND 20 
	)

14. In ra danh sách các sản phẩm (MASP,TENSP) do “Trung Quoc” sản xuất hoặc các sản phẩm được bán ra trong ngày 1/1/2007. 

SQL
SELECT 
	DISTINCT SanPham.MaSP, 
	TenSP  
FROM 
	HoaDon, 
	SanPham, 
	CTHD  WHERE  HoaDon.SoHD = CTHD.SoHD  
	AND CTHD.MaSP = SanPham.MaSP  
	AND (
		NuocSX = 'Trung Quoc'   
		OR NgHD = '1/1/2007'
	)

15. In ra danh sách các sản phẩm (MASP,TENSP) không bán được. 

SQL
SELECT 
	MaSP, 
	TenSP  
FROM 
	SanPham  
WHERE 
	MaSP NOT IN (
		SELECT 
			MaSP 
		FROM 
			CTHD
	)

16. In ra danh sách các sản phẩm (MASP,TENSP) không bán được trong năm 2006. 

SQL
SELECT 
	MaSP, 
	TenSP  
FROM 
	SanPham  
WHERE 
	MaSP NOT IN (
		  
		SELECT 
			MaSP   
		FROM 
			CTHD, 
			HoaDon  WHERE   CTHD.SoHD = HoaDon.SoHD  
			AND YEAR(NgHD) = 2006 
	)

17. In ra danh sách các sản phẩm (MASP,TENSP) do “Trung Quoc” sản xuất không bán được trong năm 2006. 

SQL
SELECT 
	MaSP, 
	TenSP  
FROM 
	SanPham  WHERE  NuocSX = 'Trung Quoc'   
	AND MaSP NOT IN  (
		  
		SELECT 
			MaSP   
		FROM 
			CTHD, 
			HoaDon  WHERE CTHD.SoHD = HoaDon.SoHD  
			AND YEAR (NgHD) = 2006 
	)

18. Tìm số hóa đơn đã mua tất cả các sản phẩm do Singapore sản xuất. 

SQL
SELECT 
	SoHD  
FROM 
	HoaDon  
WHERE 
	NOT EXISTS (
		  
		SELECT 
			*   
		FROM 
			SanPham  
		WHERE 
			NuocSX = 'Singapore'   
			AND NOT EXISTS (
				  
				SELECT 
					*   
				FROM 
					CTHD  
				WHERE 
					CTHD.SoHD = HoaDon.SoHD  
					AND CTHD.MaSP = SanPham.MaSP 
			)  
	)

19. Tìm số hóa đơn trong năm 2006 đã mua ít nhất tất cả các sản phẩm do Singapore sản xuất. 

SQL
SELECT 
	SoHD  
FROM 
	HoaDon  
WHERE 
	YEAR (NgHD) = 2006   
	AND NOT EXISTS (
		SELECT 
			*   
		FROM 
			SanPham  
		WHERE 
			NuocSX = 'Singapore'   
			AND NOT EXISTS (
				SELECT 
					*   
				FROM 
					CTHD  
				WHERE 
					CTHD.SoHD = HoaDon.SoHD  
					AND CTHD.MaSP = SanPham.MaSP 
			)  
	)

20. Có bao nhiêu hóa đơn không phải của khách hàng đăng ký thành viên mua? 

SQL
SELECT 
	COUNT (*)   
FROM 
	HoaDon  
WHERE 
	MaKH IS NULL

21. Có bao nhiêu sản phẩm khác nhau được bán ra trong năm 2006. 

SQL
SELECT 
	COUNT (DISTINCT MaSP)   
FROM 
	HoaDon, 
	CTHD  WHERE  HoaDon.SoHD = CTHD.SoHD  
	AND YEAR (NgHD) = 2006

22. Cho biết trị giá hóa đơn cao nhất, thấp nhất là bao nhiêu ? 

SQL
SELECT 
	MIN (TriGia) Min_TriGia, 
	MAX (TriGia) Max_TriGia  
FROM 
	HoaDon

23. Trị giá trung bình của tất cả các hóa đơn được bán ra trong năm 2006 là bao nhiêu? 

SQL
SELECT 
	AVG (TriGia)   
FROM 
	HoaDon  
WHERE 
	YEAR(NgHD) = 2006

24. Tính doanh thu bán hàng trong năm 2006. 

SQL
SELECT 
	SUM (TriGia)   
FROM 
	HoaDon  
WHERE 
	YEAR (NgHD) = 2006

25. Tìm số hóa đơn có trị giá cao nhất trong năm 2006. 

SQL
SELECT 
	MAX (TriGia)   
FROM 
	HoaDon  
WHERE 
	YEAR (NgHD) = 2006

26. Tìm họ tên khách hàng đã mua hóa đơn có trị giá cao nhất trong năm 2006. 

SQL
SELECT 
	DISTINCT HoTen  
FROM 
	KhachHang, 
	HoaDon  WHERE   HoaDon.MaKH = KhachHang.MaKH  
	AND YEAR (NgHD) = 2006  
	AND TriGia = (
		SELECT 
			MAX (TriGia) 
		FROM 
			HoaDon 
		WHERE 
			YEAR (NgHD) = 2006
	)

27. In ra danh sách 3 khách hàng đầu tiên (MAKH, HOTEN) sắp xếp theo doanh số giảm dần. 

SQL
SELECT 
	TOP 3 MaKH, 
	HoTen  
FROM 
	KhachHang  
ORDER BY 
	DoanhSo DESC

28. In ra danh sách các sản phẩm (MASP, TENSP) có giá bán bằng 1 trong 3 mức giá cao nhất. 

SQL
SELECT 
	MaSP, 
	TenSP  
FROM 
	SanPham  
WHERE 
	Gia IN (
		  
		SELECT 
			DISTINCT TOP 3 Gia  
		FROM 
			SanPham  
		ORDER BY 
			Gia DESC 
	)

29. In ra danh sách các sản phẩm (MASP, TENSP) do “Thai Lan” sản xuất có giá bằng 1 trong 3 mức giá cao nhất (của tất cả các sản phẩm). 

SQL
SELECT 
	MaSP, 
	TenSP  
FROM 
	SanPham  
WHERE 
	NuocSX = 'Thai Lan'   
	AND Gia IN (
		  
		SELECT 
			DISTINCT TOP 3 Gia  
		FROM 
			SanPham  
		ORDER BY 
			Gia DESC 
	)

30. In ra danh sách các sản phẩm (MASP, TENSP) do “Trung Quoc” sản xuất có giá bằng 1 trong 3 mức giá cao nhất (của sản phẩm do “Trung Quoc” sản xuất). 

SQL
SELECT 
	MaSP, 
	TenSP  
FROM 
	SanPham  
WHERE 
	NuocSX = 'Trung Quoc'   
	AND Gia IN (
		SELECT 
			DISTINCT TOP 3 Gia  
		FROM 
			SanPham  
		WHERE 
			NuocSX = 'Trung Quoc'   
		ORDER BY 
			Gia DESC 
	)

31. * In ra danh sách khách hàng nằm trong 3 hạng cao nhất (xếp hạng theo doanh số). 

SQL
SELECT 
	TOP 3 * 
FROM 
	KhachHang 
ORDER BY 
	DoanhSo DESC

32. Tính tổng số sản phẩm do “Trung Quoc” sản xuất. 

SQL
SELECT 
       COUNT (*)   
FROM 
       SanPham  
WHERE
       NuocSX = 'Trung Quoc'

33. Tính tổng số sản phẩm của từng nước sản xuất. 

SQL
SELECT 
	NuocSX, 
	COUNT (*) SoSP 
FROM 
	SanPham 
GROUP BY 
	NuocSX

34. Với từng nước sản xuất, tìm giá bán cao nhất, thấp nhất, trung bình của các sản phẩm. 

SQL
SELECT 
	NuocSX, 
	MAX (Gia) Max_Gia, 
	MIN (Gia) Min_Gia, 
	AVG (Gia) TB_Gia 
FROM 
	SanPham 
GROUP BY 
	NuocSX

35. Tính doanh thu bán hàng mỗi ngày. 

SQL
SELECT 
	NgHD, 
	SUM (TriGia) DoanhThu 
FROM 
	HoaDon 
GROUP BY 
	NgHD

36. Tính tổng số lượng của từng sản phẩm bán ra trong tháng 10/2006. 

SQL
SELECT 
	SanPham.MaSP, 
	SUM (SL) SoLuongBan 
FROM 
	SanPham, 
	HoaDon, 
	CTHD 
WHERE 
	CTHD.MaSP = SanPham.MaSP 
	AND CTHD.SoHD = HoaDon.SoHD 
	AND MONTH (NgHD) = 10 
	AND YEAR (NgHD) = 2006 
GROUP BY 
	SanPham.MaSP

37. Tính doanh thu bán hàng của từng tháng trong năm 2006. 

SQL
SELECT 
	MONTH (NgHD) Thang, 
	SUM (TriGia) DoanhThu 
FROM 
	HoaDon 
WHERE 
	YEAR (NgHD) = 2006 
GROUP BY 
	MONTH (NgHD)

38. Tìm hóa đơn có mua ít nhất 4 sản phẩm khác nhau. 

SQL
SELECT 
	SoHD 
FROM 
	CTHD 
GROUP BY 
	SoHD 
HAVING 
	COUNT (DISTINCT MaSP) >= 4

39. Tìm hóa đơn có mua 3 sản phẩm do “Viet Nam” sản xuất (3 sản phẩm khác nhau). 

SQL
SELECT 
	SoHD 
FROM 
	CTHD, 
	SanPham 
WHERE 
	CTHD.MaSP = SanPham.MaSP 
	AND NuocSX = 'Viet Nam' 
GROUP BY 
	SoHD 
HAVING 
	COUNT (DISTINCT CTHD.MaSP) >= 3

40. Tìm khách hàng (MAKH, HOTEN) có số lần mua hàng nhiều nhất. 

SQL
SELECT 
	KhachHang.MaKH, 
	HoTen 
FROM 
	KhachHang, 
	HoaDon 
WHERE 
	KhachHang.MaKH = HoaDon.MaKH 
GROUP BY 
	KhachHang.MaKH, 
	HoTen 
HAVING 
	COUNT (*) >= ALL (

			SELECT 
      				COUNT (*) 
    			FROM 
      				HoaDon 
    			GROUP BY 
      				MaKH
  			)

41. Tháng mấy trong năm 2006, doanh số bán hàng cao nhất ? 

SQL
SELECT 
	MONTH (NgHD) 
FROM 
	HoaDon 
WHERE 
	YEAR (NgHD) = 2006 
GROUP BY 
	MONTH (NgHD) 
HAVING 
	SUM (TriGia) >= ALL(

			 SELECT 
			    	SUM (TriGia) 
			 FROM 
			    	HoaDON 
			 WHERE 
			    	YEAR (NgHD) = 2006 
			 GROUP BY 
			    	MONTH (NgHD)
			 )

42. Tìm sản phẩm (MASP, TENSP) có tổng số lượng bán ra thấp nhất trong năm 2006. 

SQL
SELECT 

	TOP 1 WITH TIES SanPham.MaSP, 
	TenSP 
FROM 

	SanPham, 
	CTHD, 
	HoaDon 
WHERE 

	SanPham.MaSP = CTHD.MaSP 
	AND HoaDon.SoHD = CTHD.SoHD 
	AND YEAR (NgHD) = 2006 
GROUP BY 
	SanPham.MaSP, 
	TenSP 
ORDER BY 
	SUM (SL)

43. *Mỗi nước sản xuất, tìm sản phẩm (MASP,TENSP) có giá bán cao nhất. 

SQL
SELECT 
	NuocSX, 
	MaSP, 
	TenSP 
FROM 
	SanPham SP1 
WHERE 
	EXISTS (

		SELECT 
			NuocSX 
		FROM 
			SanPham SP2 
		GROUP BY 
			NuocSX 
		HAVING 
			SP1.NuocSX = SP2.NuocSX 
			AND SP1.Gia = MAX (Gia)
		)

44. Tìm nước sản xuất sản xuất ít nhất 3 sản phẩm có giá bán khác nhau. 

SQL
SELECT 
	NuocSX 
FROM 
	SanPham 
GROUP BY 
	NUOCSX 
HAVING 
	COUNT (DISTINCT GIA) >= 3

45. *Trong 10 khách hàng có doanh số cao nhất, tìm khách hàng có số lần mua hàng nhiều nhất. 

SQL
SELECT 
	* 
FROM 
	KhachHang 
WHERE 
	MaKH IN (
		SELECT 
			TOP 1 WITH TIES HoaDon.MaKH 
		FROM 
			(
			SELECT 
				TOP 10 MaKH 
			FROM 
				KhachHang 
			ORDER BY 
				DoanhSo DESC
			) AS A 
			JOIN HoaDon ON A.MaKH = HoaDon.MaKH 
		GROUP BY 
			HoaDon.MaKH 
		ORDER BY 
			COUNT (*) DESC
		)

III. Tổng kết

Qua bài tập CSDL Quản lý bán hàng trên, chúng ta đã phần nào nắm và hiểu được về CSDL, cấu trúc và cách quản lý nó bằng SQL.

Để phát triển xa hơn kỹ năng sử dụng SQL để tạo và thao tác dữ liệu, chúng ta sẽ đến với bài tập tiếp theo: CSDL Quản lý giáo vụ

Tags: UIT
Share459Tweet287
Previous Post

[CEH] Module 3 – Phần 5: Thực hành dò quét port

Next Post

[CEH] Module 3 – Phần 7: Dò quét né tránh tường lửa và IDS

Nhà ngoại cảm

Nhà ngoại cảm

Studying Computer Networking and Data Communications 

Related Posts

Đáp án bài tập thực hành CSDL – Quản lý giáo vụ
Các môn học đại học

Đáp án bài tập thực hành CSDL – Quản lý giáo vụ

2 Tháng 9, 2024
operating-system-concepts-thumbnails
Các môn học đại học

[Ebook] Sách Operating System Concepts 10th Edition pdf

3 Tháng 9, 2022
Cookies và Web Cache trong HTTP
Các môn học đại học

Cookies và Web Cache trong HTTP

14 Tháng 10, 2024
bai-tap-deadlock
Các môn học đại học

Bài tập Deadlock (Tắc nghẽn) – Bài tập Hệ điều hành

26 Tháng 8, 2022
thuc-hanh-he-dieu-hanh-uit-lab-1
Các môn học đại học

Thực hành Hệ điều hành Lab 1: Hướng dẫn cài đặt Ubuntu và các lệnh cơ bản của Shell

26 Tháng 8, 2022
Định dạng thông điệp HTTP
Các môn học đại học

Định dạng thông điệp HTTP

14 Tháng 10, 2024
Next Post
[CEH] Module 3 – Phần 7: Dò quét né tránh tường lửa và IDS

[CEH] Module 3 – Phần 7: Dò quét né tránh tường lửa và IDS

Comments 1

  1. Pingback: Đáp án bài tập thực hành CSDL - Quản lý giáo vụ

Để lại một bình luận Hủy

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Tất cả chuyên mục

  • Các môn học đại học
  • CCNA 200-301
  • CEH Tiếng Việt – CEH v13
  • Chưa phân loại
  • Digital Forensics
  • Machine Learning
  • Network
  • Nổi bật
  • Phân tích mã độc
  • Security
  • Tài liệu CNTT
  • Từ vựng IELTS

Thẻ

API AWS Bash Shell C++ Cisco ASA Cisco Packet Tracer Collocations Footprinting Giao thức Machine Learning Mạng máy tính nmap Quản lý rủi ro Regular Expression TCP/IP Tuyển chọn UIT Wireshark

logo sinhviencntt.net

Blog Sinh viên CNTT chia sẻ kiến thức, tài liệu liên quan đến nhóm ngành Công nghệ thông tin.

Chúng tôi sẵn sàng đón những ý kiến đóng góp, cũng như bài viết của các bạn gửi đến SinhVienCNTT.Net.

Giới thiệu

Blog Sinh viên CNTT chia sẻ kiến thức, tài liệu liên quan đến nhóm ngành Công nghệ thông tin.

Liên hệ

Email: sinhviencntt.net@gmail.com

Tìm kiếm

No Result
View All Result

Danh mục

  • Các môn học đại học
  • CCNA 200-301
  • CEH Tiếng Việt – CEH v13
  • Chưa phân loại
  • Digital Forensics
  • Machine Learning
  • Network
  • Nổi bật
  • Phân tích mã độc
  • Security
  • Tài liệu CNTT
  • Từ vựng IELTS
  • Home
  • Liên hệ
  • Privacy & Policy
  • Other Links

© 2023 SinhVienCNTT.Net - Blog Sinh viên Công nghệ thông tin.

Welcome Back!

Login to your account below

Forgotten Password?

Retrieve your password

Please enter your username or email address to reset your password.

Log In
No Result
View All Result
  • Trang chủ
  • Bài viết nổi bật
  • Security
    • Kỹ thuật phân tích mã độc
    • CEH v13
  • Các môn học đại học
    • Các môn đại cương
      • Nhập môn mạng máy tính
      • Nhập môn lập trình
      • Hệ điều hành
    • Ngành An toàn thông tin
      • Lập trình hệ thống
    • Ngành Mạng máy tính & Truyền thông dữ liệu
  • Tài liệu CNTT
  • Liên hệ

© 2023 SinhVienCNTT.Net - Blog Sinh viên Công nghệ thông tin.