Ho una tabella T1, contiene un valore NAME (non univoco) e un intervallo di date (D1 e D2 che sono date) Quando NAME è uguale, facciamo un unione della data intervalli (ad esempio B).ORACLE SQL Intersezioni di intervalli di date
Ma come risultato (X), abbiamo bisogno di fare intersezione di tutte le informazioni spazia
Edit: Tabella T1
NAME | D1 | D2
A | 20100101 | 20101211
B | 20100120 | 20100415
B | 20100510 | 201
C | 20100313 | 20100610
Risultato:
X | 20100313 | 20100415
X | 20100510 | 20100610
Visivamente, questo darà il seguente:
NAME : date range
A : [-----------------------]-----
B : --[----]----------------------
B : ----------[---------------]---
C : -----[--------]---------------
Risultato:
X : -----[-]----------------------
X : ----------[---]---------------
Qualsiasi idea di come ottenere che l'uso di SQL/PL SQL?
Si può provare sovrapposizioni - tuttavia è caratteristica non documentata, http://oraclesponge.wordpress.com/2008/06/12/the-overlaps- predicato/e controlla solo che l'intervallo di dati si sia sovrapposto al periodo –
Puoi mostrare un esempio di colonna/riga effettivo dei valori di colonna della tabella e i valori di dati che desideri vengano restituiti da questa query SQL –
Le intersezioni di data nel risultato sono per quale due nomi? A e C sono nomi diversi e i due intervalli per B non sembrano avere l'intervallo di date in questione. –