Bài gi ng Cơ s D li u SQL – Ph n 3 – Truy v n (Query) và t o View – Gi i các Truy v n khó<br />
* Tìm m t hàng ư c khách<br />
TenMH, SoLanDatHang<br />
- Trư c h t, t o View<br />
<br />
t hàng nhi u nh t (có s l n<br />
<br />
ch a s l n<br />
<br />
t hàng l n nh t). Hi n th MaMH,<br />
<br />
t hàng c a các m t hàng<br />
<br />
Create View "View - Dem Mat hang" as<br />
Select ChiTietDH.MaMH, MatHang.TenMH, Count(ChiTietDH.MaMH) as SoLan From<br />
ChiTietDH Inner Join MatHang On ChiTietDH.MaMH = MatHang.MaMH<br />
Group by ChiTietDH.MaMH, MatHang.TenMH<br />
<br />
- K t qu như sau:<br />
<br />
- Ti p t c các m t hàng ư c<br />
<br />
t hàng nhi u nh t<br />
<br />
Select MaMH, TenMH, SoLan from "View - Dem Mat hang"<br />
Where SoLan = (Select Max(SoLan) from "View - Dem Mat hang")<br />
<br />
- K t qu như sau:<br />
<br />
* Tìm Khách hàng có T ng s ti n<br />
MaKH, TenKH, SoTienTB_HD<br />
- Trư c h t, t o View<br />
<br />
t hàng trung bình trên m t hoá ơn là l n nh t. Hi n th<br />
<br />
ch a s lư ng hoá ơn c a các khách hàng<br />
<br />
Create View "View - So luong Hoa don" as<br />
SELECT DonDH.MaKH, KhachHang.TenKH, Count(DonDH.MaKH) AS [SoLuongHD]<br />
FROM KhachHang INNER JOIN DonDH ON KhachHang.MaKH = DonDH.MaKH<br />
GROUP BY DonDH.MaKH, KhachHang.TenKH<br />
<br />
Biên so n: Th.s Nguy n Anh Vi t<br />
<br />
Trang 1<br />
<br />
Bài gi ng Cơ s D li u SQL – Ph n 3 – Truy v n (Query) và t o View – Gi i các Truy v n khó<br />
- K t qu như sau:<br />
<br />
- Trong “View – Tong Thanh tien theo Khach hang” ã có T ng s ti n c a t ng Khách hàng, em s<br />
này chia cho S lư ng H là có k t qu :<br />
Create View "View - So tien TB tren HD" as<br />
SELECT "View - So luong Hoa don".MaKH, "View - So luong Hoa don".TenKH,<br />
"View - Thanh tien theo Khach hang"."Tong So Tien" / "View - So luong Hoa<br />
don".SoLuongHD as TBSoTienHD<br />
FROM "View - So luong Hoa don" INNER JOIN "View - Thanh tien theo Khach<br />
hang" ON "View - Thanh tien theo Khach hang".MaKH = "View - So luong Hoa<br />
don".MaKH<br />
<br />
- K t qu như sau:<br />
<br />
- Cu i cùng tìm khách hàng có s ti n TB trên hoá ơn cao nh t:<br />
SELECT MaKH, TenKH, TBSoTienHD<br />
From "View - So tien TB tren HD"<br />
Where TBSoTienHD = (Select Max(TBSoTienHD) from "View - So tien TB tren<br />
HD")<br />
<br />
- K t qu như sau:<br />
<br />
Biên so n: Th.s Nguy n Anh Vi t<br />
<br />
Trang 2<br />
<br />
Bài gi ng Cơ s D li u SQL – Ph n 3 – Truy v n (Query) và t o View – Gi i các Truy v n khó<br />
- T o View cho truy v n:<br />
Create View "View - Max So tien TB tren HD" as<br />
SELECT MaKH, TenKH, TBSoTienHD<br />
From "View - So tien TB tren HD"<br />
Where TBSoTienHD = (Select Max(TBSoTienHD) from "View - So tien TB tren<br />
HD")<br />
<br />
* Tìm các Khách hàng không có<br />
- Trư c h t, t o View<br />
<br />
t hàng trong tháng 5/2004. Hi n th MaKH, TenKH<br />
<br />
tìm các khách hàng có<br />
<br />
t hàng trong tháng 5/2004:<br />
<br />
Create View "View - Khach hang dat hang thang 5/2004" as<br />
SELECT CONVERT(VARCHAR(10),NgayGH,103) as [Ngay GH], DonDH.MaKH,<br />
KhachHang.TenKH<br />
FROM KhachHang INNER JOIN (DonDH INNER JOIN ChiTietDH ON DonDH.MaDH =<br />
ChiTietDH.MaDH) ON KhachHang.MaKH = DonDH.MaKH<br />
Where NgayGH >= CONVERT(Varchar(10),'2004/05/01',111)<br />
And NgayGH