PDA

View Full Version : Query lấy ra dữ liệu có nhiều record nhất ???



onlyAnh
26-04-2007, 04:44
Tui có 1 vấn đề như sau, mong mọi người giúp đỡ :

Tui có 2 table, table tblEmployee chứa thông tin về nhân viên, table tblDepartment chưa thông tin về từng bộ phận. Dữ liệu trong 2 table này liên kết với nhau qua DeptID. Tức là mỗi nhân viên sẽ có 1 DeptID nào đó và thuộc về bộ phận đó.

tblEmployee (EmpID, EmpName, EmpSalary, DeptID)
tblDepartment (DeptID, DeptName)


Giờ tui muốn viết 1 câu query để lấy ra thông tin của những nhân viên (Employee) thuộc bộ phận (Department) có số lượng nhân viên nhiều nhất. Tức là tìm ra Department nào có số nhân viên nhiều nhất, sau đó lấy thông tin của những nhân viên đó ra.

Mong mọi người giúp đỡ.

Thanks 4 reading

thangvq
26-04-2007, 09:34
Hi,

Bạn thử câu lệnh này xem sao:

SELECT E.EmpID, E.EmpName, E. EmpSalary, E.DeptID
FROM tblEmployee AS E INNER JOIN (SELECT TOP 1 DeptID, COUNT(EmpID) AS Total
FROM tblEmployee GROUP BY DeptID ORDER BY COUNT(EmpID) DESC) AS D
ON E.DeptID = D.DeptID

onlyAnh
26-04-2007, 17:51
Okay, thanks cậu.
Query chạy mượt

phatnq2003
27-04-2007, 08:46
Lỡ có hai departement có cùng số lượng nhân viên và là nhiều nhất thì sao ta? Vậy chắc phải bỏ một anh ra quá!

Tôi đề nghị bỏ cái TOP 1 ra khỏi subquery mà thay bằng TOP 100 PERCENT nếu cú pháp bắt buộc còn không thì bỏ hẳn.