Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
2
respuestas

Calculando el valor total de la facturación

CREATE DEFINER=`root`@`localhost` PROCEDURE `total_facturacion_mes_año`(vaño INTEGER, vmes INTEGER)
BEGIN
    DECLARE vfacturacion_total FLOAT DEFAULT 0;
    DECLARE vfacturacion_nueva FLOAT;
    DECLARE vfin_cursor INTEGER DEFAULT 0;
    DECLARE c CURSOR FOR
    SELECT (B.CANTIDAD * B.PRECIO) FROM facturas A
    INNER JOIN items_facturas B
    ON A.NUMERO = B.NUMERO
    WHERE MONTH(A.FECHA_VENTA) = vmes AND YEAR(A.FECHA_VENTA) = vaño;

    DECLARE CONTINUE HANDLER FOR NOT FOUND
    SET vfin_cursor = 1;

    OPEN c;
        WHILE vfin_cursor = 0
            DO
            FETCH c INTO vfacturacion_nueva;
            SET vfacturacion_total = vfacturacion_total + vfacturacion_nueva;
        END WHILE;
    CLOSE c;

    SELECT concat("La facturacion total del año ", vaño , " y mes ", vmes , " es de: ", vfacturacion_total) AS Resultado;

END
2 respuestas

Hola Julian, espero que estés bien!

Gracias por compartir tu solución, felicitaciones!

Anexo: el foro se centra en las dudas de contenido y actividad, ¡pero apreciamos sus resultados! Te sugiero que compartas tus resultados en el canal de resultados de tu grupo en lo servidor en Discord.

Mucho éxito en todo lo que te propongas y si tienes alguna duda aquí estaremos para apoyarte.

¡Vamos juntos!

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios!
solución!
CREATE DEFINER=`root`@`localhost` PROCEDURE `total_facturacion_mes_año`(vaño INTEGER, vmes INTEGER)
BEGIN
    DECLARE vfacturacion_total FLOAT DEFAULT 0;
    DECLARE vfacturacion_nueva FLOAT;
    DECLARE vfin_cursor INTEGER DEFAULT 0;
    DECLARE c CURSOR FOR
    SELECT (B.CANTIDAD * B.PRECIO) FROM facturas A
    INNER JOIN items_facturas B
    ON A.NUMERO = B.NUMERO
    WHERE MONTH(A.FECHA_VENTA) = vmes AND YEAR(A.FECHA_VENTA) = vaño;

    DECLARE CONTINUE HANDLER FOR NOT FOUND
    SET vfin_cursor = 1;

    OPEN c;
        WHILE vfin_cursor = 0
            DO
            FETCH c INTO vfacturacion_nueva;
            SET vfacturacion_total = vfacturacion_total + vfacturacion_nueva;
        END WHILE;
    CLOSE c;

    SELECT concat("La facturacion total del año ", vaño , " y mes ", vmes , " es de: ", vfacturacion_total) AS Resultado;

END