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