0

ユーザーとそのアクセスの標準化されたリストを返す、システム全体で使用できるビューを構築しようとしています。

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

これを行う唯一の方法は、CTE と一時テーブル、カーソルなどを使用することですが、クエリで結合できるように、これがビューになることを望んでいました。これはできますか?

みんなありがとう

4

2 に答える 2