Consulta SQL (registro padre e hijo en el mismo resultado)
Publicado por Leonardo Daniel A. (48 intervenciones) el 11/05/2018 19:37:28
Hola a todos, requiero su ayuda, ya que necesito realizar una consulta a unos datos de un Sistema que desarrolle para una Linea de Trailers...
El asunto.... el registro de viajes se hace sobre un registro y ese registro tiene su ID_VIAJE, IDA_VUELTA ("I", "V"), ID_VIAJE_VUELTA ( esto se hace porque cuando se despacha el viaje de vuelta se hace seleccionando el viaje de ida, esto para hacer el viaje redondo )
Por lo que al registrar el viaje de IDA quedaria mas o menos asi

Ahi se observa como quedan relacionados... ahora lo que necesito es en una sola consulta tener los datos del viaje redondo, consultando sobre el viaje de IDA osea el #1, ya lo intente de varias formas, pero no lo logro, me repite los datos del viaje de ida en las columnas del
viaje de vuelta

Este es mi Query Actual
El asunto.... el registro de viajes se hace sobre un registro y ese registro tiene su ID_VIAJE, IDA_VUELTA ("I", "V"), ID_VIAJE_VUELTA ( esto se hace porque cuando se despacha el viaje de vuelta se hace seleccionando el viaje de ida, esto para hacer el viaje redondo )
Por lo que al registrar el viaje de IDA quedaria mas o menos asi

Ahi se observa como quedan relacionados... ahora lo que necesito es en una sola consulta tener los datos del viaje redondo, consultando sobre el viaje de IDA osea el #1, ya lo intente de varias formas, pero no lo logro, me repite los datos del viaje de ida en las columnas del
viaje de vuelta

Este es mi Query Actual
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
SELECT
concat(cd_vi_ini.ciudad,', ', cd_vi_ini.estado) AS cd_vi_ini,
concat(cd_vi_dest.ciudad,', ', cd_vi_dest.estado) AS cd_vi_dest,
tipocarga_ida.nombre as tipo_carga_ida,
viaje_ida.fecha_salida as fecha_salida_ida,
viaje_ida.fecha_regreso as fecha_regreso_ida,
concat(cd_vv_ini.ciudad,', ', cd_vv_ini.estado) AS cd_vv_ini,
concat(cd_vv_dest.ciudad,', ', cd_vv_dest.estado) AS cd_vv_dest,
tipocarga_vuelta.nombre as tipo_carga_vuelta,
viaje_vuelta.fecha_salida as fecha_salida_vuelta,
viaje_vuelta.fecha_regreso as fecha_regreso_vuelta,
viaje_vuelta.id_viaje AS id_viaje_vuelta,
viaje_ida.millas
FROM viajes AS viaje_ida
LEFT OUTER JOIN viajes AS viaje_vuelta ON viaje_ida.id_viaje = viaje_vuelta.id_viaje
INNER JOIN dbo.ciudades AS cd_vi_ini ON viaje_ida.id_cd_origen = cd_vi_ini.id_cd
INNER JOIN dbo.ciudades AS cd_vi_dest ON viaje_ida.id_cd_destino = cd_vi_dest.id_cd
INNER JOIN dbo.tipos_carga as tipocarga_ida ON viaje_ida.id_tpo_carga = tipocarga_ida.id_tpo_carga
LEFT OUTER JOIN dbo.ciudades AS cd_vv_ini ON viaje_ida.id_cd_origen = cd_vv_ini.id_cd
LEFT OUTER JOIN dbo.ciudades AS cd_vv_dest ON viaje_ida.id_cd_destino = cd_vv_dest.id_cd
INNER JOIN dbo.tipos_carga as tipocarga_vuelta ON viaje_vuelta.id_tpo_carga = tipocarga_vuelta.id_tpo_carga
WHERE viaje_ida.id_viaje = 1
Valora esta pregunta


0