0

クエリの書き方についてのガイダンスが必要です。

次の表があります。

tblWorkGroupProgramme

  1. WorkGroupID
  2. プログラムID

tblWorkGroup

  1. WorkGroupID
  2. WorkGroupName

tblUser

  1. ユーザーID
  2. WorkgroupID

tblUserProgramme

  1. ユーザーID
  2. ProgrammeID

要件は、ワークグループ名が「%Insight%」ではなく、ProgrammeIDが59であるすべてのユーザーIDを見つけることです。これは、ProgrammeID 59は、ワークグループを「%Insight%」として持つユーザーにのみ割り当てる必要があるためです。</ p>

可能なすべての結合とサブクエリを試してきましたが、取得できませんでした。だから、正しい方向への助けは大いに役立つだろう

4

2 に答える 2

1

ここで、これを試してください。

SELECT      a.UserID
FROM        tblUser a
                INNER JOIN tblWorkGroupProgramme b
                    ON a.WorkgroupID = b.WorkGroupID
                INNER JOIN tblUserProgramme c
                    ON c.ProgrammeID = b.ProgrammeID
                INNER JOIN tblWorkGroup d
                    ON b.WorkGroupID = d.WorkGroupID
WHERE       NOT (d.WorkGroupName LIKE '%Insight%') AND
            c.ProgrammeID = 59
于 2012-09-04T22:57:35.807 に答える
0

これは私が思いついた答えです:

select a.UserID, c.WorkGroupName
from dbo.tblUserProgramme a 
where a.ProgrammeID = 59 AND 
a.UserID  IN (SELECT UserID  FROM tblUser a WHERE a.WorkGroupID IN
(SELECT WorkGroupID FROM tblWorkGroup
WHERE WorkGroupName like '%Insight%')
于 2012-09-06T10:07:46.630 に答える