select
*
from Table as A
inner join Table as B on A.name = B.name
where A.key <> B.key
and A.start <= B.end
and A.end >= B.start
위와 같이 하나의 테이블을 조인하여 기간이 중복되는 정보만 출력하고 싶습니다.
헌데, 위와 같이 하면 A, B 그리고 B, A와 같은 위치만 바뀐 2개의 row가 생성 되게 되는데 이를 하나로 줄일 수 있는 방법이 없을까요?
예시)
---------------------------------------------------------------------------
name key start end data
홍길동 1 120101 120201 'abc'
홍길동 2 120120 120308 '가나다'
---------------------------------------------------------------------------
와 같은 데이터일 때, 2개의 row가 아닌 1개의 row
---------------------------------------------------------------------------
name A.start A.end A.data B.start B.end B.data
홍길동 120101 120201 'abc' 120120 120308 '가나다'
---------------------------------------------------------------------------
위와 같은 데이터를 얻고 싶습니다. A와 B의 순서는 무관합니다
조언 부탁드려요 ^^;;