1

秋学期に少なくとも 1 つのコース、または春学期に少なくとも 1 つのコースに登録した学生をリストアップしようとしていますが、両方には登録していません。私はこれをさまざまな角度から試みましたが、これまでのところ、どれも成功していません。このソリューションを完成させると私が感じるコードは次のようになります。どんな助けでも大歓迎です!

SELECT enrolled.StudentID, student.LastName, student.FirstName
   , enrolled.courseID, enrolled.Quarter  
FROM enrolled 
INNER JOIN student ON enrolled.studentID = student.SID
GROUP BY enrolled.StudentID, student.LastName, student.FirstName
   , enrolled.courseID, enrolled.Quarter
HAVING (count(distinct enrolled.Quarter) = 1)
4

4 に答える 4

0

次の行に沿って何かを使用できます。

 SELECT 
   enrolled.StudentID, student.LastName, 
   student.FirstName, enrolled.courseID, enrolled.Quarter  
 FROM enrolled
 where StudentID in ( 
     SELECT StudentID 
     FROM enrolled where quarter in ( 'fall', 'spring' )
     group by StudentID
     having count(*) = 1 
   )      
于 2013-04-23T22:30:17.393 に答える
0

私の電話で申し訳ありませんが、完全な回答にはなりません。

私は試してみます

Select [what you want]
From students as s
Outer apply
(
Select distinct sid 
From enrolled as e
Where e.sid =s.sid
And quorter = 1
) as q1
Outer apply
(
 Select distinct sid 
From enrolled as e
Where e.sid =s.sid
And quorter = 2
) as q2
Where
((  q1.sid  is null and q2.sid is not null)
Or 
( q1.sid is not null and q2.sid is null))
And (q1.sid is not null and q2.sid is not null)
于 2013-04-23T22:31:01.233 に答える