ddt1899
12-02-2011, 18:45
Câu hỏi: Cho biết MaCN có đông nhân viên là nữ (F) nhất (hoặc ít nhân viên nữ nhất)
--> Em viết được truy vấn sau:
SELECT NHANVIEN.MaCN, COUNT(Phai) AS SONV
FROM NHANVIEN
WHERE Phai = N'F'
GROUP BY MaCN
HAVING COUNT(Phai) = ( SELECT TOP 1 COUNT(Phai)
FROM NHANVIEN
GROUP BY MaCN
ORDER BY COUNT(Phai) ASC)
-------------------------------------------------
- Khi tìm MaCN ít nhân viên nữ nhất (ORDER BY COUNT(Phai) ASC) --> cho KQ đúng
- ............ đông nhân viên nữ nhất (ORDER BY COUNT(Phai) DESC) --> câu truy vấn thì đúng nhưng KQ lại không có dòng nào được trả về. Tuy nhiên khi em tăng NV là nữ giả sử ở chi nhánh B3 lên thành 3 thì KQ lại trả về đúng!!!
Em đã thử cả mấy trường hợp: Tìm phòng ban có đông nhân viên nhất, lớp học có đông sinh viên nhất.... đều có kết quả là: nếu có 3 mẩu tin trở lên thì sẽ trả về, còn từ 2 mẩu tin trở xuống thì không có dòng nào trả về
Mong các anh nhiều kinh nghiệm giúp đỡ. (Em đính kèm file CSDL mẫu ở dưới) :(
http://i471.photobucket.com/albums/rr73/culekute1899/NHANVIEN1.jpg
--> Em viết được truy vấn sau:
SELECT NHANVIEN.MaCN, COUNT(Phai) AS SONV
FROM NHANVIEN
WHERE Phai = N'F'
GROUP BY MaCN
HAVING COUNT(Phai) = ( SELECT TOP 1 COUNT(Phai)
FROM NHANVIEN
GROUP BY MaCN
ORDER BY COUNT(Phai) ASC)
-------------------------------------------------
- Khi tìm MaCN ít nhân viên nữ nhất (ORDER BY COUNT(Phai) ASC) --> cho KQ đúng
- ............ đông nhân viên nữ nhất (ORDER BY COUNT(Phai) DESC) --> câu truy vấn thì đúng nhưng KQ lại không có dòng nào được trả về. Tuy nhiên khi em tăng NV là nữ giả sử ở chi nhánh B3 lên thành 3 thì KQ lại trả về đúng!!!
Em đã thử cả mấy trường hợp: Tìm phòng ban có đông nhân viên nhất, lớp học có đông sinh viên nhất.... đều có kết quả là: nếu có 3 mẩu tin trở lên thì sẽ trả về, còn từ 2 mẩu tin trở xuống thì không có dòng nào trả về
Mong các anh nhiều kinh nghiệm giúp đỡ. (Em đính kèm file CSDL mẫu ở dưới) :(
http://i471.photobucket.com/albums/rr73/culekute1899/NHANVIEN1.jpg