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!!