ORACLE SQL Intersecciones de rango de fechas

Tengo una tabla T1, contiene un valor de NOMBRE (no único) y un rango de fechas (D1 y D2 que son fechas) Cuando NOMBRE es el mismo, hacemos una unión de los rangos de fechas (por ejemplo, B).

Pero como resultado (X), necesitamos hacer una intersección de todos los rangos de fechas

Editar: Tabla T1

NAME | D1       | D2
A    | 20100101 | 20101211
B    | 20100120 | 20100415
B    | 20100510 | 20101230
C    | 20100313 | 20100610

Resultado:

X    | 20100313 | 20100415
X    | 20100510 | 20100610

Visualmente, esto dará lo siguiente:

NAME        : date range
A           : [-----------------------]-----
B           : --[----]----------------------
B           : ----------[---------------]---
C           : -----[--------]---------------

Resultado:

X           : -----[-]----------------------
X           : ----------[---]---------------

¿Alguna idea de cómo obtener eso usando SQL / PL SQL?

Respuestas a la pregunta(1)

Su respuesta a la pregunta