Предположим, что необходимо найти записи о предметах, в которых общее число часов по предмету не совпадает с суммой часов лекций и практик. Для решения этой задачи рассчитаем разность между общим числом часов по предмету и суммой часов лекций и практик. В ответ включим только те записи, для которых эта разность не равна нулю.
1. Создайте в режиме конструктора запрос на выборку для таблицы ПРЕДМЕ Т. Перетащите в бланк запроса поля НП, ПР, ЛЕК, ЧАСЫ.
2. Для подсчета разности создайте вычисляемое поле в пустой ячейке строки Поле, записав выражение: [ЧАСЫ]-([ПР]+[ЛЕК])
3. Для отбора записей с ненулевым значением разности в вычисляемом поле в строку Условие отбора введите <>0.
4. После ввода выражения система по умолчанию формирует имя вычисляемого поля – выражение 1:. Это имя ставится перед формулой [ЧАСЫ]-([ПР]+[ЛЕК]). Для изменения имени установите курсор в вычисляемом поле бланка запроса и нажмите правую кнопку мыши. В контекстном меню выберите Свойства и в строку Подпись поля введите новое имя поля – ЧАСЫне равны ПР+ЛЕК.
5. Сохраните запрос под именем – Разность часов по предмету
3.4. Конструирование запроса с функцией <Count>
Rem: Часто нужно видеть не каждую строку таблицы, а только итоговые значения по группам данных. Групповые операции позволяют выделить группы записей с одинаковыми значениями в указанных полях и использовать для некоторых полей этих групп одну из статистических функций. В Access предусматривается десять статистических функций:
Sum – сумма значений некоторого поля для группы;
Avg – среднее от всех значений поля в группе;
Max, Min – максимальное и минимальное значение поля в группе;
Count – число значений поля в группе без учета пустых значений;
|
StDev – среднеквадратичное отклонение от среднего значения поля в группе;
Var – дисперсия значений поля в группе;
First, Last – значение поля из первой или последней записи в группе.
Определим фактическое число студентов в группе
1. Создать в режиме конструктора запрос на выборку для таблицы СТУДЕНТ
2. Из списка таблицы СТУДЕНТ перетащить в бланк запроса поле НГ. По этому полю будет проводиться группировка
3. Перетащите в бланк запроса поле НС, по которому будет вычисляться функция Count для подсчета числа студентов группе
4. Выполните команду Вид Групповые операции. В бланке запросов появится строка Групповые операции, в которой для всех полей записано Группировка
5. Заменить слово группировка в столбце НС на Count. Для этого вызовите список и выберите эту функцию
6. Выполните запрос Запрос Запуск.
7. Замените подпись Count_НС на Фактическое число студентов. Для ввода этой подписи в бланке запроса установите курсор мыши на поле НС и нажмите правую кнопку. В контекстном меню выберите Свойства. В окне Свойства поля наберите в строке Подпись – Фактическое число студентов.
8. Сохраните запрос на выборку под именем Число студентов в группах.
3.5 Запрос с функцией <Avg>
Подсчитать средний проходной балл в группе. Сформировать запрос для таблицы СТУДЕНТ с функцией Avg для поля ПБАЛЛ.
1. Создать в режиме конструктора запрос на выборку для таблицы СТУДЕНТ.
2. Из списка таблицы СТУДЕНТ перетащить в бланк запроса поле НГ, по которому будет вычисляться функция Avg для подсчета среднего балла.
3. Выполните команду Вид Групповые операции. В бланке запросов появится строка Групповые операции, в которой для всех полей записано Группировка.
|
4. Заменить слово группировка в столбце ПБАЛЛ на Avg. Для этого вызовите список и выберите эту функцию.
5. Выполните запрос Запрос Запуск.
6. Замените подпись Avg_ПБАЛЛ на Средний проходной балл группы. Для ограничения точности результатов двумя знаками в окне Свойства поля в строке Формат поля – Фиксированный.
7. Сохраните запрос на выборку под именем Средний проходной балл группы.