ユーザーとそのアクセスの標準化されたリストを返す、システム全体で使用できるビューを構築しようとしています。
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 と一時テーブル、カーソルなどを使用することですが、クエリで結合できるように、これがビューになることを望んでいました。これはできますか?
みんなありがとう