Hỏi đáp

Chia sẻ kiến thức, cùng nhau phát triển

store procedure (sql) tính điểm trung bình cho các học viên

7 năm trước 2.573 lượt xem 4 bình luận 7 năm trước

Mọi người ơi, em đang học ngôn ngữ truy vấn sql và cho em hỏi để tạo một store procedure tính điểm trung bình các học viên theo yêu cầu:

--Nhận vào mã một học viên, cho biết điểm trung bình của học viên đó.
--Điểm trung bình được tính trên điểm thi lần thi sau cùng của học viên theo công thức:
--Điểm trung bình = ∑(Điểm * Số tín chỉ) / ∑Số tín chỉ

link quan hệ giữa các bảng: https://photos.app.goo.gl/as5J7OuzODwZwQG62

em suy nghĩ mãi không ra, mong các anh chị giúp đỡ, em cám ơn

csdl QLHocVien

 

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
phamchien96nd đã bình luận 7 năm trước

tổng số tín chỉ là sao nhỉ.mình hơi khó hiểu

Ngọc Phạm đã bình luận 7 năm trước

Kết quả của bạn đây ^^!


SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE P_DiemTrungBinhCuaHocVien
	@MaHocVien nchar(10)
AS
BEGIN
	SET NOCOUNT ON;
	
	--số điểm theo lần thi cao nhất của môn học của học viên với số tín chỉ
		select sum(a.Diem*MH.SoChi)/sum(MH.SoChi) [DiemTrungBinh]
		from dbo.KETQUA a 
			inner join (
			select kq.MaHV,kq.MaMonHoc,max(kq.LanThi) LanThiLN
			from dbo.KETQUA kq
			group by kq.MaHV,kq.MaMonHoc
			) b
		on (a.MaHV=b.MaHV and a.MaMonHoc=b.MaMonHoc and a.LanThi=b.LanThiLN)
		join dbo.HOCVIEN HV on a.MaHV = HV.MaHocVien
		JOIn dbo.MONHOC MH on a.MaMonHoc = MH.MaMonHoc
		WHERE a.MaHV = @MaHocVien    
	
END
GO

 

Câu hỏi mới nhất