1. Создание запросов с групповыми операциями над данными
2. Формирование итогового отчета
Запросы, выполняющие вычисления в группах записей, называются итоговыми запросами. Такими вычислениями могут быть: суммирование значений некоторого числового поля, нахождение наибольшего или наименьшего значения, вычисление среднего,подсчет количества каких-то конкретных значений и некоторые другие.
Рассмотрим следующий пример: нужно подсчитать число отличников по информатике по итогам учебного года для каждого классе школы Для выполнения этого задания требуется сгруппировать записи из таблицы «Успеваемость» по классам, отобрать записи, относящиеся к предмету «Информатика», среди них выбрать лишь те, в которых годовая оценка «5» и подсчитать число таких записей.
Порядок выполнения задания в MS Access следующий:
1) открыть окно Конструктора запросов и добавить в него таблицу «Успеваемость»;
2) в столбцах бланка запроса поместить поля КЛАСС, ПРЕДМЕТ, ГОД, ГОД;
3) выполнить команду Групповые операции для добавления в бланк запроса строки «Групповая операция» (рис. 4.28).
|
|
После этого во всех полях в игроке «Групповая операция» устанавливается значение «Группировка».
Для поля ПРЕДМЕТ нужно ввести условие «= информатика». Поле ГОД повторено дважды. В первом столбце указывается условие на выбираемые значения годовых оценок. Это условие «=5». Во втором столбце нужно установить итоговую функцию Итоговая функция выбирается из списка, который открывается, если щелкнуть по кнопке в клеточке на пересечении строки «Групповые операции» и второго поля ГОД. Функция подсчета количества в этом списке имеет имя «Count». Окончательный вид запроса приведен на рис. 4.28.
А вот как записывается эти команда на SQL.:
SELECT Успеваемость. КЛАСС, Успеваемость. ПРЕДМЕТ,
Успеваемость. ГОД, Court (Успеваемость. ГОД) AS[Count-ГОД]
FROM Успеваемость
GROUP BY Успеваемость, КЛАСС, Успеваемость. ПРЕДМЕТ,
Успеваемость. ГОД
HAVING (((Успеваемость. ПРЕДМЕТ)="информатика") AND
((Успеваемость.ГОД)=5));
Результатом этот запроса будет таблица на рис. 4.29. Смысл результата следующий: в 8а классе по информатике одна пятерка; в 8б классе — три пятерки и т.д.
В следующем запросе для каждого класса определяется сумма годовых оценок по информатике. Здесь группировка производится подвум полям: КЛАСС н ПРЕДМЕТ=«информатика». Вгруппах записей с одинаковыми значениями этих полей суммируются годовые оценки. Функция суммирования для группы записей значений числового поля имеет имя SUM. С использованием конструктора запрос формулируется так, как показало на рис. 4.30.
|
|
В результате выполнения этого запроса получим таблицу, при веденную па рис. 4.31.
Рассмотрим запрос для реализации которого будут использоваться данные из всех трех таблиц БД: "Классы», «Ученики» и «Успеваемость» (рис. 4.32).
Пусть требуется получить список всех отличников по итогам года, по каждому предмету среди учеников 9-х классов. В итоговой таблице нужно указать класс, классного руководителя, фамилию и имя ученика и предмет, по которому он получил годовую оценку «5».
Результатом выполнения такого запроса будет таблица, представленная на рис. 4.33.
Если полученный список нужен для администрации школы в виде печатного документа, то в такой форме он не удобен. Печатные документы, соответствующие определенным правилам оформлении, называются отчетами. В СУБД предусмотрена возможность получения отчетов. Информация для отчетов может быть извлечена как из исходных таблиц, так и из результатов запросов.
В СУБД MS Access наиболее гибкий способ создание отчета — использование Конструктора. Конструктор отчетов позволяет
формировать требуемую структуру документа, оформление: шрифты,стили, заливки и пр. С помощью Мастера отчетов можно получать документы в нескольких стандартных форматах. Документ, созданный с помощью Мастера, можно редактировать, используя Конструктор отчетов.
На основе полученного ранее запроса был создан отчет, приведенный на рис. 4.34.