Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Problema con procedimiento Almacenado.

Estas en el tema de Problema con procedimiento Almacenado. en el foro de Mysql en Foros del Web. Hola, me encuentro haciendo un procedimiento almacenado que compila pero me tira el siguiente error y me gustaria saber que esta mal. primero el procedure. ...
  #1 (permalink)  
Antiguo 30/03/2011, 19:45
Avatar de Hs_Jeldres  
Fecha de Ingreso: marzo-2011
Mensajes: 25
Antigüedad: 13 años, 1 mes
Puntos: 0
Pregunta Problema con procedimiento Almacenado.

Hola, me encuentro haciendo un procedimiento almacenado que compila pero me tira el siguiente error y me gustaria saber que esta mal.

primero el procedure.
Código MySQL:
Ver original
  1. CREATE PROCEDURE `sp_cal_pas`(IN `ato` varchar(50),
  2.  IN `nego` varchar(50), IN `opera` varchar(50), IN `mes_` INT)
  3. SELECT CorrigePostaXTPO.LAm,CorrigePostaXTPO.ORIm,CorrigePostaXTPO.Negocio,
  4. Month(FTRAMO) as Mes, SUM(F), SUM(J), SUM(Y)
  5. FROM PaxEmbarcados LEFT JOIN CorrigePostaXTPO ON
  6. (PaxEmbarcados.NRO = CorrigePostaXTPO.NRO)
  7. AND (PaxEmbarcados.LA = CorrigePostaXTPO.LA)
  8. AND (PaxEmbarcados.DES = CorrigePostaXTPO.DES)
  9. AND (PaxEmbarcados.ORI = CorrigePostaXTPO.ORI)
  10. where CorrigePostaXTPO.LAm=opera
  11. and CorrigePostaXTPO.Negocio=nego
  12. and Month(FTRAMO)=mes_
  13. and CorrigePostaXTPO.ORIm=ato
  14. GROUP BY LAm, CorrigePostaXTPO.Negocio,ORIm,Mes;

el error es.

sql error 1064 dice de sintaxis near line 15 y e cambiado cosas y no me funca,
please soy nuevo en esto ayuda.
  #2 (permalink)  
Antiguo 31/03/2011, 08:35
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: Problema con procedimiento Almacenado.

Hola Hs_Jeldres, intenta con esto:

GROUP BY LAm, CorrigePostaXTPO.Negocio,ORIm, MONTH(FTRAMO)

Haz la prueba y nos comentas-

Saludos
Leo.
  #3 (permalink)  
Antiguo 31/03/2011, 10:23
Avatar de Hs_Jeldres  
Fecha de Ingreso: marzo-2011
Mensajes: 25
Antigüedad: 13 años, 1 mes
Puntos: 0
De acuerdo Respuesta: Problema con procedimiento Almacenado.

Gracias por responder, dejo el codigo por si a alguien le sirve asi me resulto.

Código SQL:
Ver original
  1. CREATE  PROCEDURE `sp_cal_pas2`(IN `ato` VARCHAR(50), IN `nego` VARCHAR(50), IN `opera` VARCHAR(50), IN `mes_` INT)
  2. SELECT CorrigePostaXTPO.LAm,CorrigePostaXTPO.ORIm,CorrigePostaXTPO.Negocio,
  3. MONTH(FTRAMO) AS Mes, SUM(F+J+Y) AS pasajeros_total
  4. FROM PaxEmbarcados LEFT JOIN CorrigePostaXTPO ON
  5. (PaxEmbarcados.NRO = CorrigePostaXTPO.NRO)
  6. AND (PaxEmbarcados.LA = CorrigePostaXTPO.LA)
  7. AND (PaxEmbarcados.DES = CorrigePostaXTPO.DES)
  8. AND (PaxEmbarcados.ORI = CorrigePostaXTPO.ORI)
  9. WHERE CorrigePostaXTPO.LAm=opera
  10. AND CorrigePostaXTPO.Negocio=nego
  11. AND MONTH(FTRAMO)=mes_
  12. AND CorrigePostaXTPO.ORIm=ato
  13. GROUP BY LAm, CorrigePostaXTPO.Negocio,ORIm,MONTH(FTRAMO);

donde Month(FTRAMO) = puede ser sustituido por mes_

ahora otra pregunta para pasarlo a procedimiento dinamico osea si en ves de darme 4 parametros me dan 3 o 2 como seria?

me explico son 4 combobox y si envian los datos de 3 debe buscar por esos 3 incluso con 2 ? si alguien me puede ayudar por favor.

gracias.
  #4 (permalink)  
Antiguo 31/03/2011, 10:52
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Problema con procedimiento Almacenado.

Cita:
ahora otra pregunta para pasarlo a procedimiento dinamico osea si en ves de darme 4 parametros me dan 3 o 2 como seria
MySQL no acepta parámetros opcionales. Si el SP espera 4 parámetros, le tienes que mandar 4 parámetros.
En todo caso esos parámetros pueden ser NULL, cero o lo que quieras, y en ese caso el problema lo tienes que resolver dentro de la lógica del SP, según como sea lo que recibe.
En cualquier caso, deberás usar condicionales para resolver el flujo del procedure...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: procedimiento, almacenar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:12.