You are on page 1of 6

BAI 1

1.2 Cho biết nơi nào có hơn 2 sinh viên đang theo học tại trường:
SELECT NoiSinh, COUNT(Masv) AS 'Số sinh viên'
FROM DMSV
GROUP BY NoiSinh
HAVING COUNT(Masv) > 2;

1.3. Cho biết môn nào có trên 3 sinh viên dự thi:

SELECT MaMH, COUNT(MaSV) AS 'Số sinh viên'

FROM KetQua

GROUP BY MaMH

HAVING COUNT(MaSV) > 3;

1.4. Cho biết sinh viên thi lại trên 2 lần:

SELECT Masv, Mamh, COUNT(Lanthi) AS 'Số lần thi lại'

FROM KetQua

GROUP BY Masv, Mamh

HAVING COUNT(Lanthi) > 2;

1.5. Cho biết sinh viên nam có điểm trung bình lần 1 trên 7.0:

SELECT Hosv + ' ' + Tensv AS 'Họ tên sinh viên', Phai, Lanthi, AVG(Diem) AS 'Điểm trung bình'

FROM DMSV

JOIN KetQua ON DMSV.Masv = KetQua.Masv

WHERE Phai = 'Nam' AND Lanthi = 1 AND AVG(Diem) > 7.0

GROUP BY DMSV.Masv;

1.6. Cho biết danh sách sinh viên rớt trên 2 môn ở lần thi 1.:

SELECT DMSV.Masv, Hosv + ' ' + Tensv AS 'Họ tên sinh viên', Diem

FROM DMSV

JOIN KetQua ON DMSV.Masv = KetQua.Masv


WHERE Lanthi = 1 AND Diem < 5

GROUP BY DMSV.Masv

HAVING COUNT(Diem) > 2;

1.7. Cho biết khoa nào có nhiều hơn 2 sinh viên nam.:

SELECT Khoa, COUNT(Masv) AS 'Số sinh viên nam'

FROM DMSV

WHERE Phai = 'Nam'

GROUP BY Khoa

HAVING COUNT(Masv) > 2;

1.8. Cho biết khoa có 2 sinh đạt học bổng từ 100.000 đến 200.000.:

SELECT Khoa, COUNT(Masv) AS 'Số sinh viên'

FROM DMSV

WHERE Hocbong >= 100000 AND Hocbong <= 200000

GROUP BY Khoa

HAVING COUNT(Masv) = 2;

1.9. Cho biết sinh viên nam học trên từ 3 môn trở lên:

SELECT DMSV.Masv, Hosv + ' ' + Tensv AS 'Họ tên sinh viên', COUNT(KetQua.Mamh) AS 'Số môn'

FROM DMSV

JOIN KetQua ON DMSV.Masv = KetQua.Masv

WHERE Phai = 'Nam'

GROUP BY DMSV.Masv

HAVING COUNT(KetQua.Mamh) >= 3;

1.10. Cho biết sinh viên có điểm trung bình lần 1 từ 7 trở lên nhưng không có môn

nào dưới 5:

SELECT DMSV.Masv, Hosv + ' ' + Tensv AS 'Họ tên sinh viên', AVG(Diem) AS 'Điểm trung bình'

FROM DMSV
JOIN KetQua ON DMSV.Masv = KetQua.Masv

WHERE Lanthi = 1

GROUP BY DMSV.Masv

HAVING AVG(Diem) >= 7.0 AND MAX(Diem) >= 5.0;

1.11. Cho biết môn không có sinh viên rớt ở lần 1. (rớt là điểm <5):

SELECT DMMH.Tenmh

FROM DMMH

WHERE NOT EXISTS (

SELECT *

FROM KetQua

WHERE KetQua.Mamh = DMMH.Mamh AND Lanthi = 1 AND Diem < 5

);

1.12. Cho biết sinh viên đăng ký học hơn 3 môn mà thi lần 1 không bị rớt môn nào:

SELECT DMSV.Masv, Hosv + ' ' + Tensv AS 'Họ tên sinh viên'

FROM DMSV

JOIN KetQua ON DMSV.Masv = KetQua.Masv

WHERE Lanthi = 1 AND Diem >= 5.0

GROUP BY DMSV.Masv

HAVING COUNT(KetQua.Mamh) > 3;

BAI 2

2.2. Cho biết những sinh viên có điểm thi lần 1 môn cơ sở dữ liệu cao nhất.:

SELECT Hosv + ' ' + Tensv AS 'Họ tên sinh viên', Diem

FROM DMSV

JOIN KetQua ON DMSV.Masv = KetQua.Masv

JOIN DMMH ON KetQua.Mamh = DMMH.Mamh

WHERE Lanthi = 1 AND Tenmh = N'cơ sở dữ liệu' AND Diem = (SELECT MAX(Diem) FROM KetQua
WHERE Mamh = DMMH.Mamh AND Lanthi = 1)
2.3. Cho biết sinh viên khoa anh văn có tuổi lớn nhất.:

SELECT TOP 1 Hosv + ' ' + Tensv AS 'Họ tên sinh viên', YEAR(GETDATE()) - YEAR(Ngaysinh) AS 'Tuổi'

FROM DMSV

WHERE Khoa = N'Anh văn'

ORDER BY YEAR(GETDATE()) - YEAR(Ngaysinh) DESC;

2.4. Cho biết những sinh viên có cùng nơi sinh với sinh viên có mã số “A01”:

SELECT Hosv + ' ' + Tensv AS 'Họ tên sinh viên', Diachi AS 'Địa chỉ'

FROM DMSV

WHERE Diachi = (SELECT Diachi FROM DMSV WHERE Masv = 'A01');

2.5. Cho biết sinh viên khoa anh văn học môn văn phạm có điểm thi lần 1 thấp nhất.:

SELECT TOP 1 Hosv + ' ' + Tensv AS 'Họ tên sinh viên', Diem

FROM DMSV

JOIN KetQua ON DMSV.Masv = KetQua.Masv

JOIN DMMH ON KetQua.Mamh = DMMH.Mamh

WHERE Khoa = N'Anh văn' AND Tenmh = N'Văn phạm' AND Lanthi = 1

ORDER BY Diem ASC;

2.5. Cho biết sinh viên khoa anh văn học môn văn phạm có điểm thi lần 1 thấp nhất.:

SELECT TOP 1 Hosv + ' ' + Tensv AS 'Họ tên sinh viên', Diem

FROM DMSV

JOIN KetQua ON DMSV.Masv = KetQua.Masv

JOIN DMMH ON KetQua.Mamh = DMMH.Mamh

WHERE Khoa = N'Anh văn' AND Tenmh = N'Văn phạm' AND Lanthi = 1

ORDER BY Diem ASC;

2.6. Cho biết sinh viên thi môn cơ sở dữ liệu lần 2 có điểm bằng điểm cao nhất của
sinh viên thi môn cơ sở dữ liệu lần 1.:

SELECT MAX(Diem)

FROM KetQua

WHERE Mamh = 'CSDL' AND Lanthi = 1;


2.7. Cho biết sinh viên có điểm thi môn cơ sở dữ liệu lần 2 lớn hơn tất cả điểm thi lần

1 môn cơ sở dữ liệu của những sinh viên khác:

SELECT TOP 1 Hosv + ' ' + Tensv AS 'Họ tên sinh viên', Diem

FROM DMSV

JOIN KetQua ON DMSV.Masv = KetQua.Masv

WHERE Mamh = 'CSDL' AND Lanthi = 2

ORDER BY Diem DESC;

2.8. Cho biết những sinh viên có học bổng lớn hơn tất cả học bổng của sinh viên

thuộc khoa anh văn:

SELECT Hosv + ' ' + Tensv AS 'Họ tên sinh viên', Hocbong

FROM DMSV

WHERE Khoa = N'Anh văn' AND Hocbong > ALL (SELECT Hocbong FROM DMSV WHERE Khoa = N'Anh
văn');

You might also like