我试图建立一个视图,我可以在我们的系统中使用,返回用户及其访问的标准化列表。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
我能想到这样做的唯一办法就是使用CTE和临时表,游标,等等,但我希望这可能是一个视图,以便我可以在我的查询中加入它。这可以做到吗?
谢谢你们
仅供参考如果您仍然可以在视图定义中执行'CTE' ... – JNK