查找该类的主题代码不为零的记录

时间:2016-04-29 05:57:29

标签: sql

这是学生表。

StudentId ClassId SubjectCode
101       201     0
101       201     1
101       301     1
101       401     0

假设我为他/她的课程做了最终的标记。学生可以参加不同的课程。我想找出哪一排 学生没有该课程的主题代码0。就像这个

   101       301     1

怎么做? 如果我喜欢这个

select Studentid,classId,subjectcode from Student
where operator <> 0

这也给了这个记录

101 201 1    .I don't want that.because it has 0 for that class 201.

1 个答案:

答案 0 :(得分:2)

您可以使用GROUP BYHAVING

SELECT 
    StudentId, ClassId
FROM Student
GROUP BY
    StudentId, ClassId
HAVING
    SUM(CASE WHEN SubjectCode = 0 THEN 1 ELSE 0 END) = 0

ONLINE DEMO