Código:
El ultimo END lo probe con las ; y sin ellas pero siempre igual...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 error que me tira es el siguiente:
Código:
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..#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
desde ya muchas gracias!!