Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Solución alternativa

DELIMITER $$
CREATE PROCEDURE `suma_dias_facturas_mejorado`()
BEGIN
    DECLARE fecha_inicial DATE;
    DECLARE fecha_final DATE;
    DECLARE n_facturas INT;
    
    -- Usar formato estándar YYYY-MM-DD:
    SET fecha_inicial = '2017-01-01'; 
    SET fecha_final = '2017-01-10';
    
    -- Crear tabla temporal para acumular resultados:
    CREATE TEMPORARY TABLE IF NOT EXISTS resultados (RESULTADO VARCHAR(60));
    
    WHILE fecha_inicial <= fecha_final DO
        SELECT COUNT(*) INTO n_facturas  
        FROM facturas 
        WHERE FECHA_VENTA = fecha_inicial;
        
        -- Insertar en tabla temporal (no múltiples SELECT):
        INSERT INTO resultados 
        VALUES (CONCAT(
            DATE_FORMAT(fecha_inicial, '%d/%m/%Y'), 
            ' - ', 
            CAST(n_facturas AS CHAR)
        ));
        
        SET fecha_inicial = ADDDATE(fecha_inicial, INTERVAL 1 DAY);
    END WHILE;
    
    -- Mostrar todos los resultados juntos:
    SELECT * FROM resultados;
    DROP TEMPORARY TABLE resultados;
END $$
DELIMITER ;
1 respuesta

¡Hola Mariana! ¿Cómo estás?

Gracias por tu aporte en el foro. Su contribución es esencial para el crecimiento de nuestra comunidad en Alura.

Sigue así y no dudes en volver al foro si tienes alguna pregunta o dificultad.

Abrazos y buenos estudios!

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