-
Demo Code Xếp hạng trong Query giống như hàm Rank trong Excel
maidinhdan > 02-03-15, 01:01 AM
Khác với Excel có hàm Rank để xếp hạng ( xếp thứ tự hoặc xếp thứ bậc) nhưng trong Access ta không hề có hàm đó, vì vậy trong diễn đàn đã có 1 bài viết của anh Xuân Thanh nói về dùng code để xếp hạng ( Link bài viết của anh Xuân thanh: Sắp xếp thứ hạng trong Access.
Nhân dịp có 1 bạn hỏi về tính Danh sách nhân viên có số công cao nhất, mình xin làm Demo dùng câu lệnh SQL để tạo Query tính xếp hạng.
Cú pháp chung: để tạo cột xếp hạng
Mã PHP:SELECT Tencot1, Tencotnaobancanhien,
( SELECT COUNT (T1.Tencotcanxephang)
FROM
[TenbangA] AS T1
WHERE T1.Tencotcanxephang < T2.Tencotcanxephang) AS Xephang
FROM
[TenbangA] AS T2
ORDER BY Tencotcanxephang DESC
Code theo bài:
Mã PHP:SELECT T2.MANV, T2.HOTEN, T2.DIACHI, T2.MADV, (Select count(T1.NGAYCONG)
FROM BANGLUONG AS T1
Where T1.NGAYCONG < [T2.NGAYCONG]+1) AS Xephang
FROM BANGLUONG AS T2
ORDER BY T2.NGAYCONG DESC;
Giải thích: Nó sẽ tạo ra một cột mới tên là [Xephang] hạng thấp nhất là 1 bạn có thể thấy tôi có dùng [T2.NGAYCONG]+1 nếu bạn không dùng +1 như code nêu trong cú pháp phía trên thì hạng thấp nhất là từ số 0,
Hình minh họa kết quả của bạn:
Còn nếu chỉ cần tìm ra 1 người duy nhất ta phát biểu như sau
Mã PHP:SELECT * FROM BANGLUONG
WHERE NGAYCONG In (SELECT MAX(NGAYCONG) from BANGLUONG;);
Demo: https://sites.google.com/site/congthucas...ects=0&d=1
Vì nó giống như một hàm Rank, rất mong anh NoName cho phép để trong chuyên mục Thư viện hàm.