Как сделать запрос, чтобы узнать, прошел ли студент или нет, где у каждого ученика десять предметов и степень прохождения для каждого предмета: (>49)
Студент, который должен пройти, имеет пройти по всем предметам. Любая помощь, пожалуйста?Запрос для студентов, прошедших и не прошедших
ответ
Используйте GROUP BY
запрос для подсчета количества предметных отказов для каждого студента:
Count(IIf(q.Total > 49, Null, 1))
В конечном итоге вы хотите увидеть только студент, которые прошли все свои предметы, а это значит, их количество отказов равно нуль. Поэтому включите это условие в запрос HAVING
.
SELECT
q.StudentsID,
Count(IIf(q.Total > 49, Null, 1)) AS CountOfFailures
FROM QueryTotalGraedFirstCourse AS q
GROUP BY q.StudentsID
HAVING Count(IIf(q.Total > 49, Null, 1)) = 0;
Вы можете приступить к построению этого запроса в Design Design Design Design Access. Укажите таблицу, выберите поля и настройте основные данные GROUP BY
в Design View. Затем вы можете переключиться на SQL View, чтобы включить выражение IIf
в Count
.
Вот мои данные образца для QueryTotalGraedFirstCourse. Чтобы это было просто, я включил только 2 предмета на одного учащегося.
StudentsID subject_id Total
---------- ---------- -----
1 1 90
1 2 85
2 1 65
2 2 30
3 1 40
3 2 35
Основываясь на описании, «прошли» не означает, что не непроходной балл для любого предмета, так что только StudentsID 1 из моих выборочных данных, передаваемых. Это результат моего запроса, используя выборку данных, и испытано в Access 2010:
StudentsID CountOfFailures
---------- ---------------
1 0
Если вы хотите увидеть все студент, а не только тех, кто прошел, просто удалите пункт HAVING
.
возвращает таблицу двух пустых столбцов.Нет учениковID нет. Кстати, что означает «q»? – FSm
'q' является просто псевдонимом для имени таблицы. Мне это нравится, потому что он намного короче, чем полное имя таблицы везде. Но вам не нужно использовать псевдоним, если вам это не нравится. – HansUp
Я использовал ваш код, но не приносит никаких результатов :( – FSm
- 1. Автоматический подсчет числа студентов, проходящих и не прошедших проверку, с использованием листа excel
- 2. Показать pdf только для прошедших проверку пользователей
- 3. Ассоциации светильников, не прошедших проверку почтовой корреспонденции
- 4. logstash: использование нескольких прошедших фильтров
- 5. Формула для вычисления количества прошедших дней
- 6. mysql триггер для вычисления прошедших минут
- 7. Автоматическая переадресация не прошедших проверку пользователей
- 8. Различные ответы на пользователей, не прошедших аутентификацию, и вызовы AJAX
- 9. Удаление запросов 2.0 для пользователей, не прошедших проверку подлинности
- 10. Отображение моих собственных данных аналитики для не прошедших проверку пользователей
- 11. Запрос частичного просмотра через ajax в анкетах, прошедших проверку подлинности
- 12. Использование JWT для анонимных и прошедших проверку пользователей
- 13. Решение для даты и дней, прошедших через функции
- 14. Ассемблер для сравнения типов, не прошедших тесты интеграции WCF
- 15. Безопасность пирамиды - добавление принципала для не прошедших проверку пользователей
- 16. Кэширование содержимого только для пользователей, не прошедших проверку подлинности
- 17. Tomcat 7 Перенаправление для пользователей, не прошедших проверку подлинности
- 18. Как скрыть мое меню для пользователей, не прошедших проверку подлинности?
- 19. Pandas: количество дней, прошедших с определенной даты
- 20. Netlogo - как показать окончательную сумму тиков, прошедших
- 21. Использование того же маршрута, но отображение другого контента для пользователей, прошедших проверку подлинности/не прошедших проверку подлинности
- 22. Проверка параметров, прошедших через URL-адрес
- 23. Отображение пользователя друзей, прошедших аутентификацию приложения
- 24. Загрузка прошедших твист-трансляций в python
- 25. Количество секунд, прошедших между страницами в PHP
- 26. Как удалить прошедших проверку пользователей из Firebase?
- 27. дней, прошедших с определенной даты python pandas
- 28. Проблемы при использовании объектов, прошедших через массив
- 29. Маска ввода с проверкой только прошедших дат
- 30. Построение массива на основе прошедших значений
Создайте запрос GROUP BY, который вычисляет количество неудавшихся предметов для каждого ученика: 'Count (IIf ([grade]> 49, Null, 1)' Прошедшие студенты - это те, для которых это число равно нулю. – HansUp
@HansUp, Просьба, где я должен поместить этот код? в поле критериев? – FSm
Можете ли вы создать запрос GROUP BY в конструкторе запросов Access? Я намеревался, что выражение 'Count' быть в предложении SELECT 'запроса --- список выражений поля, которые отображаются в виде столбцов в результатах запроса. После этого вы укажете это выражение в поле критериев столбца и введите' 0'. Это имеет смысл для вас? – HansUp