[CSDL] BT Thực hành 1 truy vấn SQL – Phần 2

Bài viết này là phần 3 trong 3 bài của Series Cơ sở dữ liệu

Giải bài tập thực hành truy vấn cơ sở dữ liệu quản lý bán hàng

1. Tóm tắt đề bài CSDL Quản lí bán hàng

KHACHHANG (MAKH, HOTEN, DCHI, SODT, NGSINH, DOANHSO, NGDK)

Tân từ: Quan hệ khách hàng sẽ lưu trữ thông tin của khách hàng thành viên gồm có các thuộc tính: mã khách hàng, họ tên, địa chỉ, số điện thoại, ngày sinh, ngày đăng ký và doanh số (tổng trị giá các hóa đơn của khách hàng thành viên này).

NHANVIEN (MANV,HOTEN, NGVL, SODT)

Tân từ: Mỗi nhân viên bán hàng cần ghi nhận họ tên, ngày vào làm, điện thọai liên lạc, mỗi nhân viên phân biệt với nhau bằng mã nhân viên.

SANPHAM (MASP,TENSP, DVT, NUOCSX, GIA)

Tân từ: Mỗi sản phẩm có một mã số, một tên gọi, đơn vị tính, nước sản xuất và một giá bán.

HOADON (SOHD, NGHD, MAKH, MANV, TRIGIA)

Tân từ: Khi mua hàng, mỗi khách hàng sẽ nhận một hóa đơn tính tiền, trong đó sẽ có số hóa đơn, ngày mua, nhân viên nào bán hàng, trị giá của hóa đơn là bao nhiêu và mã số của khách hàng nếu là khách hàng thành viên.

CTHD (SOHD,MASP,SL)

Đề bài ở phần trước https://kienthuc24h.com/csdl-bt-thuc-hanh-1-truy-van-sql/

2. Lời giải BT Truy vấn CSDL Quản lí bán hàng

11. Tìm các số hóa đơn đã mua sản phẩm có mã số “BB01” hoặc “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.

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.

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.

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

Sử dụng NOT IN

Sử dụng NOT EXISTS

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

Sử dụng NOT IN

Sử dụng EXISTS

Sử dụng EXCEPT

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.

Sử dụng EXCEPT

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

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.

 

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?

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

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

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?

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

25. Tìm số hóa đơn có trị giá cao nhất trong năm 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.

Hoặc

27. In ra danh sách 3 khách hàng (MAKH, HOTEN) có doanh số cao nhất.

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.

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).

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).

31. * In ra danh sách 3 khách hàng có doanh số cao nhất (sắp xếp theo kiểu xếp hạng).

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

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

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.

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

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

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

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

Sử dụng HAVING

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).

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

Cách khác

Cách khác

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

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.

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

Cách khác

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

Hoặc

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.

2 thoughts on “[CSDL] BT Thực hành 1 truy vấn SQL – Phần 2

    • Chào bạn,

      Đầu tiên để xác định hóa đơn nào vào năm 2006 mua tất cả sản phẩm do sing sản xuất thì bạn đưa về hướng giải quyết như sau:

      – Tìm những sản phẩm của Sing mà hóa đơn HD001 chưa mua (Ban đầu mình sẽ giả sử đối tượng xét tới là HD001 nhé)
      + Đầu tiên tìm những sản phẩm mà hóa đơn HD001 đã mua là:

      Tiếp theo, những “sản phẩm của Sing sản xuất mà HD001 chưa mua” sẽ là những sản phẩm ko nằm trong tập bên trên, nên ta có:

      Như vậy, Bây giờ mình chỉ cần xác định HD001 có sản phẩm nào của Sing mà nó chưa mua không? Và là năm 2006 chứ?

      Có nghĩa là nếu tồn tại trong đoạn select ở trên thì nó không thỏa, do tồn tại sản phẩm của Sing mà nó chưa mua.

      Sau khi bạn đã xác định được trên HD001 thì bạn mở rộng ra nhiều hóa đơn bằng cách thay HD001 thành HOADON.SOHD

Trả lời

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 *