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