0
我有一个表具有用户ID,另一个表作为AD组;某些AD组会告诉您客户是否是VIP,Pilot,远程访问等组的成员。在一个表中查找值以更新另一个表
当试图创建一个视图来显示客户端是哪个组的成员时,我遇到了必须为每个组名称创建单独联接的问题,因为不这样做会在结果中创建重复项。
Table One
Client_ID Client_Name
--------- ------------
A ABC
D DEF
G GHI
Table Two:
Client_ID AD_Group
--------- --------
A I_GroupX
A GroupY
D B_GroupX
D GroupZ
G GroupY
G GroupZ
Result Table:
Client_ID Client_Name VIP(X) Pilot(Y) RemoteAccess(Z)
--------- ----------- ------ -------- -----------
A ABC I_GroupX GroupY Not Member
D DEF Not Member GroupY GroupZ
G GHI B_GroupX Not Member GroupZ
这工作,但必须创建一个为每个组,而不是所有在一个视图:
SELECT Client_ID,
,Client_Name
,[VIP] = CASE
WHEN A.GroupX IS NULL THEN 'Not Member'
ELSE A.AD_Group
END
FROM Table1 LEFT OUTER JOIN
(SELECT [Client_ID]
,[AD_Group]
FROM Table2
WHERE [AD_Group] LIKE '%GroupX') A
ON Client_ID = A.Client_ID
在此先感谢
感谢您的及时回复。我们几乎在那里,因为如果有人在AD组中有人在场,这会给出是或否。我遇到的问题是我需要列出AD组名,因为试点客户可能是IT Pilot或Business Pilot,并且具有名为IT_GroupX和Bus_GourpX的相应组,因此需要查找LIKE'%GroupX'并返回组名 – user1886816 2013-04-29 21:08:46
好的。所以我把'SELECT CASE'改成了'ISNULL()'。现在好吗? – davmos 2013-04-29 21:31:56
工作正常!非常感谢。欣赏它。 – user1886816 2013-04-30 16:33:33