2015-01-22 8 views
0

재귀 알고리즘을 작성하고 있습니다. 작년에 4 기간 동안 데이터를 가져 와서 결과 집합을 만듭니다. 문제는 모든 시나리오가 4 개의 기간을 반환하지 않는다는 것입니다. 그래서 테이블에서 4 개의 집합을 선택하고 외부 조인을 사용하여 연결했습니다. 그들의 PK에 합류했습니다. 그러나 모두 첫 번째 데이터 포인트에 조인됩니다. 때로는이 데이터 포인트가 존재하지 않아 조인에 렌치가 생깁니다. PK를 사용하여 4 개의 테이블에서 완전 외부 조인을 수행하는 쉬운 방법이 있습니까 (예 : 절과 외부 조인 (+) ) 실제로 SQL Server에서 작동합니까 (+)?SQL Server에서 여러 테이블의 외부 조인

덕분에, 에릭

+0

왜 작동이 최고? – Pseudonym

+0

당신은 +를 시도 했습니까? 다만 연합 (EU)을 사용 잠재적 인 모든 PK를 가진 여분의 테이블을 생성하고 모든 것을 결합했습니다. 이것은 재귀 적으로 놀라운 트릭입니다. 자기 조인, 고마워! – Paparazzi

답변

2

은 먼저 전년의 모든 기간을 포함하는 완전한 데이터 집합을 만들어야합니다. * SELECT DISTINCT PERIOD FROM (SELECT FROM SETA UNION SELECT PERIOD FROM SETB UNION SELECT PERIOD FROM SETC 등 ...)에서와 같이 사용할 수 있습니다. COMPLETESET "

그런 다음 COMPLETESET에 대해 다른 모든 데이터 집합에 대해 왼쪽으로 조인합니다. 기간.

(가) null 값을 반환합니다 조인에 존재하지 않는 데이터 포인트

.

+0

! 실제로 게시하기 전에 – yoelbenyossef