A ver, necesito saber los registros que estén solapados entre ellos, se que es una consulta difícil y mas aun explicándolo por aquí:
Código MySQL:
Ver original
(1, '200', '2014-12-24 06:00:00', '2014-12-24 13:30:00'),
(2, '200', '2014-12-24 07:00:00', '2014-12-24 08:00:00'),
(3, '100', '2014-12-25 06:00:00', '2014-12-25 08:30:00'),
(4, '100', '2014-12-25 07:00:00', '2014-12-25 08:00:00'),
(5, '100', '2014-12-25 07:00:00', '2014-12-25 07:30:00'),
(6, '200', '2014-12-25 06:00:00', '2014-12-25 08:30:00'),
(7, '300', '2014-12-25 06:00:00', '2014-12-25 16:00:00'),
(8, '400', '2014-12-25 06:00:00', '2014-12-25 08:41:00'),
(9, '300', '2014-12-25 17:00:00', '2014-12-25 20:30:00'),
(10, '100', '2014-12-30 06:00:00', '2014-12-30 08:30:00');
Por ejemplo tenemos estos 10 registros y yo quiero saber los solapados cuyo asigned sea el mismo:
-Miro los asigned del 100, que son el 3,4,5,10 y veo cual de ellos tiene la fecha de inicio entre la fecha de inicio y fin del otro, en este caso los solapados son el 4 y 5 ya que su fecha de inicio empieza a las 7:00 esta entre la fecha del registro 3 que es de las 6:00-8:30.
-Miro los asigned del 200 que son el 1,2,6 y veo que el solapado es el 2 pues su fecha de inicio que es a las 7:00 esta entre las fechas del registro 1 que son de las 6:00-13:30.
-Miro los asigned del 300 que son el 7,9 y veo que no hay solapados.
-Miro los asigned del 400 que son el 8 y veo que no hay solapados.
Para mi aquellos registros que digo solapados son los que tienen su fecha de inicio entre la fecha de inicio y fin de otro de los registros.
Necesito sacar una consulta, que me saque los registros que necesito que en este caso serian el 2,4,5.
-Supongo que mediante cursores comparando uno a uno todos los registros puedo sacar mis resultados, pero no se si realmente es lo mas óptimo o no.
Saludos y gracias.