- •Субд ms Access {1. Общие моменты}
- •2. Объекты Access
- •3. Режимы работы в Access
- •4. Таблицы. Создание таблиц
- •5. Особенности таблиц баз данных
- •6. Надежность и безопасность баз данных
- •7. Приемы работы с таблицами баз данных
- •8. Создание связей между таблицами
- •9. Запросы
- •10. Запросы на выборку
- •11. Запросы с параметром
- •12. Вычисления в запросах
- •13. Итоговые запросы
- •14. Формы
- •15. Создание форм
- •17. Отчеты
- •Закрепление пройденного
- •Контрольные вопросы
12. Вычисления в запросах
Для создания запроса, производящего вычисления, служит тот же самый бланк запроса по образцу. Разница только в том, что в одном из столбцов вместо имени поля записывают формулу. В формулу входят заключенные в квадратные скобки названия полей, участвующих в расчете, а также знаки математических операций, например, так:
Результативность: [Забито] / [Игры]
В узкий столбец непросто записать длинную формулу, но если нажать комбинацию клавиш SHIFT+F2, то открывается вспомогательное диалоговое окно, которое называется Область ввода. В нем можно ввести сколь угодно длинную формулу, а потом щелчком по кнопке ОК перенести ее в бланк запроса по образцу.
Если включить отображение вычисляемого поля, результаты расчетов будут выдаваться в результирующей таблице.
Ничто не мешает сделать вычисляемое поле полем сортировки, чтобы не только получать новые результаты, но и анализировать их.
Практическое задание.
Создайте в БД еще одну таблицу «Итоги по командам»:
Сборная |
Игры |
Победы |
Ничьи |
Поражения |
Забито |
Пропущено |
Очков |
Бразилия |
73 |
49 |
13 |
11 |
159 |
68 |
111 |
Германия |
73 |
42 |
16 |
15 |
154 |
87 |
100 |
Италия |
61 |
35 |
14 |
12 |
97 |
59 |
84 |
Аргентина |
52 |
26 |
9 |
17 |
90 |
65 |
61 |
Англия |
41 |
18 |
12 |
11 |
55 |
38 |
48 |
Испания |
37 |
15 |
9 |
13 |
53 |
44 |
39 |
Россия |
34 |
16 |
6 |
12 |
60 |
40 |
38 |
По данной таблице создайте запрос с вычисляемым полем по формуле, приведенной выше. Отсортируйте полученное вычисляемое поле по убыванию.
13. Итоговые запросы
Запросы могут не только отбирать нужную информацию из таблиц и обрабатывать ее путем создания новых (вычисляемых) полей, но и производить так называемые итоговые вычисления.
Примером итогового вычисления может служить сумма всех значений в какой-то группе записей или их среднее значение, хотя кроме суммы и среднего значения существуют и другие итоговые функции.
Поскольку итоговые функции для одной записи не имеют смысла и существуют только для группы записей, то предварительно записи надо сгруппировать по какому-то признаку.
Рассмотрим работу салона, занимающегося продажей подержанных автомобилей. Результаты работы салона за последнюю неделю содержатся в таблице. В ней можно выделить несколько групп по разному признаку. Записи можно сгруппировать по моделям автомобилей (ВАЗ – отдельно и BMW – отдельно) или по году выпуска (1989, 1993 и т.д.). Для каждой из групп можно провести итоговое вычисление по полю Цена.
Итоговые запросы создают на основе известного нам бланка запросов по образцу, только теперь в нем появляется дополнительная строка – Группировка.
Для введения этой строки в бланк надо щелкнуть по кнопке Групповые операции
на панели инструментов.В тех полях, по которым производится группировка, надо установить (или оставить) функцию Группировка.
В тех полях, по которым следует провести итоговое вычисление, надо в строке Группировка раскрыть список и выбрать одну из нескольких итоговых функций.
Щелчок по кнопке Вид запускает запрос и выдает результирующую таблицу с необходимыми итоговыми данными.
В строке Группировка можно указать лишь одну итоговую функцию. Если надо найти и сумму, и среднее, и максимальное значение, одно и то же поле можно включить в бланк запроса по образцу несколько раз.
Практическое задание.
Создайте новую БД с таблицей «Автосалон», (поля Автомобиль и ГодВыпуска – текстовые, поле Цена – числовое):
Автомобиль |
Год выпуска |
Цена |
Тойота-Карина |
1989 |
6500 |
Опель-Омега |
1989 |
7600 |
BMW-525 |
1989 |
13800 |
Фольксваген-Пассат |
1989 |
8800 |
ВАЗ-2105 |
1989 |
3200 |
ВАЗ-2105 |
1993 |
3600 |
Опель-Омега |
1993 |
13800 |
BMW-525 |
1993 |
19000 |
Тойота-Карина |
1993 |
14200 |
Фольксваген-Пассат |
1993 |
14400 |
Тойота-Карина |
1994 |
14300 |
Фольксваген-Пассат |
1994 |
15500 |
Опель-Омега |
1994 |
17300 |
ВАЗ-2105 |
1994 |
4000 |
BMW-525 |
1994 |
23000 |
Опель-Омега |
1995 |
19400 |
Тойота-Карина |
1995 |
17000 |
Фольксваген-Пассат |
1995 |
16400 |
BMW-525 |
1995 |
23800 |
ВАЗ-2105 |
1995 |
4900 |
По полученной таблице создайте итоговый запрос:
