Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VBA_Labs.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
8.08 Mб
Скачать

Сортировка записей и ключевое слово order by

Иногда необходимо получить набор записей из запроса в определенном по­рядке. Например, набор записей из таблицы СТУДЕНТ логично было бы просматривать отсортированным в алфавитном порядке по фамилиям студентов. В Microsoft Access для сортировки используется ключевое слово order by, как показано в следующем примере:

SELECT * FROM СТУДЕНТ ORDER BY ФИО;

По умолчанию, сортировка проводится в порядке возрастания, но можно также указать убывающий порядок сортировки:

SELECT * FROM СТУДЕНТ ORDER BY ФИО DESC;

Ограничение набора записей с использованием критерия отбора

Одна из главных целей применения запроса заключается в том, чтобы вер­нуть определенный набор записей, выбранных из всех записей источника. Для того чтобы сделать это, необходимо ограничить набор записей, указы­вая критерий отбора для определенных полей запроса. В Microsoft Access для ограничения количества записей, возвращаемых запросом, используется инструкция where. В следующем примере запрос вернет только те записи из таблицы Студент, для которых поле Проходной балл имеет значение, меньшее 4,5:

SELECT * FROM СТУДЕНТ WHERE ПБалл < 4.5;

Рассмотрим пример, в котором выбираются несколько полей из одной таблицы с несколькими условиями:

SELECT DISTINCTROW ПРЕДМЕТ.НП, ПРЕДМЕТ.ЧАСЫ, ПРЕДМЕТ.ЛЕК, ПРЕДМЕТ.ЧС FROM ПРЕДМЕТ

WHERE ((ПРЕДМЕТ.ЧАСЫ<=100) AND (ПРЕДМЕТ.ЛЕК<>0))

OR ((ПРЕДМЕТ.ЧАСЫ>150) AND (ПРЕДМЕТ.ЧС<3))

Предикат DISTINCTROW требует, чтобы Access не включал в таблицу запроса повторяющиеся записи. Вслед за этим перечисляются поля, которые надо включить в таблицу запроса. Предложение FROM определяет таблицы, которые служат источником данных для данного запроса. В предложении WHERE задаются условия отбора записей.

Обработка групп данных

Часто требуется сгруппировать информацию и получить другое поле (или Поля), основанное на данных группы. Например, можно подсчитать количество студентов в каждой группе. Для этого необходимо использовать инструкцию group by для разбиения таблицы СТУДЕНТ на группы по номерам групп и затем применить статистическую функцию count для подсчета количества студентов в каждой группе:

SELECT СТУДЕНТ.НГ,

Count (СТУДЕНТ.НГ) AS Count_НГ FROM СТУДЕНТ GROUP BY СТУДЕНТ.НГ

В инструкции SELECT определен вывод поля, по которому производится группировка, и поля по которому применяется функция Count. В данном примере это одно и тоже поле НГ. Кроме того, зарезервированное слово AS позволяет определить для поля с результатом вычисления функции псевдоним Count_НГ, который станет заголовком столбца вместо его исходного названия в таблице.

Microsoft Access поддерживает следующие функции для работы с группами:

sum - суммирует значения полей в группе.

avg - усредняет значение полей в группе.

count - подсчитывает количество записей в группе.

max, min - возвращают максимальное и минимальное значение в группе соответственно.

first, last - возвращают первое и последнее значение в группе соответственно.

stdev, var - возвращают среднеквадратичное отклонение от средней значения поля и дисперсию значений поля соответственно.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]