Hola Marco,
Construí mi propio script de prueba en base a la información que colocastes en el mensaje (no tomé todas las columnas de la tabla "clie_clientes", solo alguas).
No entiendo bien la lógica del stored procedure ya que estás insertando varias veces al mismo cliente, sin embargo, si esa es la lógica entonces veamos si mi script te puede ayudar a solucionar el tu problema.
Mi script de prueba:
DROP TABLE IF EXISTS `clie_clientes`;
CREATE TABLE `clie_clientes` (
`id_cliente` int(11) NOT NULL auto_increment,
`clave_cliente_re10` varchar(20) collate latin1_spanish_ci default NULL,
`tipo_contable_cc00` varchar(20) collate latin1_spanish_ci default NULL,
`tipo_cliente_cc00` varchar(20) collate latin1_spanish_ci default NULL,
`razon_social` varchar(20) collate latin1_spanish_ci default NULL,
`fecha_alta` date default NULL,
PRIMARY KEY (`id_cliente`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_spanish_ci;
/*!50003 DROP PROCEDURE IF EXISTS `sp_inserta_cliente` */;
DELIMITER $$
/*!50003 CREATE PROCEDURE `sp_inserta_cliente`(p_fecha_ini DATE, p_fecha_fin DATE,
p_clave_cliente VARCHAR(15), p_razon_social VARCHAR(100))
BEGIN
DECLARE dFecha DATE;
SET dFecha = p_fecha_ini ;
WHILE dFecha <= p_fecha_fin DO
INSERT INTO clie_clientes
(`clave_cliente_re10`,
`tipo_contable_cc00`,
`tipo_cliente_cc00`,
`razon_social`,
`fecha_alta`)
VALUES (
p_clave_cliente,
'INGRESOS',
'AGENCIA',
p_razon_social,
dFecha);
SET dFecha = DATE_ADD(dFecha , INTERVAL 1 DAY);
END WHILE ;
END */$$
DELIMITER ;
CALL sp_inserta_cliente('2007-01-01', '2007-01-05', 'MARKITO-001-56', 'VIAJES MARKITO');
SELECT * FROM clie_clientes;
Se esperan cinco (5) registros insertados en la tabla "clie_clientes".
Resultado:
id_cliente clave_cliente_re10 tipo_contable_cc00 tipo_cliente_cc00 razon_social fecha_alta
---------- ------------------ ------------------ ----------------- -------------- -------------------
1 MARKITO-001-56 INGRESOS AGENCIA VIAJES MARKITO 2007-01-01
2 MARKITO-001-56 INGRESOS AGENCIA VIAJES MARKITO 2007-01-02
3 MARKITO-001-56 INGRESOS AGENCIA VIAJES MARKITO 2007-01-03
4 MARKITO-001-56 INGRESOS AGENCIA VIAJES MARKITO 2007-01-04
5 MARKITO-001-56 INGRESOS AGENCIA VIAJES MARKITO 2007-01-05
La única difrerencia que veo es que los dos (2) primeros parámetros en la llamada al stored procedure que son de tipo fecha (DATE) debes pasarlos entre comillas simples (').
Edited 1 time(s). Last edit at 06/11/2007 02:15PM by William Chiquito.