Obtenga el intervalo de tiempo total de varias filas si la secuencia no se rompe
Yo tengoWork
yPerson
tablas (estos son solo ejemplos para entender el problema).
Work
mesid INTEGER
person_id INTEGER
dt_from DATETIME
dt_to DATETIME
Person
mesperson_id INTEGER
name VARCHAR(50)
DatoWork
mesid | person_id | dt_from | dt_to
-------------------------------------------------
1 | 1 | 2011-01-01 | 2011-02-02
2 | 1 | 2011-02-02 | 2011-04-04
3 | 1 | 2011-06-06 | 2011-09-09
4 | 2 | 2011-01-01 | 2011-02-02
5 | 2 | 2011-02-02 | 2011-03-03
....etc.
Person
mesSolo nombres de personas con ID de persona
Rendimiento esperadPerson 1 : 2011-01-01 - 2011-04-04
Person 1 : 2011-06-06 - 2011-09-09
Person 2 : 2011-01-01 - 2011-03-03
Interval debe estar en secuencia. No se puede romper en algún lugar en el medio. Es por eso que la Persona 1 tiene dos intervalos.
Estoy usando postgres si cambia algo. ¿Tienes algo? Quería hacerlo en una consulta, pero si no existe tal solución, haré una combinación de intervalos en php.