PDA

View Full Version : nhờ các bạn giúp giùm



blacklife87
16-02-2011, 11:02
cau 2.7
select tenkh,count(tensv) as tongsosv
from dmsv ,dmkhoa
where dmsv.makh=dmkhoa.makh
group by tenkh

nhưng khi mình muốn lấy thêm makh thì lại bị báo lỗi:

select tenkh,makh,count(tensv) as tongsosv
from dmsv ,dmkhoa
where dmsv.makh=dmkhoa.makh
group by tenkh

ai biết cách sửa thì chỉ mình giúp.thx all

khoathi
16-02-2011, 14:15
cau 2.7
select tenkh,count(tensv) as tongsosv
from dmsv ,dmkhoa
where dmsv.makh=dmkhoa.makh
group by tenkh

nhưng khi mình muốn lấy thêm makh thì lại bị báo lỗi:

select tenkh,makh,count(tensv) as tongsosv
from dmsv ,dmkhoa
where dmsv.makh=dmkhoa.makh
group by tenkh

ai biết cách sửa thì chỉ mình giúp.thx all

Hiểu bạn muốn hỏi gì mình chết ngay tại chỗ.

Red Devilic
16-02-2011, 15:19
Phải thế này mới được



select tenkh,makh,count(tensv) as tongsosv
from dmsv ,dmkhoa
where dmsv.makh=dmkhoa.makh
group by tenkh, makh


Khi Group theo tenkh, có nghĩa bạn đã đếm số lượng tensv dựa vào mỗi tenkh giống nhau. Vì vậy khi SELECT thêm makh, bắt buộc phải GROUP BY theo cả makh mới đúng logic.

tuan-nda
16-02-2011, 16:16
Để hết lỗi, Code theo hướng dẫn của Red Devilic là OK.
Nhưng để kết quả chính xác:
1/Thiết lập quan 2 giữa 2 bảng phải là: n-1 (dmsv(n) - dmkh(1))
(Trên là 1-1 sẽ bị thiếu)
2/Nhóm theo makh sẽ hợp lý hơn tenkh
Vài ý kiến đóng góp.
Thân,