Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

¿Como arreglar esta consulta?

Estas en el tema de ¿Como arreglar esta consulta? en el foro de Mysql en Foros del Web. A ver si esto te ayuda: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código sql: Ver original SELECT r . id , SUM ( IF ( TIMESTAMP ( CONCAT ( ...

  #31 (permalink)  
Antiguo 24/09/2008, 11:44
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?

A ver si esto te ayuda:

Código sql:
Ver original
  1. SELECT r.id, SUM(IF( TIMESTAMP( CONCAT( r.ano, '-', t.mes, '-', t.dia ) ) > now( ), 1,0)) AS ANTERIORES,
  2. SUM(IF( TIMESTAMP( CONCAT( r.ano, '-', t.mes, '-', t.dia ) ) <= now( ), 1,0)) AS POSTERIORES
  3.   FROM rutas r INNER JOIN tarifas t ON r.id = t.idruta  
  4. GROUP BY t.idruta HAVING ANTERIORES > 0 AND POSTERIORES < 1

Con esto, creo, te encontrará las rutas con tarifas anteriores, pero que tienen alguna tarifa anterior..., y que no tenga ninguna posterior.

Última edición por jurena; 24/09/2008 a las 11:56
  #32 (permalink)  
Antiguo 25/09/2008, 02:30
 
Fecha de Ingreso: abril-2003
Mensajes: 363
Antigüedad: 21 años
Puntos: 3
Respuesta: ¿Como arreglar esta consulta?

Perfecto!!!

Muchisimas gracias jurena
  #33 (permalink)  
Antiguo 28/10/2008, 07:24
 
Fecha de Ingreso: abril-2003
Mensajes: 363
Antigüedad: 21 años
Puntos: 3
Respuesta: ¿Como arreglar esta consulta?

Citando la consulta que hizo jurena hace tiempo se me ha planteado una modificación:

Cita:
Iniciado por jurena Ver Mensaje
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
Hola a todos,

He realizado una pequeña modificación en el sistema para que saque también la información de los puntos de parada, es decir, de las escalas.
Hay dos tablas nuevas:

Lugares:
id, nombre, información

Escalas:
id, idlugar, idruta, dia

¿Como podría hacer para sacar las rutas que tengan salida el día 1 desde el lugar con id=15 por ejemplo?

Lo he intentado poniendo en el INNER JOIN:
INNER JOIN escalas ON escalas.idruta = rutas.id
y en el WHERE:
AND escalas.idlugar = '15'
AND escalas.dia = '1'

Imagino que no hará falta usar la tabla lugares, que con la de escalas bastará.
¿Como se podría hacer?

Muchas Gracias
  #34 (permalink)  
Antiguo 29/10/2008, 04:01
 
Fecha de Ingreso: abril-2003
Mensajes: 363
Antigüedad: 21 años
Puntos: 3
Respuesta: ¿Como arreglar esta consulta?

¿Alguien sabe como los puedo solucionar?

Muchas Gracias
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:12.