Я разрабатываю простой движок викторины, похожий на тот, что на веб-сайте ASP.NET. У меня есть следующий дизайн базы данных:
Таблица пользователей: имя пользователя, имя, код подразделения ... и т. Д.
Таблица деления: SapCode, Деление
Таблица теста: QuizID, Title, IsSent, Description
UserQuiz: UserQuizID, QuizID, DateTimeComplete, счет, имя пользователя
Каждую неделю сотрудники моей компании будут получать по электронной почте уведомление об участии в новой викторине, доступной в системе. Тест, который будет отправлен сотрудникам, будет иметь (True) в качестве значения атрибута IsSent, и именно это отличает его от других тестов, которые не отправляются сотрудникам. Теперь я хочу показать количество участников в последнем пройденном тесте, поскольку каждую неделю будет отправляться только один тест.
Мой запрос, который показывает общее количество участников во всех проведенных тестах:
SELECT dbo.Divisions.DivisionShortcut, COUNT(DISTINCT dbo.UserQuiz.Username) AS [Number of Participants], dbo.Quiz.QuizID
FROM dbo.Divisions INNER JOIN
dbo.employee ON dbo.Divisions.SapCode = dbo.employee.DivisionCode INNER JOIN
dbo.UserQuiz ON dbo.employee.Username = dbo.UserQuiz.Username INNER JOIN
dbo.Quiz ON dbo.UserQuiz.QuizID = dbo.Quiz.QuizID
WHERE (dbo.Quiz.IsSent = 1)
GROUP BY dbo.Divisions.DivisionShortcut, dbo.Quiz.QuizID
Так как исправить это, чтобы показывать только количество участников в последнем пройденном тесте (отправленный тест)?