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 ;