Hola:
He probado haciendo una consulta en el select de la siguiente manera:
SELECT ..., (SELECT MIN(IF(0=tarifa1, IF(0=tarifa2, IF(0=tarifa3, IF(0=tarifa4, tarifapromo, tarifa4), tarifa3), tarifa2), tarifa1)) AS tarifaprecio FROM Tarifas t WHERE t.idproducto=productos.id) AS tarifaorden tarifa FROM ... ORDER BY tarifaorden
El problema es que en mysql 5 funciona bien, aunque un poco mas lento, pero con mysql4 nada.
¿Se os ocurre porque puede ser o como puedo solucionarlo?
Muchas Gracias
Hola,
Porque si pongo esta subconsulta funciona correctamente:
SELECT MIN(LEAST(if(tar.tarifa1>0, tar.tarifa1, 100000), if(tar.tarifa2>0, tar.tarifa2, 100000), if(tar.tarifa3>0, tar.tarifa3, 100000), if(tar.tarifa4>0, tar.tarifa4, 100000), if(tar.tarifa5>0, tar.tarifa5, 100000), if(tar.tarifa6>0, tar.tarifa6, 100000), if(tar.tarifa7>0, tar.tarifa7, 100000), if(tar.tarifa8>0, tar.tarifa8, 100000))) AS tarifamenor FROM tarifas AS tar WHERE tar.iditinerario=itinerarios.id
Me bastaría con este pero la consulta tarda mucho en realizarse.
Si pongo comillas simple en itinerarios.id no funciona y me devuelve vacio:
SELECT MIN(LEAST(if(tar.tarifa1>0, tar.tarifa1, 100000), if(tar.tarifa2>0, tar.tarifa2, 100000), if(tar.tarifa3>0, tar.tarifa3, 100000), if(tar.tarifa4>0, tar.tarifa4, 100000), if(tar.tarifa5>0, tar.tarifa5, 100000), if(tar.tarifa6>0, tar.tarifa6, 100000), if(tar.tarifa7>0, tar.tarifa7, 100000), if(tar.tarifa8>0, tar.tarifa8, 100000))) AS tarifamenor FROM tarifas AS tar WHERE tar.iditinerario='itinerarios.id'
Gracias
Última edición por GatorV; 07/08/2008 a las 08:51 |