Ver Mensaje Individual
  #20 (permalink)  
Antiguo 22/08/2008, 11:49
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?

Lanza esta consulta:
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.mes LIKE '10'
AND r.ano =2008
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



Ojo, ten cuidado cuando hagas pruebas con las fechas, pues no puedes pedir que la fecha sea el mes 03 del ano 2008 y exigir a la vez que sea posterior al día de hoy: es lo que estabas haciendo... Para resolver el tema he puesto como mes para varias tarifas el 10. Te he puesto tras el select un asterisco, algo que es una barbaridad, pero lo he puesto para que puedas comprobar los datos visualmente en estas pruebas.

Última edición por jurena; 22/08/2008 a las 12:01