SQL - URGENTE-ayuda

 
Vista:

URGENTE-ayuda

Publicado por Nestor (8 intervenciones) el 26/08/2008 23:41:26
Tengo dos tablas.
Tabla A
Fec_Despacho, Cod_Ruta, Hor_Salida
Tabla B
Fec_Despacho, Cod_Ruta, Hor_Entrega

Necesito una sentencia que me muestra todos los registros de ambas tablas. Cabe destacar que TablaB tiene los mismos Fec_Despacho y Cod_Ruta de la Tabla A. Pero Tabla A tiende tener mas registros que la tabla B.
Siempre: Los Fec_Despacho y Cod_Ruta de la tabla B estarán en Tabla A.
Necesito mostrar :
A.Fec_Despacho, A.Cod_Ruta, A.Hor_Salida,B.Hor_Entrega
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:URGENTE-ayuda

Publicado por pacopaz (143 intervenciones) el 27/08/2008 01:17:16
puedes probar con esto:

select
a.Fec_Despacho,
a.Cod_Ruta,
a.Hor_Salida,
b.Hor_Entrega
from
TablaA as a left join TablaB as b on a.Fec_Despacho = b.Fec_Despacho and a.Cod_Ruta = b.Cod_Ruta

Esto traerá todas las fec_despacho y cod_ruta con hora de salida, sin importar que tengan o no hora de entrega.

Espero que te sirva.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:URGENTE-ayuda

Publicado por Nestor (8 intervenciones) el 27/08/2008 02:06:40
Compañero.
Si me está funcionando cuando en el Select elimino el campo b.hor_entrega

Cuando lo ejecuto como tu lo envias, me dice que el campo hor_entrega no existe.

Por favor ayudarme con esto.!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:URGENTE-ayuda

Publicado por pacopaz (143 intervenciones) el 27/08/2008 16:34:59
Si te dice que no existe, es por que como está escrito no existe en la TablaB. Checa como es que se llama y ponle ese nombre, por que yo sólo puedo ayudarte con la información que tu ofreces y lo que mencionas es que así se llama el campo.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:URGENTE-ayuda

Publicado por Nestor (8 intervenciones) el 27/08/2008 18:58:35
Gracias.

Si genero lo siguiente:
"
select
a.fec_despacho,
a.cod_ruta,
a.hor_salida ,
b.hor_entrega
from
ci_maentregas as a , ci_deentregas as b
where
a.fec_despacho = b.fec_despacho and a.cod_ruta = b.cod_ruta and
a.fec_despacho between '10-aug-2008' and '23-aug-2008'
order by a.cod_ruta
"

Me aparece los registros que hay en ambas tablas.

Ahora necesito conocer los registros que estan en ci_maentregas y no en ci_deentregas hacer un union con la sentencia anterior.

Gracias por tu ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:URGENTE-ayuda

Publicado por pacopaz (143 intervenciones) el 27/08/2008 19:42:43
Prueba con esto:
select
a.fec_despacho,
a.cod_ruta,
a.hor_salida ,
b.hor_entrega
from
ci_maentregas as a left join ci_deentregas as b
on a.fec_despacho = b.fec_despacho and a.cod_ruta = b.cod_ruta and
a.fec_despacho between '10-aug-2008' and '23-aug-2008'
order by a.cod_ruta

Esto debería traerte todas las que se encuentran en ci_maentregas independientemente de que exista o no su contraparte en ci_deentregas. Las que no tengan contraparte traeran la hora de entraga en nulo (Null) y así evitarías hacer un union.

Espero que te sirva.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:URGENTE-ayuda

Publicado por Nestor (8 intervenciones) el 27/08/2008 20:52:45
Listo. Este es el correcto.

select
a.cod_ruta,
a.fec_despacho,
a.hor_salida,
b.hor_entrega,
b.cod_puesto
from
ci_maentregas as a left join ci_deentregas as b on a.fec_despacho = b.fec_despacho and a.cod_ruta = b.cod_ruta
where
a.fec_despacho between :Fecha_Salida_Inicial and :Fecha_Salida_Final
order by
a.cod_ruta,
a.fec_despacho,
a.hor_salida
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar