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

SP llamado suma_dias_facturas

DELIMITER //

CREATE PROCEDURE suma_dias_facturas() BEGIN DECLARE fecha_inicial DATE; DECLARE fecha_final DATE; DECLARE num_facturas INT;

-- Inicializar variables
SET fecha_inicial = '2017-01-01';
SET fecha_final = '2017-01-10';

-- Bucle para recorrer cada día desde la fecha inicial hasta la fecha final
WHILE fecha_inicial <= fecha_final DO
    -- Contar el número de facturas para la fecha actual
    SELECT COUNT(*) INTO num_facturas
    FROM facturas
    WHERE FECHA_VENTA = fecha_inicial;
    
    -- Mostrar la fecha y el número de facturas
    SELECT CAST(fecha_inicial AS CHAR) AS Fecha, num_facturas AS 'Número de Facturas';
    
    -- Sumar 1 día a la fecha inicial
    SET fecha_inicial = ADDDATE(fecha_inicial, INTERVAL 1 DAY);
END WHILE;

END;

//

DELIMITER ;

Explicación:

  1. CREATE PROCEDURE suma_dias_facturas(): Crea un procedimiento almacenado llamado suma_dias_facturas.

  2. DECLARE: Declara las variables fecha_inicial y fecha_final de tipo DATE, y num_facturas de tipo INT.

  3. SET fecha_inicial = '2017-01-01'; SET fecha_final = '2017-01-10';: Inicializa las variables fecha_inicial y fecha_final.

  4. WHILE fecha_inicial <= fecha_final DO: Inicia un bucle WHILE que recorre cada día desde fecha_inicial hasta fecha_final.

  5. SELECT COUNT() INTO num_facturas FROM facturas WHERE FECHA_VENTA = fecha_inicial;*: Cuenta el número de facturas para la fecha actual y almacena el resultado en num_facturas.

  6. SELECT CAST(fecha_inicial AS CHAR) AS Fecha, num_facturas AS 'Número de Facturas';: Muestra la fecha y el número de facturas, convirtiendo fecha_inicial a tipo CHAR.

  7. SET fecha_inicial = ADDDATE(fecha_inicial, INTERVAL 1 DAY);: Suma 1 día a la fecha_inicial.

  8. END WHILE: Termina el bucle WHILE.

1 respuesta

Hola, Javier ,

Gracias por compartir tu código con nosotros. Recuerda que estamos aquí para ayudarte. Si necesitas ayuda, no dudes en buscarnos en el foro.

¡Gracias nuevamente!

Saludos,

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