Stored Procedure Trong Dự án Quản Lý Sinh Viên Với SQL Server
Có thể bạn quan tâm
- PG Pages
- Khóa học
- Lập trình
- Lập trình C# .Net
- Lập trình C++
- Lập trình Android
- Điều trường học không dạy
- Thủ thuật lập trình
- Lập trình Java
- Unity3D
- Phân tích thiết kế
- Lập trình Python
- Lập trình PHP
- JavaScript - (Website)
- Lập trình Front-End
- Lập trình Mobile
- Microsoft Office 2016
- Microsoft Word 2016
- Microsoft Excel 2016
- Microsoft PowerPoint 2016
- IT & Phần mềm
- Thủ thuật máy tính
- Hướng dẫn cài đặt
- Bảo mật máy tính
- Phần cứng & Bảo mật
- Đồ họa hình ảnh
- Adobe Photoshop LightRoom
- Kinh tế
- Quản trị kinh doanh
- Kế toán
- Nhân sự
- SEO
- Marketing
- Ngoại ngữ
- Tiếng anh
- Kỹ năng mềm
- Kỹ năng mềm
- Tin tức
- Tin tức công nghệ
- Lập trình
- Khóa học
- Hỏi đáp
- Bài viết
- Tag
- Kter
- Về Kteam
- Tài trợ
- Phản hồi
Khóa Thực chiến SQL cùng Kteam - Dự án quản lý sinh viên
5.0 (6 đánh giá) Tạo bởi K9 Cập nhật lần cuối 20:52 29-10-2021 35.007 lượt xem 24 bình luận Tác giả/Dịch giả: K9 Học nhanh Khóa học Lập trình Phân tích thiết kế Khóa Thực chiến SQL cùng Kteam - Dự án quản lý sinh viên Stored Procedure trong dự án quản lý sinh viên với SQL ServerDanh sách bài học
Stored Procedure trong dự án quản lý sinh viên với SQL Server
Khóa Thực chiến SQL cùng Kteam - Dự án quản lý sinh viên Tạo bởi K9 35.007 24 Học nhanhStored Procedure trong dự án quản lý sinh viên với SQL Server
Nội dung bài viết Học nhanh
Bài trước Bài sauDẫn nhập
Ở bài trước, Kteam và bạn đã cùng nhau thực hành FUNCTIONS TRONG QUẢN LÝ SINH VIÊN VỚI SQL SERVER .Chúng ta đã cùng nhau giải quyết một số câu về functions khá khoai khoai hen.
Trong bài này chúng ta sẽ cùng nhau đi lại phần functions cho các bạn dễ hiểu hơn và đi vào phần tiếp theo của khóa thực chiến với dự án Quản lý sinh viên đó chính là Stored Procedure trong CSDL dự án Quản lý sinh viên.
Đừng quên hoàn thành bài tập truy vấn của buổi trước trong dự án Quản lý sinh viên lên SQL Server nhé! Chúng ta sẽ sửa các bài tập đó trước!
Chúng ta hãy cùng nhau teamwork, thảo luận và hỗ trợ nhau trong dự án này để giải quyết bài toán thực tế một cách hoàn chỉnh dưới sự hướng dẫn của anh Kim Long - founder Howkteam nhé!
Nội dung
Để theo dõi bài này một cách tốt nhất, bạn nên có kiến thức về các phần:
- SỬ DỤNG SQL SERVER
- PHÂN TÍCH THIẾT KẾ PHẦN MỀM
- Đã xem qua bài PHÂN TÍCH ĐẶC TẢ DỰ ÁN QUẢN LÝ SINH VIÊN
- Đã xem qua bài CÀI ĐẶT CSDL VÀ XÁC ĐỊNH KHÓA CHÍNH, KHÓA NGOẠI LÊN SQL SERVER
- Đã xem qua bài NHẬP DỮ LIỆU VÀ THỰC HÀNH TRUY VẤN CƠ BẢN
- Đã xem qua bài FUNCTIONS TRONG QUẢN LÝ SINH VIÊN VỚI SQL SERVER
Trong bài này, Kteam sẽ cùng các bạn tìm hiểu các nội dung:
- Giải quyết bài tập & củng cố kiến thức của bài trước
- Nhắc lại kiến thức Stored Procedure trong SQL Server
- Hướng dẫn thực hành Stored Procedure
- Phân tích các vấn đề thực tế trong sử dụng Stored Procedure
- Phần định hướng bài tập
- Các phần chia sẻ kinh nghiệm thực tế
Phần mềm sử dụng
Trong khóa học này, chúng ta sẽ học và thực hành trực tiếp với SQL Server. Nếu bạn chưa cài đặt SQL thì có thể xem qua bài
- HƯỚNG DẪN CÀI ĐẶT SQL SERVER 2014
Bạn cũng có thể sử dụng các phiên bản khác từ 2008 trở lên. (vì không có nhiều khác biệt)
Procedures
Bạn nên tìm hiểu qua phần STORED PROCEDURES TRONG SQL SERVER để nắm kiến thức và hiểu cách ứng dụng của Stored procedure
Hướng dẫn thực hành
Hãy viết các Stored Procedure sau:
- In danh sách các sinh viên của 1 lớp học
- Nhập vào 2 sinh viên, 1 môn học, tìm xem sinh viên nào có điểm thi môn học đó lần đầu tiên là cao hơn.
- Nhập vào 1 môn học và 1 mã sv, kiểm tra xem sinh viên có đậu môn này trong lần thi đầu tiên không, nếu đậu thì xuất ra là “Đậu”, không thì xuất ra “Không đậu”
- Nhập vào 1 khoa, in danh sách các sinh viên (mã sinh viên, họ tên, ngày sinh) thuộc khoa này.
- Nhập vào 1 sinh viên và 1 môn học, in điểm thi của sinh viên này của các lần thi môn học đó.
Ví dụ: Lần 1 : 10 Lần 2: 8
- Nhập vào 1 sinh viên, in ra các môn học mà sinh viên này phải học.
- Nhập vào 1 môn học, in danh sách các sinh viên đậu môn này trong lần thi đầu tiên.
- In điểm các môn học của sinh viên có mã số là maSinhVien được nhập vào.
Chú ý: điểm của môn học là điểm thi của lần thi sau cùng
Bài tập về nhà
Thêm 1 quan hệ
XepLoai:
maSV | diemTrungBinh | ketQua | hocLuc |
- Quy định : ketQua của sinh viên là ”Đạt‘ nếu diemTrungBinh (chỉ tính các môn đã có điểm) của sinh viên đó lớn hơn hoặc bằng 5 và không quá 2 môn dưới 4 điểm, ngược lại thì kết quả là không đạtĐưa dữ liệu vào bảng xếp loại. Sử dụng function 3 đã viết ở bài 4
Đối với những sinh viên có ketQua là ”Đạt‘ thì hocLuc được xếp loại như sau:
- diemTrungBinh >= 8 thì hocLuc là ”Giỏi”
- 7 < = diemTrungBinh < 8 thì hocLuc là ”Khá” Còn lại là ”Trung bình”
- Với các sinh viên có tham gia đầy đủ các môn học của khoa, chương trình mà sinh viên đang theo học, hãy in ra điểm trung bình cho các sinh viên này.
Chú ý: Điểm trung bình được tính dựa trên điểm thi lần sau cùng. Sử dụng function 3 đã viết ở bài 4
Kết
Trong bài này,chúng ta đã tìm hiểu về Stored Procedure trong dự án quản lý sinh viên. Buổi học đã được diễn ra vào lúc 20h ngày 15/07/2019 tại phần trình chiếu của bài Stored Procedure trong dự án quản lý sinh viên trên Howkteam.com
Ở bài sau, chúng ta sẽ tìm hiểu về RÀNG BUỘC TRONG CSDL QUẢN LÝ SINH VIÊN VỚI SQL SERVER
Cảm ơn các bạn đã theo dõi bài viết. Hãy để lại bình luận hoặc góp ý của bạn để phát triển bài viết tốt hơn. Đừng quên “Luyện tập – Thử thách – Không ngại khó”
Tải xuống
Tài liệu
Nhằm phục vụ mục đích học tập Offline của cộng đồng, Kteam hỗ trợ tính năng lưu trữ nội dung bài học Stored Procedure trong dự án quản lý sinh viên với SQL Server dưới dạng file PDF trong link bên dưới.
Ngoài ra, bạn cũng có thể tìm thấy các tài liệu được đóng góp từ cộng đồng ở mục TÀI LIỆU trên thư viện Howkteam.com
Đừng quên like và share để ủng hộ Kteam và tác giả nhé!
Project
Nếu việc thực hành theo hướng dẫn không diễn ra suôn sẻ như mong muốn. Bạn cũng có thể tải xuống PROJECT THAM KHẢO ở link bên dưới!
Thảo luận
Nếu bạn có bất kỳ khó khăn hay thắc mắc gì về khóa học, đừng ngần ngại đặt câu hỏi trong phần BÌNH LUẬN bên dưới hoặc trong mục HỎI & ĐÁP trên thư viện Howkteam.com để nhận được sự hỗ trợ từ cộng đồng.
CỘNG ĐỒNG HỎI ĐÁP HOWKTEAM.COM GROUP THẢO LUẬN FACEBOOKNội dung bài viết
Tác giả/Dịch giả
K9Nhà sáng lập Howkteam.com, KQuiz.vn & tác giả các khóa học C#, Auto, Unity3D, Python....
Với mong muốn mang đến kiến thức chất lượng, miễn phí cho mọi người, với tâm huyết phá bỏ rào cản kiến thức từ việc giáo dục thu phí. Tôi đã cùng đội ngũ Kteam đã lập nên trang website này để thế giới phẳng hơn. Hãy cùng chúng tôi lan tỏa kiến thức đến cộng đồng!
Khóa học
Khóa Thực chiến SQL cùng Kteam - Dự án quản lý sinh viên
Trong các khóa học SỬ DỤNG SQL SERVER và PHÂN TÍCH THIẾT KẾ PHẦN MỀM, Kteam đã đề cập đến các kiến thức cần thiết để bạn có thể bắt đầu xây dựng một cơ sở dữ liệu với SQL server và truy vấn qua CSDL đó.
Ở combo Thực chiến SQL, chúng ta sẽ cùng nhau phân tích các CSDL đó từ đặc tả và ứng dụng các kiến thức đã học ở hai khóa trên vào việc giải quyết các yêu cầu thực tế của một CSDL. Trong bộ khóa học này các bạn sẽ đi qua các kiến thức từ cơ bản đến nâng cao qua các dự án khác nhau.
Nào! Chúng ta sẽ cùng nhau tìm hiểu dự án đầu tiên THỰC CHIẾN SQL CÙNG DỰ ÁN QUẢN LÝ SINH VIÊN
Đánh giá
trìnhdz đã đánh giá 21:40 10-07-2022 Báo cáo Vo Tan Duc đã đánh giá 18:15 06-04-2022Hay quá anh ơi. Em quen giọng anh rồi. Mong anh ra nhiều series thực chiến về phần mềm, sql, tool,...
Báo cáo DongTV đã đánh giá 17:42 31-07-2021 Báo cáo NamNhan đã đánh giá 19:37 16-07-2019 Báo cáo lehkhacson đã đánh giá 17:52 16-07-2019 Báo cáo Xem thêm ...Bình luận
Để bình luận, bạn cần đăng nhập bằng tài khoản Howkteam.
Đăng nhập minhbee203 đã bình luận 18:05 20-01-2023Anh ơi cho em hỏi câu 4 phải có thểm điều kiện để tách khoa chứ nhỉ, em cảm ơn ạ.
đây là bài của em ạ, anh xem giúp em.
ALTER PROC Print_Student_Thuoc_Khoa @maKhoa VARCHAR(10) AS BEGIN SELECT SINHVIEN.* FROM SINHVIEN LEFT JOIN LOP ON SINHVIEN.MaLop = LOP.MaLop LEFT JOIN KHOA ON LOP.MaKhoa = KHOA.MaKhoa WHERE KHOA.MaKhoa = @maKhoa END
0 0 Trả lời Báo cáo LTB137016 đã bình luận 23:54 01-12-2021· Hướng dẫn thực hành
Hãy viết các Stored Procedure sau:
- In danh sách các sinh viên của 1 lớp học
CREATE PROC TAKE_STUDENT_LIST(@MaMH VARCHAR(10))
AS
BEGIN
SELECT dbo.Sinh_Vien.Ho_ten
FROM dbo.Sinh_Vien LEFT JOIN dbo.Lop
ON Lop.MaLop = Sinh_Vien.Malop
WHERE dbo.Lop.MaLop = @MaMH
END
EXEC dbo.TAKE_STUDENT_LIST @MaMH = 'TH2002/02' -- varchar(10)
- Nhập vào 2 sinh viên, 1 môn học, tìm xem sinh viên nào có điểm thi môn học đó lần đầu tiên là cao hơn.
CREATE PROC Compare_Score(@MaSV1 VARCHAR(10),@MaSV2 VARCHAR(10),@MaMH VARCHAR(10))
AS
BEGINS
IF((
SELECT dbo.Ket_qua.Diem_thi FROM dbo.Ket_qua
WHERE dbo.Ket_qua.MaSV = @MaSV1 AND Lan_thi = '1' AND dbo.Ket_qua.MaMH = @MaMH) >
(SELECT dbo.Ket_qua.Diem_thi FROM dbo.Ket_qua
WHERE dbo.Ket_qua.MaSV = @MaSV2 AND Lan_thi = '1' AND dbo.Ket_qua.MaMH = @MaMH))
SELECT dbo.Ket_qua.MaSV,dbo.Sinh_Vien.Ho_ten FROM dbo.Ket_qua LEFT JOIN dbo.Sinh_Vien ON Sinh_Vien.MaSV = Ket_qua.MaSV WHERE dbo.Ket_qua.MaSV = @MaSV1
ELSE
SELECT dbo.Ket_qua.MaSV,dbo.Sinh_Vien.Ho_ten FROM dbo.Ket_qua LEFT JOIN dbo.Sinh_Vien ON Sinh_Vien.MaSV = Ket_qua.MaSV WHERE dbo.Ket_qua.MaSV = @MaSV2
END
EXEC dbo.Compare_Score @MaSV1 = '0212004', -- varchar(10)
@MaSV2 = '0212002', -- varchar(10)
@MaMH = 'THT01' -- varchar(10)
- Nhập vào 1 môn học và 1 mã sv, kiểm tra xem sinh viên có đậu môn này trong lần thi đầu tiên không, nếu đậu thì xuất ra là “Đậu”, không thì xuất ra “Không đậu”
CREATE PROC Check_Result(@masv VARCHAR(10),@mamh VARCHAR(10))
AS
BEGIN
IF((SELECT dbo.Ket_qua.Diem_thi FROM dbo.Ket_qua
WHERE dbo.Ket_qua.MaSV = @masv AND dbo.Ket_qua.MaMH = @mamh AND Lan_thi = '1')>5)
PRINT N'đậu'
ELSE
PRINT N'Không đậu'
END
EXEC dbo.Check_Result @masv = '0212002', -- varchar(10)
@mamh = 'THCS01' -- varchar(10)
- Nhập vào 1 khoa, in danh sách các sinh viên (mã sinh viên, họ tên, ngày sinh) thuộc khoa này.
CREATE PROC BP_List_Student_In_Khoa(@makhoa VARCHAR(10))
AS
BEGIN
SELECT dbo.Sinh_Vien.Ho_ten FROM dbo.Sinh_Vien LEFT JOIN lop ON Lop.MaLop = Sinh_Vien.Malop LEFT JOIN dbo.Khoa ON Khoa.MaKhoa = Lop.Ma_Khoa
WHERE dbo.Khoa.MaKhoa = @makhoa
END
EXEC dbo.BP_List_Student_In_Khoa @makhoa = 'CNTT' -- varchar(10)
EXEC dbo.BP_List_Student_In_Khoa @makhoa = 'VL' -- varchar(10)
- Nhập vào 1 sinh viên và 1 môn học, in điểm thi của sinh viên này của các lần thi môn học đó.
CREATE PROC BP_Score_List_1(@masv VARCHAR(10),@mamh VARCHAR(10))
AS
BEGIN
SELECT dbo.Mon_hoc.Ten_Mon_hoc,dbo.Ket_qua.Lan_thi,dbo.Ket_qua.Diem_thi FROM dbo.Ket_qua LEFT JOIN dbo.Mon_hoc ON Mon_hoc.MaMH = Ket_qua.MaMH
WHERE dbo.Ket_qua.MaMH = @mamh AND dbo.Ket_qua.MaSV = @masv
END
EXEC dbo.BP_Score_List_1 @masv = '0212001', -- varchar(10)
@mamh = 'THT01' -- varchar(10)
EXEC dbo.BP_Score_List_1 @masv = '0212003', -- varchar(10)
@mamh = 'THT02' -- varchar(10)
EXEC dbo.BP_Score_List_1 @masv = '0212004', -- varchar(10)
@mamh = 'THT01' -- varchar(10)
Ví dụ: Lần 1 : 10 Lần 2: 8
- Nhập vào 1 sinh viên, in ra các môn học mà sinh viên này phải học.
CREATE PROC BP_LIST_MH_1(@MaSV VARCHAR(10))
AS
BEGIN
SELECT DISTINCT dbo.Mon_hoc.Ten_Mon_hoc FROM dbo.Ket_qua
LEFT JOIN dbo.Mon_hoc
ON Mon_hoc.MaMH = Ket_qua.MaMH
WHERE @MaSV = dbo.Ket_qua.MaSV
END
EXEC dbo.BP_LIST_MH_1 @MaSV = '0212001' -- varchar(10)
- Nhập vào 1 môn học, in danh sách các sinh viên đậu môn này trong lần thi đầu tiên.
CREATE PROC BP_SV_DAU_LIST(@mamh VARCHAR(10))
AS
BEGIN
SELECT dbo.Sinh_Vien.Ho_ten FROM dbo.Ket_qua
LEFT JOIN dbo.Sinh_Vien ON Sinh_Vien.MaSV = Ket_qua.MaSV
WHERE @mamh = dbo.Ket_qua.MaMH AND dbo.Ket_qua.Lan_thi = '1' AND dbo.Ket_qua.Diem_thi>4
END
go
EXEC dbo.BP_SV_DAU_LIST @mamh = 'THT01' -- varchar(10)
EXEC dbo.BP_SV_DAU_LIST @mamh = 'THCS01' -- varchar(10)
- In điểm các môn học của sinh viên có mã số là maSinhVien được nhập vào.
Chú ý: điểm của môn học là điểm thi của lần thi sau cùng
CREATE PROC BP_LIST_LAST_SCORE_1(@Masv VARCHAR(10))
AS
BEGIN
SELECT dbo.Mon_hoc.Ten_Mon_hoc,dbo.Ket_qua.Diem_thi FROM dbo.Ket_qua LEFT JOIN dbo.Mon_hoc ON Mon_hoc.MaMH = Ket_qua.MaMH
LEFT JOIN (SELECT dbo.Ket_qua.MaMH,MAX(dbo.Ket_qua.Lan_thi) AS LAST_LAN_THI FROM dbo.Ket_qua
WHERE MaSV = @Masv GROUP BY dbo.Ket_qua.MaMH) AS LAST_RESULT ON LAST_RESULT.MaMH = Ket_qua.MaMH
WHERE dbo.Ket_qua.MaSV = @Masv AND LAST_RESULT.LAST_LAN_THI = dbo.Ket_qua.Lan_thi
END
GO
EXEC dbo.BP_LIST_LAST_SCORE_1 @Masv = '0212001' -- varchar(10)
EXEC dbo.BP_LIST_LAST_SCORE_1 @Masv = '0212003' -- varchar(10)
0 0 Trả lời Báo cáo DongTV đã bình luận 11:50 03-08-2021/* Câu 10. Với các sinh viên có tham gia đầy đủ các môn học của khoa, chương trình mà sinh viên đang theo học, hãy in ra điểm trung bình cho các sinh viên này. (Chú ý: Điểm trung bình được tính dựa trên điểm thi lần sau cùng). Sử dụng function 3 đã viết ở bài 4
=> tham gia đầy đủ các môn học của khoa => phải lấy ra được danh sách các môn học thuộc khoa & có kết quả thi => Viết FUNC liệt kê danh sách SV thuộc khoa: dbo.TVDF_DS_SV_Of_Khoa => Viết FUNC tính điểm trung bình: dbo.TVDF_Diem_TB_C2 => Viết FUNC tìm điểm thi của lần sau cùng : dbo.TVDF_DS_Lan_Thi_Cuoi => Viết View tạo report "KẾT QUẢ HỌC TẬP" */
-- Liệt kê danh sách Sinh Viên thuộc Khoa ALTER FUNCTION TVDF_DS_SV_Of_Khoa ( @MaKhoa VARCHAR(10) ) RETURNS TABLE RETURN SELECT DISTINCT SV.MaSV, SV.Ho_Ten, SV.Nam_Sinh, K.Ten_Khoa FROM dbo.Giang_Khoa AS GK LEFT JOIN dbo.Khoa AS K ON K.Ma_Khoa = GK.Ma_Khoa LEFT JOIN dbo.Lop AS L ON L.Ma_Khoa = K.Ma_Khoa LEFT JOIN dbo.Sinh_Vien AS SV ON SV.Ma_Lop = L.Ma_Lop LEFT JOIN dbo.Khoa_Hoc AS KH ON KH.Ma_Khoa_Hoc = L.Ma_Khoa_Hoc LEFT JOIN dbo.Mon_Hoc AS MH ON MH.MaMH = GK.MaMH LEFT JOIN dbo.Chuong_Trinh_Hoc AS CT ON CT.Ma_CT = GK.Ma_CT WHERE K.Ma_Khoa = @MaKhoa AND GK.Nam_Hoc >= KH.Nam_Bat_Dau AND GK.Nam_Hoc <= KH.Nam_Ket_Thuc GO
-- Tạo View KẾT QUẢ HỌC TẬP ALTER VIEW TVDV_Ket_Qua_Hoc_Tap AS SELECT DISTINCT SV.MaSV AS [MaSV], SV.Ho_Ten AS [HoVaTen], CT.Ten_CT AS [TenChuongTrinh], dbo.TVDF_Check_SV_Of_Khoa(SV.MaSV) AS [TenKhoa], dbo.TVDF_Diem_TB_C2(SV.MaSV) AS [DiemTrungBinh] FROM dbo.Sinh_Vien AS SV LEFT JOIN dbo.Lop AS L ON L.Ma_Lop = SV.Ma_Lop LEFT JOIN dbo.Khoa AS K ON K.Ma_Khoa = L.Ma_Khoa LEFT JOIN dbo.Chuong_Trinh_Hoc AS CT ON CT.Ma_CT = L.Ma_CT LEFT JOIN dbo.Mon_Hoc AS MH ON MH.Ma_Khoa = K.Ma_Khoa LEFT JOIN dbo.Khoa_Hoc AS KH ON KH.Ma_Khoa_Hoc = L.Ma_Khoa_Hoc LEFT JOIN dbo.Giang_Khoa AS GK ON GK.Ma_Khoa = K.Ma_Khoa WHERE GK.Nam_Hoc >= KH.Nam_Bat_Dau AND GK.Nam_Hoc <= KH.Nam_Ket_Thuc GO -- Câu truy vấn View Ket_Qua_Hoc_Tap SELECT * FROM TVDV_Ket_Qua_Hoc_Tap GO
0 0 Trả lời Báo cáo DongTV đã bình luận 10:43 03-08-2021-- CÁCH 2: Tạo Table CREATE TABLE Xep_Loai /* - Tạo table Xep_Loai - Insert MaSV vào table Xep_Loai - Tạo các FUNC truy vấn: (Tái sử dụng lại các câu truy vấn trên CÁCH 1: Tạo VIEW) + Điểm trung bình + Kết quả + Học lực - Update truy vấn table Xep_Loai */ ( MaSV VARCHAR(10), DiemTrungBinh FLOAT(2), KetQua NVARCHAR(10), HocLuc NVARCHAR(10) PRIMARY KEY (MaSV) FOREIGN KEY (MaSV) REFERENCES dbo.Sinh_Vien(MaSV) )
-- Insert MaSV từ table Sinh_Vien vào table Xep_Loai INSERT INTO dbo.Xep_Loai (MaSV) SELECT MaSV FROM dbo.Sinh_Vien GO SELECT * FROM dbo.Xep_Loai GO
-- Update truy vấn table Xep_Loai UPDATE dbo.Xep_Loai SET DiemTrungBinh = dbo.TVDF_Diem_TB_C2(MaSV) GO UPDATE dbo.Xep_Loai SET KetQua = dbo.TVDF_Ket_Qua(MaSV) GO UPDATE dbo.Xep_Loai SET HocLuc = dbo.TVDF_Hoc_Luc(MaSV) GO
-- Truy vấn table Xep_Loai:
SELECT * FROM dbo.Xep_Loai GO
0 0 Trả lời Báo cáo DongTV đã bình luận 01:14 03-08-2021/* Câu 9. Đưa dữ liệu vào bảng Xếp Loại. Sử dụng function 3 đã viết ở bài 4 Qui định : ketQua của sinh viên là 'Đạt' nếu diemTrungBinh (chỉ tính các môn đã có điểm) của sinh viên đó >= 5 và không quá 2 môn dưới 4 điểm, ngược lại thì kết quả là 'Không đạt' Đối với những sinh viên có ketQua là 'Đạt' thì hocLuc được xếp loại như sau: • diemTrungBinh >= 8 thì hocLuc là 'Giỏi' • 7 <= diemTrungBinh < 8 thì hocLuc là 'Khá' • Còn lại là 'Trung bình' */
/*-- CÁCH 1: Tạo View => Tạo FUNC Tính điểm trung bình (TVDF_Diem_TB_C2) => Tạo FUNC kết quả (không quá 2 môn dưới 4 điểm => Đạt / Không đạt) => Tạo FUNC học lực (Giỏi, Khá, Trung Bình) => Tạo View Xep_Loai (MaSV, DiemTrungBinh, KetQua, HocLuc) */
-- Tạo Function Điểm Trung Bình:
CREATE FUNCTION TVDF_Diem_TB_C2 ( @MaSV VARCHAR(10) ) RETURNS FLOAT(2) AS BEGIN DECLARE @DiemTB FLOAT(2) = 0; SELECT @DiemTB = ROUND(AVG(DiemThiCuoi), 3) FROM ( SELECT DISTINCT KQ.MaMH, dbo.TVDF_Diem_Thi_Cuoi(@MaSV,KQ.MaMH) AS [DiemThiCuoi] FROM dbo.Ket_Qua AS KQ WHERE KQ.MaSV = @MaSV ) AS Ket_Qua_1 RETURN @DiemTB END GO
-- Tạo Function Kết Quả CREATE FUNCTION TVDF_Ket_Qua ( @MaSV VARCHAR(10) ) RETURNS NVARCHAR(10) AS BEGIN DECLARE @Kq NVARCHAR(10); DECLARE @Dtb FLOAT (2); SELECT @Dtb = dbo.TVDF_Diem_TB_C2(@MaSV) IF @Dtb >= 5 SET @Kq = N'Đạt' ELSE SET @Kq = N'Không đạt' RETURN @Kq END GO
-- Tạo Function Học Lực CREATE FUNCTION TVDF_Hoc_Luc ( @MaSV VARCHAR(10) ) RETURNS NVARCHAR(10) AS BEGIN DECLARE @Kq NVARCHAR(10); DECLARE @Dtb FLOAT (2); DECLARE @HocLuc NVARCHAR(10); SELECT @Dtb = dbo.TVDF_Diem_TB_C2(@MaSV) SELECT @Kq = dbo.TVDF_Ket_Qua(@MaSV) IF (@Kq = N'Đạt' AND @Dtb >= 8) SET @HocLuc = N'Giỏi' ELSE IF (@Kq = N'Đạt' AND @Dtb < 8 AND @Dtb > 7) SET @HocLuc = N'Khá' ELSE IF @Dtb IS NOT NULL SET @HocLuc = N'Trung Bình' ELSE SET @HocLuc = N'' RETURN @HocLuc END GO
-- Tạo View Xếp Loại ALTER VIEW TVDV_Xep_Loai AS SELECT SV.MaSV AS [MaSV], dbo.TVDF_Diem_TB_C2(SV.MaSV) AS [DiemTrungBinh], dbo.TVDF_Ket_Qua(SV.MaSV) AS [KetQua], dbo.TVDF_Hoc_Luc(SV.MaSV) AS [HocLuc] FROM dbo.Sinh_Vien AS SV GO
-- Truy vấn View Xếp Loại SELECT * FROM dbo.TVDV_Xep_Loai GO
0 0 Trả lời Báo cáo Xem thêm ...Danh sách bài giảng
Nội dungKhông có video.
Danh sách bài giảngĐánh giá và Nhận xét
Quan tâm Tag theo dõiYêu cầu đăng nhập
Để sử dụng tính năng này, Bạn cần đăng nhập bằng tài khoản Howkteam.
Đăng nhậpAD BLOCKER DETECTED
Để xem được nội dung và giúp Kteam duy trì hoạt động. Bạn vui lòng tắt Adblock trên website howkteam.vn nhé!
Từ khóa » Các Bài Tập Về Procedure Trong Sql
-
Bài Giải Bài Tập Trigger, Thủ Tục Và Hàm_Hệ Quản Trị Cơ Sở Dữ ...
-
[Tự Học SQL] Bài Tập Thực Hành Về Stored Procedures »
-
Bài Tập 2: Thực Thi Dữ Liệu Và Stored Procedure Trong SQL Server
-
Bài Tập Stored Procedure Có Lời Giải, Thực Hành Hàng Tuần
-
Một Số Bài Tập Mẫu SQL(Phân II) - Dotnet Group
-
Xây Dựng Stored Procedure Và Trigger để Thực Hiện Các Chức Năng ...
-
[PDF] MỤC LỤC - WEBSITE HỖ TRỢ HỌC TẬP
-
Các Bài Tập Về Procedure Trong Sql Archives - .vn
-
Stored Procedure Trong SQL Server
-
Bài 6: Stored Procedure Và T-SQL Nâng Cao - GÓC LẬP TRÌNH
-
Stored Procedure Và Trigger Trong SQL Server - Viblo
-
Bài 15: Sử Dụng Stored Procedure Trong Database | Chia Sẻ Về Chủ ...
-
[PDF] Bài Thực Hành Số 5 PL/SQL (2)
-
Hướng Dẫn Tạo Sử Dụng Stored Procedure Trong SQL Server