Bài giảng Cơ sở Dữ liệu SQL – Phần 2 – Truy vấn (Query) và tạo View * Hiển thị các Đơn ñặt hàng có Ngày giao hàng trong thời ñiểm từ 1-3-2004 ñến 30-4-2004

SELECT DonDH.MaDH, CONVERT(VARCHAR(10),NgayGH,103) as [Ngay GH], DonDH.MaKH, KhachHang.TenKH, MatHang.TenMH, MatHang.DVT, MatHang.DonGia, ChiTietDH.SoLuong, [DonGia]*[SoLuong] AS [Thành tiền] FROM MatHang INNER JOIN (KhachHang INNER JOIN (DonDH INNER JOIN ChiTietDH ON DonDH.MaDH = ChiTietDH.MaDH) ON KhachHang.MaKH = DonDH.MaKH) ON MatHang.MaMH = ChiTietDH.MaMH Where NgayGH >= CONVERT(Varchar(10),'2004/03/01',111) And NgayGH <= CONVERT(Varchar(10),'2004/04/30',111) Kết quả như sau:

* Tính Tổng số lượng và Thành tiền các mặt hàng

SELECT ChiTietDH.MaMH, MatHang.TenMH, Sum(ChiTietDH.SoLuong) AS [So Luong], Sum([SoLuong]*[DonGia]) AS [Thanh Tien] FROM MatHang INNER JOIN ChiTietDH ON MatHang.MaMH = ChiTietDH.MaMH GROUP BY ChiTietDH.MaMH, MatHang.TenMH; Kết quả như sau:

* Tính tổng số tiền ñã ñặt hàng theo từng công ty, hiển thị MaKH, TenKH, Tong So Tien. Chú ý cột Tong So Tien = DonGia * SoLuong

SELECT DonDH.MaKH, KhachHang.TenKH, Sum([SoLuong]*[DonGia]) AS [Tong so tien] FROM MatHang INNER JOIN (KhachHang INNER JOIN (DonDH INNER JOIN ChiTietDH ON DonDH.MaDH = ChiTietDH.MaDH) ON KhachHang.MaKH = DonDH.MaKH) ON MatHang.MaMH = ChiTietDH.MaMH GROUP BY DonDH.MaKH, KhachHang.TenKH; Biên soạn: Th.s Nguyễn Anh Việt Trang 1

Bài giảng Cơ sở Dữ liệu SQL – Phần 2 – Truy vấn (Query) và tạo View Kết quả như sau:

* Tìm công ty ñặt hàng có Tổng trị giá cao nhất, hiển thị MaKH, TenKH, Tong So Tien

- Trước tiên, tạo View ñể hiển thị Tổng thành tiền theo Khách hàng:

Create View "View - Thanh tien theo Khach hang" as SELECT DonDH.MaKH, KhachHang.TenKH, Sum([SoLuong]*[DonGia]) AS [Tong so tien] FROM MatHang INNER JOIN (KhachHang INNER JOIN (DonDH INNER JOIN ChiTietDH ON DonDH.MaDH = ChiTietDH.MaDH) ON KhachHang.MaKH = DonDH.MaKH) ON MatHang.MaMH = ChiTietDH.MaMH GROUP BY DonDH.MaKH, KhachHang.TenKH Kết quả như sau, (vào mục Data ñể xem):

- Sau ñó tìm Công ty có Tổng giá trị mua hàng cao nhất:

SELECT MaKH, TenKH, "Tong so tien" FROM "View - Thanh tien theo Khach hang" Where "Tong so tien" = (Select Max("Tong so tien") from "View - Thanh tien theo Khach hang")

Kết quả như sau :

Biên soạn: Th.s Nguyễn Anh Việt Trang 2

Bài giảng Cơ sở Dữ liệu SQL – Phần 2 – Truy vấn (Query) và tạo View - Cuối cùng, tạo View theo Kết quả trên:

Create View "View - Max Thanh tien theo Khach hang" as SELECT MaKH, TenKH, "Tong so tien" FROM "View - Thanh tien theo Khach hang" Where "Tong so tien" = (Select Max("Tong so tien") from "View - Thanh tien theo Khach hang")

* Tìm mặt hàng bán chậm nhất (có Tổng trị giá nhỏ nhất). Hiển thị MaMH, TenMH, Tong So Tien

- Trước tiên, tạo View ñể hiển thị Tổng thành tiền theo Mặt hàng:

Create View "View – Tong thanh tien theo mat hang" as Select ChiTietDH.MaMH, MatHang.TenMH, Sum (ChiTietDH.SoLuong * MatHang.DonGia) as ThanhTien From ChiTietDH Inner Join MatHang on ChiTietDH.MaMH = MatHang.MaMH Group by ChiTietDH.MaMH, MatHang.TenMH Kết quả như sau (vào mục Data ñể xem):

- Sau ñó tìm Mặt hàng có Tổng giá trị thấp nhất:

Select MaMH, TenMH, ThanhTien from "View – Tong thanh tien theo mat hang" Where ThanhTien = (Select Min(ThanhTien) from "View – Tong thanh tien theo mat hang")

Kết quả như sau :

Biên soạn: Th.s Nguyễn Anh Việt Trang 3

Bài giảng Cơ sở Dữ liệu SQL – Phần 2 – Truy vấn (Query) và tạo View - Cuối cùng, tạo View theo Kết quả trên:

Create View "View - Min Tong thanh tien theo mat hang" as Select MaMH, TenMH, ThanhTien from "View – Tong thanh tien theo mat hang" Where ThanhTien = (Select Min(ThanhTien) from "View – Tong thanh tien theo mat hang")

* Tìm công ty ñặt hàng có Tổng trị giá thấp nhất, hiển thị MaKH, TenKH, TongSoTien

* Tìm mặt hàng bán chạy nhất (có Tổng trị giá cao nhất). Hiển thị MaMH, TenMH, TongSoTien

* Tìm mặt hàng ñược khách ñặt hàng nhiều nhất (có số lần ñặt hàng lớn nhất). Hiển thị MaMH, TenMH, SoLanDatHang

* Tìm Khách hàng có Tổng số tiền ñặt hàng trung bình trên một hoá ñơn là lớn nhất. Hiển thị MaKH, TenKH, SoTienTB_HD

* Tìm các Khách hàng không có ñặt hàng trong tháng 5/2004. Hiển thị MaKH, TenKH

* Tìm các Mặt hàng không có khách hàng nào ñặt hàng. Hiển thị MaMH, TenMH

Biên soạn: Th.s Nguyễn Anh Việt Trang 4