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

Generacion de un SELECT en MySql

Estas en el tema de Generacion de un SELECT en MySql en el foro de Bases de Datos General en Foros del Web. Estimados amigos del Foro de Base de Datos : Tengo un query que me genera lo siquiente Ejemplo: SELECT * FROM rac_maeveh a, rac_cirtec b ...
  #1 (permalink)  
Antiguo 27/07/2004, 15:38
Avatar de myconatani  
Fecha de Ingreso: enero-2004
Ubicación: Pje.Ralún 8955 Santiago
Mensajes: 73
Antigüedad: 20 años, 4 meses
Puntos: 1
Generacion de un SELECT en MySql

Estimados amigos del Foro de Base de Datos :

Tengo un query que me genera lo siquiente

Ejemplo:

SELECT * FROM rac_maeveh a, rac_cirtec b WHERE a.num_vin=b.nro_vin AND '21'=a.cod_suc AND b.prox_percir BETWEEN '2004-07-27' and '2004-07-27' ORDER BY patente.

La idea es que tambien considere aquellos registro (vehiculos) que existen en rac_maeveh a y que no estan en el rac_cirtec b, y aquellos que si existen cumplan con la condición WHERE y BETWEEN. Con respecto al vencimiento de su Permiso de Circulación.

Se los agradecere.
atte.
myconatani
Santiago, Chile.
__________________
myconatani
  #2 (permalink)  
Antiguo 28/07/2004, 03:25
Avatar de puchitol  
Fecha de Ingreso: diciembre-2003
Ubicación: ELCHE
Mensajes: 322
Antigüedad: 20 años, 4 meses
Puntos: 0
Hola,
creo que para lo que pides necesitas utilizar las sentencias LEFT/RIGHT JOIN:

Prueba con esto, si no te sirve, dimelo, ok?

SELECT *
FROM rac_maeveh left join rac_cirtec
on rac_maeveh.num_vin = rac_cirtec.nro_vin
WHERE a.cod_suc='21' AND
b.prox_percir BETWEEN '2004-07-27' AND '2004-07-27'
ORDER BY patente.


un saludo, Rafa
__________________
If you think fuck is funny, fuck yourself and save your money,
espero que entendais la moraleja... je, je, je
  #3 (permalink)  
Antiguo 28/07/2004, 08:48
Avatar de myconatani  
Fecha de Ingreso: enero-2004
Ubicación: Pje.Ralún 8955 Santiago
Mensajes: 73
Antigüedad: 20 años, 4 meses
Puntos: 1
Estimado Puchitol. (Rafa)

Esta es la estructura de las tablas.

Tabla : rac_maeveh
num_vin varchar(25)
cod_marca char(2)
cod_modelo char(3)
cod_version char(3)
agno_fabrica varchar(4)
patente varchar(10)
cod_suc char(2)

Tabla : rac_cirtec
nro_vin varchar(25)
apunte bigint(3)
fec_percir date
doc_percir varchar(10)
val_percir int(10)
prox_percir date
fec_revtec date
doc_revtec varchar(10)
val_revtec int(10)
prox_revtec date
responsable varchar(30)

Este es el select que se definio , pero no me muestra Nada.

SELECT * FROM rac_maeveh LEFT JOIN rac_cirtec ON rac_maeveh.num_vin=rac_cirtec.nro_vin WHERE rac_cirtec.prox_percir BETWEEN '2004-07-01' AND '2004-07-28' ORDER BY patente

La Idea es que aquellos vehiculos que esta en rac_maeveh y no esten en el rac_cirtec (control de permisos de circulacion) me los muestre igual y si existen los vehiculos que considere la la sentencia del BETWEEN.

Rafa, te agradecería mucho si me ayudas en esto ya que me están apurando.
atte.
myconatani
Santiago de Chile.
__________________
myconatani
  #4 (permalink)  
Antiguo 29/07/2004, 03:02
Avatar de puchitol  
Fecha de Ingreso: diciembre-2003
Ubicación: ELCHE
Mensajes: 322
Antigüedad: 20 años, 4 meses
Puntos: 0
Hola, vamos a ver...

imagino que en la tabla 'rac_cirtec' el campo 'nro_vin' sera una clave foranea a la otra tabla, es correcto?

Entonces, que es lo que quieres obtener exactamente? Todos los vehiculos , esten o no esten en la tabla 'rac_cirtec' ?

Si fueses un poquito mas preciso me seria de gran ayuda, intenta explicar mejor lo que realmente quieres obtener, ok?

hasta el proximo mensaje

un saludo,
__________________
If you think fuck is funny, fuck yourself and save your money,
espero que entendais la moraleja... je, je, je
  #5 (permalink)  
Antiguo 29/07/2004, 07:26
Avatar de myconatani  
Fecha de Ingreso: enero-2004
Ubicación: Pje.Ralún 8955 Santiago
Mensajes: 73
Antigüedad: 20 años, 4 meses
Puntos: 1
Problema resuelto.

Hola estimado amigo puchitol.

Gracias a las instrucciones enviadas anteriormente por ti y yo afinandola más me dio el resultado esperado, te lo agradezco de verdad.

Espero tener otra complicación en Base de Datos para porder comunicarlos.

Select definitivo :

SELECT * FROM rac_maeveh a LEFT JOIN rac_cirtec b ON a.num_vin=b.nro_vin WHERE a.cod_suc='17' AND (b.prox_percir IS NULL OR b.prox_percir BETWEEN '2004-01-01' AND '2004-07-31') ORDER BY patente

Sinceramente un Ciberamigo

atte.
myconatani

Marcelo Lizana Berríos
Santiago de Chile.
Fono : 8109315
__________________
myconatani
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:02.