2014-09-07 5 views
1

У меня есть эта таблица в моей базе данных:Использование Для каждого В SQL Server

StudentExam:

studentID, ExamID, EarnedMarks, Status 

Я хочу запрос, который возвращает статус (Еогеасп проверки examID, если «сделано» возвращение ExamID еще возвращение ничего.)

Это означает, что каждый студент посетил экзамен.

Благодаря

ответ

2

Чтобы вернуть все ExamId, где все это связано состояние являются Done один способ будет

SELECT ExamId 
FROM StudentExam 
GROUP BY ExamId 
HAVING COUNT(*) = SUM(CASE 
         WHEN Status = 'DONE' THEN 1 
         END) 

Или другой

SELECT ExamId 
FROM StudentExam 
WHERE Status = 'DONE' 
EXCEPT 
SELECT ExamId 
FROM StudentExam 
WHERE Status <> 'DONE' 
     OR Status IS NULL 
+1

Спасибо. Он отлично работал – Mishaell

Смежные вопросы