PDA

View Full Version : Nhờ viết câu lệnh SQL



americanpie
30-05-2007, 22:25
Nhờ các bạn giúp đỡ:
mình có bảng quan hệ sau: (xem hình)

các bạn vui lòng giúp mình viết câu lệnh SQL để thực hiện công việc sau :

1- cho biết kết quả của sinh viên : họ ten sv, tên khoa, kết quả. Trong đó kết quả là đậu nếu không có môn nào nhỏ hơn 4

2- danh sach các sinh viên rớt 2 môn trở lên (rớt khi có một môn dứoi 4)

mong được giúp đỡ!

Xin cảm ơn!

huuchien80
30-05-2007, 23:20
Dùng cho trường hợp là:
SELECT KHOA.TENKH, SINHVIEN.HOSV, SINHVIEN.TENSV, KETQUA.DIEM
FROM (KHOA LEFT JOIN SINHVIEN ON KHOA.MAKH = SINHVIEN.MAKH) LEFT JOIN KETQUA ON SINHVIEN.MASV = KETQUA.MASV WHERE KETQUA.DIEM > 4

americanpie
31-05-2007, 00:25
oh, không phải bạn ạ, có nghĩa là nó phải trích ra danh sách sinh viên : nếu sinh viên nào có ít nhất 1 môn /tổng số môn thi dự thi có điểm < 4 thì đánh rớt, không thì cho đậu....câu lệnh trên của bạn chỉ in danh sách sv trên 4 điểm
:)

ChungITT
31-05-2007, 12:51
select sv.hosv + sv.tensv as hovaten, kh.tenkh as tenkhoa,'Dau' as ketqua
from sinhvien sv,khoa kh,(select count(ma_mh)as c,ma_sv from Ket_qua where diem<4 group by ma_sv) kq
where kq.c>0 and sv.masv = kq.masv and sv.makh=kh.makh

Cái này mình mới viết thôi. chưa test. bạn coi có lỗi không nhé. Nó sẽ hiểnthị ra danh sách sinh viên đậu

ChungITT
31-05-2007, 12:53
select sv.hosv + sv.tensv as hovaten, kh.tenkh as tenkhoa,'Dau' as ketqua
from sinhvien sv,khoa kh,(select count(mamh)as c,masv from Ketqua where diem<4 group by ma_sv) kq
where kq.c>0 and sv.masv = kq.masv and sv.makh=kh.makh

Cái này mình mới viết nhưng chưa test, bạn thử coi được không.

phatnq2003
01-06-2007, 11:48
Nhờ các bạn giúp đỡ:
mình có bảng quan hệ sau: (xem hình)

các bạn vui lòng giúp mình viết câu lệnh SQL để thực hiện công việc sau :

1- cho biết kết quả của sinh viên : họ ten sv, tên khoa, kết quả. Trong đó kết quả là đậu nếu không có môn nào nhỏ hơn 4

2- danh sach các sinh viên rớt 2 môn trở lên (rớt khi có một môn dứoi 4)

mong được giúp đỡ!

Xin cảm ơn!

Câu 1:
SELECT hosv + tensv AS hotensv, tenkh, "Đậu"
FROM sinhvien INNER JOIN khoa ON sinhvien.makh = khoa.makh
WHERE masv NOT IN
(SELECT DISTINCT masv FROM ketqua WHERE diem < 4)
Câu 2:
SELECT hosv + tensv AS hotensv, tenkh, "Rớt"
FROM sinhvien INNER JOIN khoa ON sinhvien.makh = khoa.makh
WHERE masv IN
(SELECT masv FROM (SELECT masv, COUNT(masv) AS somon FROM ketqua
GROUP BY masv WHERE diem < 4) A WHERE somon >= 2)