Ver Mensaje Individual
  #28 (permalink)  
Antiguo 15/09/2008, 09:24
jurena
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: ¿Como arreglar esta consulta?

No sé cuál es tu problema, pero
SELECT * , f.id AS idflota, f.nombre AS nombreflota, f.logotipo AS logoflota, c.id AS idcoche, c.nombre AS nombrecoche, c.fotocoche AS fotocoche, c.videocoche AS videocoche, r.nombre AS nombreruta, r.id AS idruta, r.ano AS anoruta, r.opciones AS opcionesruta, tar.mes AS mestarifa, MIN( LEAST( if( tar.preciopromocion >0, tar.preciopromocion, 100000 ) , 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 ) ) ) AS tarifamenor
FROM rutas r
INNER JOIN tarifas tar ON tar.idruta = r.id
INNER JOIN flotas f ON f.id = r.idflota
INNER JOIN coches c ON c.idflota = f.id
WHERE r.id =1
AND tar.completo !=1
AND r.oculto !=0
AND f.oculto !=0
AND TIMESTAMP( CONCAT( r.ano, '-', tar.mes, '-', tar.dia ) ) < now( )
GROUP BY tar.id ORDER BY f.nombre, r.ano, c.nombre, r.nombre

Cuidado que yo uso tar.id y no tar.idruta... He mantenido las condiciones del WHERE, pero tú deberías quitar las que no quieras que se cumplan. Por supuesto, he quitado la de la fecha... Y si me preguntas por qué r.id = 1, porque en este foro no podemos poner variables, sino datos constantes como ese 1 (imagino que tendrás una ruta cuyo id es 1). Por otra parte, me preguntabas por qué usaba like. La verdad es que podrías poner igualmente =, pero con ello quería recordarte que estás usando números de mes 02, 03, etc., como cadenas de caracteres.

Esto busca lo anterior a la fecha actual, pero no sé si es lo que quieres.