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

Como realizar un else if

Estas en el tema de Como realizar un else if en el foro de Mysql en Foros del Web. Estoy intentando hacer un else if, pero no veo como, he intentado, segun http://dev.mysql.com/doc/refman/5.0/es/if-statement.html Código: IF (orden=1 AND MAX(orden)>1) THEN orden='<a href=\"#\">Bajar</a>' ELSE IF (orden>1 ...
  #1 (permalink)  
Antiguo 26/03/2010, 03:11
 
Fecha de Ingreso: septiembre-2003
Mensajes: 65
Antigüedad: 21 años, 1 mes
Puntos: 1
Como realizar un else if

Estoy intentando hacer un else if, pero no veo como, he intentado, segun
http://dev.mysql.com/doc/refman/5.0/es/if-statement.html

Código:
IF (orden=1 AND MAX(orden)>1) THEN orden='<a href=\"#\">Bajar</a>'
ELSE IF (orden>1 AND orden<MAX(orden)) THEN orden='<a href=\"#\">Subir</a>&nbsp;<a href=\"#\">Bajar</a>'
ELSE IF (orden=MAX(orden) AND orden>1) THEN orden='<a href=\"#\">Subir</a>'
ELSE orden=''
END IF
Tambien

Código:
IF(
(orden=1 AND MAX(orden)>1),'<a href=\"#\">Bajar</a>',
	IF(
	  	(orden>1 AND orden<MAX(orden)),'<a href=\"#\">Subir</a>&nbsp;<a href=\"#\">Bajar</a>',
	  		IF((orden=MAX(orden) AND orden>1),'<a href=\"#\">Subir</a>',' ')
	  	)
) AS vorden
Me da error. He probado con el CASE tampoco veo como ya que no deja expresar condiciones sino asignar valores
  #2 (permalink)  
Antiguo 26/03/2010, 03:35
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses
Puntos: 574
Respuesta: Como realizar un else if

ELSEIF no ELSE IF

Como obtienes MAX(orden) ???

Muestranos toda la sentencia... dubo que puedas obtenr MAX(orden) y compararlo con orden...

Quim
  #3 (permalink)  
Antiguo 26/03/2010, 03:43
 
Fecha de Ingreso: septiembre-2003
Mensajes: 65
Antigüedad: 21 años, 1 mes
Puntos: 1
Respuesta: Como realizar un else if

La segunda sentencia era correcta, tenia el error en otra parte de la sentencia, sin embargo probe con ELSEIF y no me va
  #4 (permalink)  
Antiguo 26/03/2010, 04:03
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses
Puntos: 574
Respuesta: Como realizar un else if

Me gustaria ver como sacas ese MAX...
Es una funcion de agregado....

Quim
  #5 (permalink)  
Antiguo 26/03/2010, 06:25
 
Fecha de Ingreso: septiembre-2003
Mensajes: 65
Antigüedad: 21 años, 1 mes
Puntos: 1
Respuesta: Como realizar un else if

Pues eso es lo que estaba mal, que el max no iba a ir sin agrupar, pero estaba empeñado en que fallaba el if en vez de ver el resto de la consulta, en vez del max hago una subconsulta para ver el maximo
  #6 (permalink)  
Antiguo 26/03/2010, 06:32
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Como realizar un else if

NO me queda si estás intentando hacer esto dentro o fuera de un store procedure.
Quiero suponer que lo haces dentro...
Posteal el código completo del SP.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 26/03/2010, 06:42
 
Fecha de Ingreso: septiembre-2003
Mensajes: 65
Antigüedad: 21 años, 1 mes
Puntos: 1
Respuesta: Como realizar un else if

No es un SP, solo una consulta mysql, y ya me funciona correctamente, como indico quimfv el error estaba en el max sin agrupar. ¿Por lo que veo creo que el ELSEIF solo es para SP?
  #8 (permalink)  
Antiguo 26/03/2010, 08:36
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Como realizar un else if

IF() es una función lógica que se puede usar en el SELECT, pero IF/ELSEIF/ELSE/END IF, es un controlador de flujo, y comol tal no existe en una sentencia DML, como es el caso de SELECT.
Son cosas distintas, como resulta evidente.
Uno es una función que devuelve un valor según una condición verdadera o falsa. Es posible usalo anidado, por lo cual incluso puede resultar un ELSE o ELSEIF, forzando la lógica aplicada, pero en todos los casos opera sobre valores, y no acepta subconsultas como salidas (no puedes poner una subconsulta como resultado verdadero o falso).
Cuando tienes alternativas de consultas u operaciones DDL o DML, debes hacerlas por medio de stored procedures.
__________________
¿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: realizar
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 08:16.