표준화 된 사용자 목록과 해당 액세스를 반환하는 Google 시스템 전체에서 사용할 수있는보기를 작성하려고합니다. TSQL :이 두 부분으로 구성된 레코드를 최적화하는 데 도움이 필요합니다.
Table: Users
UserID UserName IsAdmin
----------------------------------
1 John 0
2 Jane 1
3 Mary 0
Table: Clients
ClientID ParentClientID ClientName
----------------------------------
1 NULL Pepsico
2 1 Pizza Hut
3 1 Taco Bell
4 1 KFC
5 NULL McDonalds
Table: UsersInClients
UserID ClientID
----------------------------------
1 2
1 3
2 1
3 5
내 원하는 출력 :
UserID ClientID
----------------------------------
1 2 --User 1 & 3 are not admins so list only includes IDs in UsersInClients table.
1 3
2 1 --If Users.IsAdmin = 1, it should return
2 2 --all parent client and all child clients,
2 3 --one row per client like this.
2 4
3 5
내가이 일을 생각할 수있는 유일한 방법은 등의 열팽창 계수와 임시 테이블, 커서를 사용하고 있지만, 나는 이것이 내가 할 수있는 그래서보기를 할 수 있습니다 기대했다 내 검색어에 가입하십시오. 이 작업을 수행 할 수 있습니까?
고마워
FYI 여전히 뷰 정의에서 'CTE'를 수행 할 수 있습니다 ... – JNK