Jump to content
Fórum Script Brasil
  • 0

PROCEDURE não executa insert


Guilherme Teixeira

Question

Ola galera boa noite.

Estou testando a seguinte PROCEDURE, mas ela não excuta o INSERT que está entre os IFs e o REPEAT. Já testei todos selects e está OK retornando os resultados certos.

alguém poderia me ajudar?

-- --------------------------------------------------------------------------------
-- Routine DDL
-- Note: comments before and after the routine body will not be stored by the server
-- --------------------------------------------------------------------------------
DELIMITER $$

CREATE DEFINER=`root`@`localhost` PROCEDURE `InsereNotasAdicionais`(IN `turmaId` INT, IN `aluno` INT, IN `bimestre` INT)
BEGIN
        -- bimestre vem por parametro
        -- aluno vem por parametro
        -- turmaId vem por parametro

    DECLARE id, materia INT;
    DECLARE done INT DEFAULT 0;
    
    DECLARE pontos float(10,2) default 0;
    DECLARE idAtualidades int default 0;
    DECLARE totalAcertos int default 0;
    DECLARE totalAcertosAt int default 0;
    DECLARE totalQuestoes int default 1;
    DECLARE totalQuestoesAt int default 1;
    


    DECLARE cur1 CURSOR FOR Select idTipoNota, idDetalheMateria from Tiponota INNER JOIN DetalheMaterias USING(idDetalheMateria) Where calculoAutomatico = 1 AND Idturma = turmaId AND idPeriodo = bimestre;
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;

    --  id de Atualidades
    Select idDetalheMateria From detalheMaterias Where Materia = "Atualidades" and IdTurma = turmaId INTO idAtualidades;
    
    
     
    OPEN cur1;
    
  REPEAT

    FETCH cur1 INTO id, materia;
        IF NOT done THEN
        
        IF (materia <> idAtualidades) THEN
                        
                                        -- exclui as notas antigas
                                    DELETE FROM Nota Where idTipoNota IN(SELECT idTipoNota From TipoNota Where idPeriodo = bimestre AND  IdDetalheMateria = materia AND calculoAutomatico = 1) AND idPessoa = aluno;
                        
                                   -- total questoes dadas na materia
                                   Select IF(SUM(QuantidadeQuestoes) IS NULL, 1, SUM(QuantidadeQuestoes))  FROM Prova Where idTurma = turmaId AND idDetalheMAteria = materia AND  idPeriodo = bimestre INTO totalQuestoes;
     
                                   -- total questoes dadas em atualidades
                                   Select IF(SUM(QuantidadeQuestoes) IS NULL, 1, SUM(QuantidadeQuestoes)) FROM Prova Where idTurma = turmaId AND idDetalheMAteria = idAtualidades AND  idPeriodo = bimestre INTO totalQuestoesAt;  
                            
                                   -- total de questoes acertadas
                                   Select IF(SUM(Acertos) IS NULL, 0, SUM(Acertos))   from Acertos Where idPessoa = aluno AND idProva IN(SELECT idProva FROM Prova Where idTurma = TurmaId AND idDetalheMateria = materia) INTO totalAcertos;
     
                                   -- total de questoes acertadas em Atualidades
                                   Select IF(SUM(Acertos) IS NULL, 0, SUM(Acertos)) from Acertos Where idPessoa = aluno AND idProva IN(SELECT idProva FROM Prova Where idTurma = TurmaId AND idDetalheMateria = idAtualidades) INTO totalAcertosAt;
       
                                   SET pontos = ((totalAcertos/totalQuestoes)*10)+((totalAcertosAt/totalQuestoesAt));
       
       IF (pontos > 10) then 
        SET pontos = 10;
       End If;                  
                 INSERT INTO Nota (Nota, idPessoa, idDetalheMateria, idTipoNota) VALUES (pontos, aluno, materia, id);
                 
            END IF;
            
      END IF;
 UNTIL done END REPEAT;

CLOSE cur1;
END

Link to comment
Share on other sites

1 answer to this question

Recommended Posts

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...