Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/09/2010, 08:52
yazo
 
Fecha de Ingreso: abril-2003
Mensajes: 363
Antigüedad: 21 años, 10 meses
Puntos: 3
¿Como hacer esta consulta?

Hola,

Estoy intentando hacer una consulta pero se me está resistiendo y no doy con lo que busco:

La tabla "Tarifas" es la siguiente:

id | precio1 | precio2 | precio3
1 | 100 | 90 | 0
2 | 0 | 50 | 75
3 | 0 | 0 | 10

La cosa es que estoy intentado obtener el valor de "id" de la fila que tenga el menor precio de los 3 campos de precio (sin contar el 0, es decir, todos los mayores de 0), por ejemplo en este caso sería la id=3 ya que el menor es el campo "precio3" de la tercera fila.

La consulta que estoy intentando es la siguiente:
Código HTML:
SELECT MIN(LEAST(if(tarifas.precio1>0, tarifas.id, 100000), if(tarifas.precio2>0, tarifas.id, 100000), if(tarifas.precio3>0, tarifas.id, 100000))) AS idmenor FROM tarifas
Me devuelve el id del primero y sin embargo si hago lo siguiente:
Código HTML:
SELECT MIN(LEAST(if(tarifas.precio1>0, tarifas.precio1, 100000), if(tarifas.precio2>0, tarifas.precio2, 100000), if(tarifas.precio3>0, tarifas.precio3, 100000))) AS preciomenor FROM tarifas
Me devuelve correctamente el valor del menor.
¿A que puede deberse?

Muchas Gracias