
23/09/2010, 09:23
|
 | Colaborador | | Fecha de Ingreso: agosto-2009 Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 15 años, 7 meses Puntos: 150 | |
Respuesta: ¿Como hacer esta consulta? jeje, me ha costao un rato sacar una forma, no se si sera la más idonea, te la explico por partes
Primero esto: (SELECT id,precio1 from tarifas where precio1>0 order by precio1 ASC LIMIT 1)
Con eso obtendriamos el menor de precio1 que sea mayor que 0.... 1 - 100
Pero si usamos el UNION para ir agregando registros...... (SELECT id,precio1 from tarifas where precio1>0 order by precio1 ASC LIMIT 1) UNION
(SELECT id,precio2 as precio1 from tarifas where precio2>0 order by precio2 ASC LIMIT 1) UNION
(SELECT id,precio3 as precio1 from tarifas where precio2>0 order by precio3 ASC LIMIT 1)
Obtendriamos: 1 - 100
2 - 50
3 - 10
Justo las 3 filas porque es como tienes el ejemplo, no importa, hemos obtenido 3 registros independientes con su SELECT cada uno, ya solo falta el toque final: (SELECT id,precio1 from tarifas where precio1>0 order by precio1 ASC LIMIT 1) UNION
(SELECT id,precio2 as precio1 from tarifas where precio2>0 order by precio2 ASC LIMIT 1) UNION
(SELECT id,precio3 as precio1 from tarifas where precio3>0 order by precio3 ASC LIMIT 1)
ORDER BY precio1 ASC LIMIT 1
Esos 3 minimos ahora los volvemos a ordenar para quedarnos con el primer registro. Cualquier duda preguntame, aunque debe ser la 4º o 5ª vez que uso los UNION, no soy muy experto jeje. |