[ Foro de SQL (y MySQL) ]

CURSOR EN Workbench (no me funciona)

29-Mar-2021 17:48
Invitado (Miwe)
0 Respuestas

Hola amigos, estoy intentando hacer una tarea pero no logro que me funcione el cursor que declaro... A ver si hay algún alma caritativa que me pueda ayudar.
El enunciado es el siguiente:
Crea una función que reciba como parámetro de entrada el número correspondiente a un mes y devuelva el importe total facturado ese mes. Utiliza para ello las dos funciones obtenidas en la práctica anterior. NOTAS:
• Por ejemplo, para Enero, número del mes 1.
• Utilizar un cursor para recorrer cada fila de la consulta de los IdReparacion que se obtengan en ese mes.
• Controla mediante un HANDLER que la consulta haya devuelto alguna fila.

DROP FUNCTION IF EXISTS Ejercicio7;
DELIMITER //
CREATE FUNCTION Ejercicio7(Mes INT)
RETURNS DEC(6,2)
DETERMINISTIC
BEGIN
DECLARE total DEC(6,2);
   DECLARE ID INT DEFAULT 0;

   DECLARE Fact_Mes CURSOR FOR
   SELECT IdReparacion FROM reparaciones WHERE MONTH(FechaSalida)=Mes;
   DECLARE CONTINUE HANDLER FOR NOT FOUND SET @final = TRUE;
   SET total=0;
   SET ID=Mes;
   OPEN Fact_Mes;
   bucle:LOOP
FETCH Fact_Mes INTO ID;
IF @final THEN
LEAVE bucle;
ELSE
           SELECT Ejercicio6A(ID)+Ejercicio6B(ID) INTO total;
           END IF;
END LOOP bucle;
   CLOSE Fact_Mes;
RETURN total;
END //
DELIMITER ;

SELECT Ejercicio7(1);




(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)