Calculando média
31/05/2017
0
Galera sou iniciante e gostaria de tirar uma duvida.
Cria um FUNCTION no MYSQL que me retornaria a média de um aluno.
Mas gostaria de saber como faço pra calcular todas as notas de todos os alunos e me retorna a maior nota.
DELIMITER //
CREATE FUNCTION media (nome VARCHAR(10))
RETURNS FLOAT
DETERMINISTIC
BEGIN
DECLARE n1,n2,n3,n4 INT;
DECLARE med FLOAT;
SELECT nota1,nota2,nota3,nota4 INTO n1,n2,n3,n4 FROM notas WHERE
aluno = nome;
SET med = (n1+n2+n3+n4)/4;
RETURN med;
END
//
DELIMITER ;
Cria um FUNCTION no MYSQL que me retornaria a média de um aluno.
Mas gostaria de saber como faço pra calcular todas as notas de todos os alunos e me retorna a maior nota.
DELIMITER //
CREATE FUNCTION media (nome VARCHAR(10))
RETURNS FLOAT
DETERMINISTIC
BEGIN
DECLARE n1,n2,n3,n4 INT;
DECLARE med FLOAT;
SELECT nota1,nota2,nota3,nota4 INTO n1,n2,n3,n4 FROM notas WHERE
aluno = nome;
SET med = (n1+n2+n3+n4)/4;
RETURN med;
END
//
DELIMITER ;
Francismax
Curtir tópico
+ 0
Responder
Post mais votado
31/05/2017
Bom dia Francismax!
Fiz esse exemplo no SQL Server. Estuda ele e adapta pro MySQL.
Se a resposta for útil não esqueça de dar um like!
Fiz esse exemplo no SQL Server. Estuda ele e adapta pro MySQL.
--Criando a tabela CREATE TABLE notas ( aluno VARCHAR(50), nota1 DECIMAL(10,2), nota2 DECIMAL(10,2), nota3 DECIMAL(10,2), nota4 DECIMAL(10,2) ); --Inserindo alguns registros INSERT INTO notas (aluno, nota1, nota2, nota3, nota4) VALUES ('Daniel', 10, 9, 8, 7); INSERT INTO notas (aluno, nota1, nota2, nota3, nota4) VALUES ('Marcos', 9, 8, 7, 6); INSERT INTO notas (aluno, nota1, nota2, nota3, nota4) VALUES ('Tiago', 8, 7, 6, 5); INSERT INTO notas (aluno, nota1, nota2, nota3, nota4) VALUES ('Gleydson', 7, 6, 5, 4); INSERT INTO notas (aluno, nota1, nota2, nota3, nota4) VALUES ('Rafael', 6, 5, 4, 3); --Criando a função CREATE FUNCTION fn_media (@aluno VARCHAR(50)) RETURNS DECIMAL(10, 2) AS BEGIN DECLARE @media DECIMAL(10, 2); SET @media = (SELECT (nota1 + nota2 + nota3 + nota4) / 4 FROM notas WHERE aluno = @aluno); RETURN @media; END; --Calculando a média de todos os alunos SELECT aluno, dbo.fn_media(aluno) AS Media FROM notas; --Trazendo a maior média SELECT aluno, dbo.fn_media(aluno) FROM notas WHERE dbo.fn_media(aluno) = (SELECT MAX(dbo.fn_media(n.aluno)) FROM notas n);
Se a resposta for útil não esqueça de dar um like!
Daniel Araújo
Responder
Clique aqui para fazer login e interagir na Comunidade :)