아무도 도와 줄 수 있습니까? 나는 단지이 퍼즐을 해결하는 것 같지 않니?CTE to Group 다른 부서에있는 직원 다 수 많음 많음
입력 표
DepartmentID EmpID
-----------------------
1 100
1 101
1 103
1 200
2 300
2 350
3 350
3 100
4 50
4 30
4 45
5 50
5 51
5 52
5 53
6 53
6 54
7 54
7 55
8 55
8 56
10 800
11 900
출력 표
GroupID
1 명 직원이 두 부서에서 할 수없는 상태로, 일반 직원이 그룹 부서에 우리가 만든 있습니다.
EmpID
(100)는 3 & 1 Department
사이에 일반적이지만 기다립니다
GroupID Department
-----------------------
1000 1
1000 2
1000 3
1001 4
1001 5
1001 6
1001 7
1001 8
1002 10
1003 11
예는 어떻게 그리고 왜 Department
1, 2 & 3 그룹화 보여! EmpID
350은 2 & 3 사이에서도 공통입니다. 그래서 그들을 그룹화하십시오. 이제 부서 1, 2 및 3이 만든 그룹에는 다른 부서에있는 제품이 없으므로 중단 할 수 있습니다.
참고 : 이것은 우리가 동일한 직원을 갖기 위해 만든 2 개의 그룹을 원하지 않기 때문에 '일반적인'그룹이 아닙니다.
는 LOGIC :
1 단계 :EmpID
50 4 & 5. 그래서 4 족 & 5 함께
2 단계 부서에서 공통이다 그래서 이것은 4 & 5 50,30가의기를 의미 , 45,51,52,53 명의 독창적 인 직원
3 단계 : 기다려라! Department
(6)는 2 단계에서 형성된 4 & 5의 그룹, 일반 EmpID
(53)가
4 단계 : 그룹 부서 4, 5, 6이 새로운 그룹은 50,30,45,51의 고유의 직원을 고용하고, 52,53,54
5 단계 : 기다려라! 부서 7은 EmpID
이 54이며, 이는 단계 4에서 형성된 그룹과 공통입니다. 따라서 그룹으로 묶으십시오.
이것은 계속됩니다 .... 우리는 두 그룹이 아닌 어떤 직원도 가지지 않습니다. 따라서이 경우 그룹 7, 그룹 8도 4 단계에서 언급 한 그룹에 '병합'해야합니다.