1
respuesta

Aportacion

Gracias a las anteriores soluciones llegue a esto:

USE JUGOS_VENTAS;
DROP PROCEDURE IF EXISTS LIMITE_CREDITOS;
DELIMITER $$
USE JUGOS_VENTAS$$
CREATE PROCEDURE LIMITE_CREDITOS()
BEGIN
DECLARE TMPCREDITO INT;
DECLARE FLAG BIT(1) DEFAULT 1;
DECLARE ACCUMULATE INT DEFAULT 0;
DECLARE LCURSOR CURSOR FOR SELECT LIMITE_dE_CREDITO FROM TABLA_DE_CLIENTES;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET FLAG = 0;

OPEN LCURSOR;
WHILE FLAG = 1
DO
    FETCH LCURSOR INTO TMPCREDITO; -- This gives NOT FOUND when reach the end
    IF FLAG = 1 -- VERY IMPORTANT, BECAUSE IT CAN CAUSE SUM TWICE THE LAST COLUMN
    THEN
        SET ACCUMULATE = ACCUMULATE + TMPCREDITO;
    END IF;
END WHILE;

CLOSE LCURSOR;
SELECT CONCAT("EL LIMITE TOTAL ES: ", ACCUMULATE);

END$$

CALL LIMITE_CREDITOS;

SELECT SUM(LIMITE_DE_CREDITO) FROM TABLA_DE_CLIENTES; -- to check the result

Espero les sirva.

1 respuesta

Hola Edsel, espero que estés bien! ¡Que increible! Felicitaciones por la creatividad! Gracias por compartir tu código con nosotros. Le recomendamos que comparta su código con sus colegas en Discord, allí es posible que todos lo vean e interactúen contigo. Si tiene alguna pregunta sobre el contenido del curso, estamos aquí para ayudarlo. ¡Sigue practicando! ¡Vamos juntos! :)

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios! :)