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