Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/12/2010, 17:45
sebas84
 
Fecha de Ingreso: diciembre-2010
Mensajes: 31
Antigüedad: 13 años, 4 meses
Puntos: 0
Consulta sobre procedimientos almacenados

Buenas.. como va?? queria consultarles acerca de algo q me esta pasando con los procedimientos almacenados... va en realidad con uno, porque vengo creando y hasta ahora todo bien, hasta que quise hacer el siguiente y me tiro error... Todo cuando empece a usar varias consultas dentro del SP.. que es el siguiente

Código:
DELIMITER |

CREATE PROCEDURE recorridos(in idGps int,in buscar int)
BEGIN
IF buscar = 1 THEN
	SELECT * 
	FROM recorridos 
	Where DATE_SUB(CURDATE(), INTERVAL 1 DAY) = DATE(fecha) AND idGps = idGps;
ELSE IF buscar=2 THEN 
	SELECT * FROM recorridos 
	Where DATE_SUB(CURDATE(), INTERVAL 0 DAY) = DATE(fecha) AND idGps = idGps;
ELSE IF buscar=3 THEN
	SELECT * FROM 
	recorridos 
	Where ( DATE_SUB(CURDATE(), INTERVAL 0 DAY) = DATE(fecha) ) AND ( TIMEDIFF(CURTIME(), hora) < '12:00:00' ) AND (idGps = idGps);
ELSE IF buscar=4 THEN
	SELECT * 
	FROM recorridos 
	Where ( DATE_SUB(CURDATE(), INTERVAL 0 DAY) = DATE(fecha) ) AND ( TIMEDIFF(CURTIME(), hora) < '06:00:00' ) AND (idGps = idGPS);
ELSE IF buscar=5 THEN
	SELECT * 
	FROM recorridos 
	Where ( DATE_SUB(CURDATE(), INTERVAL 0 DAY) = DATE(fecha) ) AND ( TIMEDIFF(CURTIME(), hora) < '01:00:00' ) AND (idGps = idGps);
ELSE IF buscar=6 THEN
	SELECT * 
	FROM recorridos 
	WHERE codRecorrido = (SELECT max(codRecorrido) FROM recorridos Where idGps = idGps);
ELSE IF buscar=7 THEN
	SELECT fecha, sum(velocidad / count(fecha), max(velocidad)
	FROM recorridos 
	WHERE ( DATE(fecha) > DATE_SUB(CURDATE(), INTERVAL 7 DAY) ) and idGps=idGps
	GROUP BY fecha HAVING sum(velocidad)>0;
ELSE IF buscar=8 THEN
	SELECT fecha, sum(velocidad) / count(fecha),max(velocidad)
	FROM recorridos 
	WHERE ( DATE(fecha) > DATE_SUB(CURDATE(), INTERVAL 1 MONTH) ) and idGps=idGps
	GROUP BY fecha HAVING sum(velocidad) > 0;
END IF
END; |
delimiter ;
El ultimo END lo probe con las ; y sin ellas pero siempre igual...

El error que me tira es el siguiente:

Código:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DELIMITER +

CREATE PROCEDURE recorridos(in idGps int,in buscar int)
BEGIN
' at line 1
Si alguien me puede ayudar se lo agradezco.. intente de mil maneras pero me sige tirando el mismo error... probe distintos delimitadores pero siempre este mismo error..

desde ya muchas gracias!!