Ver Mensaje Individual
  #18 (permalink)  
Antiguo 27/08/2009, 12:47
Avatar de huesos52
huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: Consulta de movimientos secuenciales

Mi propuesta:

crea dos tablas que te maneje el problema de forma sencilla. haz uso de campos datetime y no por separado. Según entiendo, la salida de una entrada puede ser al otro día.

Código mysql:
Ver original
  1. mysql> select *from entradas;
  2. +----+----------+---------------------+
  3. | id | articulo | fecha_hora          |
  4. +----+----------+---------------------+
  5. | 10 |        1 | 2009-08-27 10:05:00 |
  6. | 11 |        2 | 2009-08-27 10:30:00 |
  7. | 12 |        3 | 2009-08-27 10:45:00 |
  8. | 13 |        1 | 2009-08-27 11:25:00 |
  9. | 14 |        1 | 2009-08-27 11:45:00 |
  10. +----+----------+---------------------+
  11. 5 rows in set (0.00 sec)
  12.  
  13. mysql> select *from salidas;
  14. +----+---------------------+------------+
  15. | id | fecha_hora          | id_entrada |
  16. +----+---------------------+------------+
  17. |  1 | 2009-08-27 13:51:20 |         10 |
  18. |  2 | 2009-08-27 14:26:59 |         11 |
  19. |  3 | 2009-08-27 17:57:19 |         13 |
  20. |  4 | 2009-08-27 17:37:40 |         14 |
  21. +----+---------------------+------------+
  22. 4 rows in set (0.00 sec)
  23.  
  24. mysql> select e.articulo articulo, e.fecha_hora entradas,ifnull(s.fecha_hora,'--:--') salidas from entradas e left join salidas s on e.id=s.id_entrada order by e.articulo;
  25. +----------+---------------------+---------------------+
  26. | articulo | entradas            | salidas             |
  27. +----------+---------------------+---------------------+
  28. |        1 | 2009-08-27 10:05:00 | 2009-08-27 13:51:20 |
  29. |        1 | 2009-08-27 11:25:00 | 2009-08-27 17:57:19 |
  30. |        1 | 2009-08-27 11:45:00 | 2009-08-27 17:37:40 |
  31. |        2 | 2009-08-27 10:30:00 | 2009-08-27 14:26:59 |
  32. |        3 | 2009-08-27 10:45:00 | --:--               |
  33. +----------+---------------------+---------------------+
  34. 5 rows in set (0.03 sec)
  35.  
  36. mysql>

De esta forma, cada entrada se toma como una orden y se evita la confusión si dos entradas de un articulo cual suple la salida siguiente.

Como lo tienes, tienes una tabla carente de sentido. Es mejor que desde el principio tengas en cuenta un buen modelo relacional para evitar este tipo de tareas.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming