Ver Mensaje Individual
  #6 (permalink)  
Antiguo 25/12/2012, 05:54
solilopi
 
Fecha de Ingreso: enero-2012
Mensajes: 52
Antigüedad: 13 años, 1 mes
Puntos: 1
De acuerdo Respuesta: Error en procedimiento almacenado

La solución es muy simple, aunque no la ví hasta el final.
Lo que tenía que hacer era convertir las variables de tiempo a minutos pués las tenía en segundos. el resultado es:
Código MySQL:
Ver original
  1. delimiter //
  2.  
  3. CREATE PROCEDURE inserciones (recorrido varchar(30) charset utf8 ,tempo varchar(8) charset utf8,
  4. espacio decimal(5,2) unsigned)
  5. declare hora int(8) default 0;
  6. declare minuto int(8)default 0;
  7. declare segundo int(8) default 0;
  8. declare resultado decimal(5,2) default 0;
  9. declare tiempo_en_minutos decimal(7,3)default 0;
  10. declare calorias decimal(6,2) default 0;
  11. declare operacion decimal(5,4) default 0;
  12.  
  13. set space = espacio*1000;
  14. set hora = cast(substring(tempo,1,2)as unsigned);
  15. set minuto = cast(substring(tempo,4,2)as unsigned);
  16. set segundo = cast(substring(tempo,-2)as unsigned);
  17.  
  18. set hora = hora*3600;
  19. set minuto = minuto*60;
  20. set resultado = (space/(hora+minuto+segundo))*3.6;
  21. set tiempo_en_minutos = (hora+minuto+segundo)/60;
  22.  
  23. select coeficiente from coeficientes where resultado
  24. between desde and hasta into operacion;
  25.  
  26. set calorias = ((85*2.2)*operacion)*tiempo_en_minutos;
  27.  
  28. insert into datos (recorrido,tiempo,distancia,calorias,kmh)
  29. values (recorrido,tempo,espacio,calorias,resultado);
  30.  
  31. END//

Última edición por gnzsoloyo; 25/12/2012 a las 07:59 Razón: Mal etiquetado. Corresponde usar Highlight "MySQL"