2
respostas

Alteração na procedure

Durante a aula de Looping com cursor, o professor notou que a procedure mostrava o último resultado duas vezes. Pra consertar, ele utilizou o comando IF. Na procedure do exercício, o mesmo está ocorrendo. O valor do limite de crédito do último cliente está sendo somado duas vezes, logo é necessário incluir o comando IF no código do exercício também. Ficaria assim:

CREATE PROCEDURE `Limite_credito`()
BEGIN
    DECLARE fim INT DEFAULT 0;
    DECLARE limitecliente FLOAT;
    DECLARE limitetotal FLOAT;
    DECLARE c CURSOR FOR 
    SELECT LIMITE_DE_CREDITO FROM tabela_de_clientes;
    DECLARE CONTINUE HANDLER  FOR NOT FOUND SET fim = 1;
    SET limitecliente = 0;
    SET limitetotal = 0;
    OPEN c;
    WHILE fim = 0
    DO
        FETCH c INTO limitecliente;
        IF fim = 0 THEN
        SET limitetotal = limitetotal + limitecliente;
        END IF;
    END WHILE;
    SELECT limitetotal;
    CLOSE C;
END
2 respostas

Olá Marcelo!

Desculpa a demora em ti responder, mas realmente deve ter ocorrido algum engano com a respostá do exercício e realmente você está certo, sem colocar o IF ele soma o ultimo limite de credito que é de "90000" duas vezes. Vou está repassando isso pra o pessoal verificar esse exercício.

Espero que tenha ajudado!

Olá Jonilson! Sem problemas. Ajudou sim, obrigado.