Ver Mensaje Individual
  #3 (permalink)  
Antiguo 21/02/2017, 12:11
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Consulta en MySQL

Hola dgrvedado:

Hay varias formas de resolver este problema, una de ellas sería utilizando subconsultas para "simular" que la información viene en dos tablas: una sólo de "idas" y otra de "vueltas" y entonces hacer un JOIN, sería más o menos así:

Supongamos los datos que pones de ejemplo:

Código MySQL:
Ver original
  1. mysql> SELECT * FROM tabla;
  2. +-------+---------------+--------------+--------+------------+----------+---------------+--------+-------------+
  3. | id    | no_sal_vuelta | fecha_salida | no_bus | no_redondo | id_ramal | ramal         | modo   | hora_salida |
  4. +-------+---------------+--------------+--------+------------+----------+---------------+--------+-------------+
  5. | 83223 |             0 | 2017-02-20   |     59 |          1 |      100 | MEDIO REDONDO | IDA    | 04:10:00    |
  6. | 83224 |         83223 | 2017-02-20   |     59 |          1 |        1 | SINALCO       | VUELTA | 04:20:00    |
  7. +-------+---------------+--------------+--------+------------+----------+---------------+--------+-------------+
  8. 2 rows in set (0.00 sec)

entonces, para las "idas" tendrías que hacer un SELECT a la tabla para los registros que tengan T1.no_sal_vuelta = 0, y para las "vueltas" tendrías que hacer un select para los que tengan T1.no_sal_vuelta != 0, de tal suelte que quedaría más o menos así:

Código MySQL:
Ver original
  1. mysql> SELECT
  2.     ->   *
  3.     -> FROM tabla T1
  4.     -> LEFT JOIN
  5.     -> ( SELECT
  6.     ->     *
  7.     ->   FROM tabla
  8.     ->   WHERE no_sal_vuelta != 0
  9.     -> ) T2 ON T1.id = T2.no_sal_v
  10.     -> WHERE T1.no_sal_vuelta = 0;
  11. +-------+---------------+--------------+--------+------------+----------+---------------+------+-------------+-------+---------------+--------------+--------+------------+----------+---------+--------+-------------+
  12. | id    | no_sal_vuelta | fecha_salida | no_bus | no_redondo | id_ramal | ramal         | modo | hora_salida | id    | no_sal_vuelta | fecha_salida | no_bus | no_redondo | id_ramal | ramal   | modo   | hora_salida |
  13. +-------+---------------+--------------+--------+------------+----------+---------------+------+-------------+-------+---------------+--------------+--------+------------+----------+---------+--------+-------------+
  14. | 83223 |             0 | 2017-02-20   |     59 |          1 |      100 | MEDIO REDONDO | IDA  | 04:10:00    | 83224 |         83223 | 2017-02-20   |     59 |          1 |        1 | SINALCO | VUELTA | 04:20:00    |
  15. +-------+---------------+--------------+--------+------------+----------+---------------+------+-------------+-------+---------------+--------------+--------+------------+----------+---------+--------+-------------+
  16. 1 row in set (0.00 sec)

lo que te queda hacer es simplemente cambiar los SELECT't * para obtener sólo los campos que requieres y en el orden en el que los necesitas.

Dale un vistazo y nos comentas.

Saludos
Leo