Создание групповых запро­сов

Практическая работа №6. СУБД Access. Использование вычисляемых полей.

Цели: уметь производить вычисления в запросах.

Повторение: уметь создавать структуру БД. Заносить записи в БД.

 

Вычисления в запросах

Очень часто возникает необходимость выполнить ряд вычислений в процессе работы запроса и вывести результаты, а не исходные значения. Для этого в запрос вводится специальное поле, содержимое которого является результатом расчета по содержимому других полей. Такое поле называется вычисляемым полем. В исходных таблицах базы данных такое поле не создается и его значение не влияет на содержимое этих таблиц. Это сделано для защиты информации в базе данных. Каждое обращение к базе, может с помощью запросов манипулировать данными и получать любые результаты, но все это будет существовать только в пределах Recordset (набора записей) - временной итоговой таблицы, хранимой только в памяти компьютера.

Вычисляемые поля

В запросе над полями могут производиться вычисления.

Выражения. При вычислениях могут использоваться арифметические выражения и встроенные функции. Выражения вводятся в бланк запроса в пустую ячейку строки Поле. Например:

Выражение1:[Цена]*[Количество], где цена и Количество – имена полей. Выражение1 – заголовок столбца, которое можно изменить. Имена полей заключаются в квадратные скобки.

Математические операторы:

· - умножение

· + - сложение

· - - вычитание

· / - деление

· \ - деление нацело

· ^ - возведение в степень

Операторы отношения:

=, <,>,<>,<=,>=

Строковые операторы:

& - Оператор конкатенации (объединяет несколько объектов в одну строку). Например:

[Имя]&[Фамилия]

Логические операторы:

And, Or, Not

Вспомогательные операторы:

Between… And - Позволяет задавать интервал для числового значения

In - Проверяет, совпадает ли значение выражения с одним из элементов указанного списка

В Access имеются встроенные функции, которые можно использовать в вычисляемых полях.

Now() – функция получения даты и времени

Time() – функция времени

Date() – функция даты

Avg() – среднее от всех значений в группе

Sum() – сумма значений для группы

Sqr() – квадратный корень

Int() – целая часть числа

Len() – длина строки

Выражения.

Выражение – способ описания какого-либо процесса. Выражение вводится в бланк запроса в пустую ячейку строки Поле.

Примеры.

[Животные]=”Кошки” And [Вид]=”Персидский”

[Дата рождения] Between 1/88 and 12/91

Для создания запроса, производящего вычисления, служит тот же самый стандартный бланк запроса. Разница заключается только в том, что в одном из столбцов вместо имени поля записывается формула. В формулу вводят заключенные в квадратные скобки названия полей связанных таблиц, принимающих участие в расчете, а также знаки математических операций:

Доход: [Продано]*[Цена]/6

До двоеточия следует название вычисляемого поля, выводимое в заголовке столбца результирующей таблицы. В узкое поле бланка запроса неудобно записывать длинные формулы, но если воспользоваться комбинацией клавиш Shiht+F2, то откроется вспомогательное окно Область ввода. В нем есть возможность ввести сколь угодно длинную формулу, а затем добавить ее в поле запроса, простым нажатием на кнопку ОК.

Установка флага Вывод на экран, приводит к отображению результат вычисляемого поля в результирующей таблице. Формат отображения информации определяется в окне Свойства поля, отрываемом командой Свойства в контекстном меню, правой кнопки мыши. Здесь доступны все возможные форматы представления результатов вычислений.

Кроме того, можно указать параметры сортировки, для первичного анализа выводимой информации. Вот как будет выглядеть результат работы запроса Доход, отсортированный по возрастанию суммы полученного дохода. Числа выводятся с фиксированной длиной поля.

Создание групповых запро­сов

При создании группового запроса используется строка Групповая операция в конструкторе запроса. Групповые операции позволяют выделить группы записей с одинаковыми значениями в указанных полях и использовать для других полей этих групп определенную статистическую функцию (Sum, Avg, Max, Min, Count, First, Last).

Для создания запроса с использованием групповых операций формируется запрос на выборку. В бланк запроса включаются поля, по которым надо произвести группировку, и поля по которым надо произвести статистические вычисления. Команда Вид – Групповые операции (или кнопка Групповые на панели инструментов) операции. Для групповых вычислений по некоторому полю нужно заменить в нем слово Группировка на нужную статистическую функцию.


Задание.

 

Создайте БД «Спортивная гимнастика» и сохраните ее в своей папке с тем же именем.

 

Фамилия Страна Перекладина Кольца Конь
Джон Робсон США 9,225 9,000 8,875
Сергей Леонидов Россия 9,500 9,225 9,875
Андрей Чугайнов Россия 9,225 9,775 9,925
Франсуа Пьолин Франция 8,500 8,900 8,225
Андрей Штольц Германия 9,775 9,225 9,000
Олег Морозов Украина 9,885 9,500 9,625
Фрэнк Джонсон США 8,885 9,000 9,325
Грег Ли США 9,500 9,500 9,225
Геннадий Овсиенко Украина 9,975 9,000 9,225
Пьер Куэртен Франция 9,925 8,775 9,500

 

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

 

  1. Открыть БД «Спортивная гимнастика». Вывести на экран фамилии и общую сумму баллов для всех спортсменов, набравших в сумме более 28 баллов.

 

 

  1. Вывести на экран фамилию и среднюю сумму баллов для всех спортсменов из США, России и Украины.

 

 

  1. Вывести фамилии и средний балл за все снаряды для спортсменов, у которых средний балл за все снаряды выше 9,225.

 

  1. Вывести фамилии, средний балл за все снаряды и количество баллов за снаряд «перекладина» для спортсменов, у которых средний балл за все снаряды выше, чем балл за перекладину.

 

  1. Найдите средний балл за перекладину для всех спортсменов. Используйте групповой запрос.

 

  1. Найдите максимальный балл за коня для спортсменов из США.

 

 

  1. Удалить из таблицы записи о спортсменах с суммой баллов менее 27.