Código:
Las tablas de mi bd son:DELIMITER // CREATE PROCEDURE inserciones (ruta varchar(30),tempo varchar(8), espacio decimal(5,2)) BEGIN declare space decimal (7,2); declare hora int(8); declare minuto int(8); declare segundo int(8); declare resultado decimal(7,2); declare kilocal decimal(5.2); declare operacion decimal(7.2); set space = espacio*1000; set hora = cast(substring(tempo,1,2)as unsigned); set minuto = cast(substring(tempo,4,2)as unsigned); set segundo = cast(substring(tempo,-2)as unsigned); set hora = hora*3600; set minuto = minuto*60; set resultado = (space/(hora+minuto+segundo))*3.6; select coeficiente from coeficientes where resultado between coeficientes.desde and coeficientes.hasta into operacion; set kilocal = (85*operacion*((hora*60)+minuto+(segundo/60))); insert into datos (recorrido,tiempo,distancia,calorias,kmh) values (ruta,tempo,espacio,kilocal,resultado); END //
Código:
YCREATE TABLE IF NOT EXISTS `datos` ( `salida_num` int(10) unsigned NOT NULL AUTO_INCREMENT, `recorrido` varchar(30) COLLATE utf8_spanish2_ci NOT NULL, `tiempo` varchar(8) COLLATE utf8_spanish2_ci NOT NULL, `distancia` decimal(5,2) NOT NULL, `calorias` decimal(5,2) NOT NULL, `kmh` decimal(5,2) NOT NULL, PRIMARY KEY (`salida_num`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_spanish2_ci AUTO_INCREMENT=1 ;
Código:
Mi problema es que al realizar el procedimiento anterior, en la tabla datos no me inserta nada en el campo calorias, no sé porqué. ¿Podéis ayudarme?. Gracias. CREATE TABLE IF NOT EXISTS `coeficientes` ( `kmh` decimal(3,1) unsigned NOT NULL, `desde` decimal(4,2) unsigned NOT NULL, `hasta` decimal(4,2) unsigned NOT NULL, `coeficiente` decimal(5,4) unsigned NOT NULL, PRIMARY KEY (`kmh`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_spanish2_ci;