ユーザー ID を持つ 1 つのテーブルと、AD グループとしての別のテーブルがあります。特定の AD グループは、クライアントが VIP、Pilot、Remote Access などのグループのメンバーであるかどうかを示します。
クライアントがどのグループのメンバーであるかを示すビューを作成しようとすると、グループ名ごとに個別の結合を作成しなければならないという問題が発生します。そうしないと結果として重複が作成されるためです。
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
これは機能しますが、すべてを 1 つのビューに表示するのではなく、グループごとに 1 つ作成する必要があります。
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
前もって感謝します