Bảng donhang ghi đơn của khách. Với mỗi khách, cần lấy 2 đơn có giá trị lớn nhất (top 2 theo tien giảm dần) dùng CROSS APPLY.
| Cột | Kiểu | Ý nghĩa |
|---|---|---|
| madon | int | Mã đơn |
| makh | nvarchar(20) | Mã khách |
| tien | int | Giá trị đơn |
Bảng phụ khach(makh) chứa danh sách khách cần xét. Dùng CROSS APPLY (SELECT TOP 2 ... ORDER BY tien DESC, madon ASC).
SETUP SQL tạo bảng khach, donhang và chèn dữ liệu.
Mỗi khách có thể có ít hơn hoặc nhiều hơn 2 đơn. CROSS APPLY bỏ khách không có đơn.
Ba cột: makh, madon, tien. Sắp xếp theo makh tăng, tien giảm, madon tăng.
Ví dụ:
Đầu vào:
CREATE TABLE khach (makh nvarchar(20));
CREATE TABLE donhang (madon int, makh nvarchar(20), tien int);
INSERT INTO khach VALUES (N'KH1'),(N'KH2');
INSERT INTO donhang VALUES
(1,N'KH1',100),(2,N'KH1',300),(3,N'KH1',200),(4,N'KH2',50);
Đầu ra:
KH1 2 300
KH1 3 200
KH2 4 50
Giải thích:
Đang tải editor...