Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка Базы данных.doc
Скачиваний:
5
Добавлен:
25.11.2019
Размер:
4.92 Mб
Скачать

5.2. Порядок выполнения работы

1. Используя методические указания к выполнению данной лабораторной работы, сконструируйте указанные в задании запросы с вычисляемыми полями.

2. Продемонстрируйте работоспособность созданных запросов с вычисляемыми полями, показав бланки конструктора запросов и полученные результаты выполнения запросов.

3. Дайте ответы на контрольные вопросы.

5.3. Содержание отчета

Титульный лист

Скриншоты бланков конструктора запросов, построителя выражений и полученные результаты выполнения запросов.

Ответы на контрольные вопросы.

Выводы.

5.4. Контрольные вопросы

  1. Пусть дана таблица с полями: Номер опыта, Значение_1, Значение_2, Значение_3, Значение_4, Значение_5. Напишите выражение, которое вычисляет дисперсию значений для каждого опыта.

  2. Пусть дана таблица с полями: Наименование, Минимальная стоимость за штуку, Наценка, Количество. Напишите выражение, которое вычисляет общую стоимость каждого наименования.

  3. Пусть дана таблица с полями: ФИО ученика, Баллы по математике, Баллы по литературе, Баллы по русскому языку. Напишите выражение, которое вычисляет средний балл по результатам ЕГЭ.

  4. Пусть дана таблица с полями: ФИО, Оклад, Премия. Напишите выражение для отчисления в подоходный налог.

  5. Пусть дана таблица с полями: ФИО, Оклад, Премия. Напишите выражение для отчисления в профсоюз.

  6. Пусть дана таблица с полями: ФИО ученика, Баллы по математике, Баллы по русскому языку, Баллы по информатике. Напишите выражение, которое вычисляет общий балл по результатам ЕГЭ и средний балл аттестата.

  7. Пусть дана таблица с полями: Номер опыта, Значение_1, Значение_2, Значение_3, Значение_4, Значение_5. Напишите выражение, которое вычисляет математическое ожидание значений для каждого опыта.

Лабораторная работа 6 Итоговые запросы к бд

Цель работы: уметь задавать групповые операции в итоговых запросах.

6.1. Теоретические сведения

Иногда необходимо значение не любой строки таблицы, а сразу итог: значение по группам данных, например, общая сумма продаж для всех видов товаров. Для вычисления в запросе итоговых значений кнопка  Групповые операции, панели инструментов конструктора запросов, чтобы в бланке QBE появилась строка «Групповая операция».

MS Access предоставляет 8 функций получения итогов. Описание функций представлено ниже (табл. 6.1).

Таблица 6.1

Итоговые функции

Функция

Назначение

SUM

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

AVG

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

MIN

Возвращает наименьшее значение найденное в этом поле внутри любой группы. Для числовых полей возвращается наименьшее число, для текстовых – наименьшее из символьных значений. Пустые поля – игнорируются

MAX

Возвращает наибольшее значение найденное в этом поле внутри любой группы. Для числовых полей возвращается наибольшее число, для текстовых – наибольшее из символьных значений. Пустые поля – игнорируются

FIRST

Возвращает первое значение этого поля в группе

LAST

Возвращает последнее значение этого поля в группе

StDev

Среднеквадратичное отклонение от среднего значения поля

VAR

Дисперсия значений поля

Рассмотрим примеры создания итоговых запросов.

Пример 6.1. Пусть дана таблица «Товары» (табл. 6.2)

Таблица 6.2

Товары

Товар

Поставщик

Продано

Стоимость

Всего

Налог

Ручка

Поставщик

1000

6,00р.

1500

0,60 р.

Тетрадь

Магазин № 1

200

2,50р.

200

0,25 р.

Ручка

Магазин № 2

500

9,00р.

550

0,90 р.

Тетрадь

Магазин № 10

1200

15,50р.

1800

1,55 р.

Линейка

Иванов

600

8,70р.

800

0,87 р.

Ручка

Магазин № 300

400

60,00р.

550

6,00 р.

Последовательность создания итогового запроса для таблицы «Товары» следующая.

  1. Щелкнуть мышью по кнопке «Итоги» на панели инструментов (рис. 6.1).

Рис. 6.1. Кнопка «Итоги» на панели инструментов в конструкторе запросов

  1. В бланке QBE появится новая строка «Групповая операция». Заполняем её следующим образом:

  • для поля «Товар» выбираем «Группировка»;

  • для поля «Стоимость» – Avg;

  • для поля «Налог» – Avg;

  • для поля «Всего» – max;

  • для поля «Продано» – sum.

Таким образом, получим следующий бланк запроса (рис. 6.2).

Рис. 6.2. Конструктор итогового запроса

  1. Сохраняем созданный запрос и открываем для просмотра и проверки.

Результат выполнения группового запроса для данных табл. 6.2 «Товары» приведен в таблице 6.3.

Таблица 6.3

Результат выполнения запроса для примера 6.1

Товар

Sum-Продано

Avg-Стоимость

Max-Всего

Avg-Налог

линейка

600

8,70р.

800

0,87 руб

ручка

1900

25,00р.

1500

2,50 руб

тетрадь

1400

9,00р.

1800

0,90 руб

В раскрывающемся списке строки «Групповая операция» бланка QBE также имеется установка «Выражение». Ее можно выбрать, если нужно ввести выражение в строку «Поле», в котором имеются одна или несколько групповых функций. Например, нужно вычислить размах значений поля в определенной группе, тогда надо ввести: MAX([Налог])MIN([Налог]).

Возможно, пользователю не хочется включать некоторые записи в группы итогового запроса. Чтобы в эти группы включались только определенные записи, надо добавить в бланк QBE поля (поле), которые будут использоваться в фильтре.

Для создания фильтра необходимо выполнить следующую последовательность шагов:

  • выбрать установку «Условие» и строку «Групповые операции»;

  • удалить флажок «Вывод на экран»;

  • ввести условие отбора для данного поля.

Пример 6.2. Для табл. 6.2 «Товар» ограничить множество выбранных записей только продавцами из магазинов.

Бланк QBE будет выглядеть, как на рис. 6.3.

Рис. 6.3. Конструирование итогового запроса с фильтром

При выполнении такого запроса получится итог, вычисленный только для товаров из магазинов (табл. 6.4).

Таблица 6.4

Результат выполнения запроса для примера 6.2

Товар

Avg-Стоимость

Max-Всего

Avg-Налог

Sum-Продано

Ручка

34,50 руб

550

3,45 руб

900

Тетрадь

9,00 руб

1800

0,90 руб

1400

MS Access поддерживает специальный тип итогового запроса, называемый перекрестным запросом. Перекрестный запрос отображает результаты статистических расчетов в виде перекрестной таблицы, например, как табл. 6.5.

Таблица 6.5

Перекрестная таблица к БД «Канцелярские товары»

Товар

Продано

Февраль

Март

Апрель

Май

Сумма

Ручка

750

1800

500

3800

Линейка

800

500

1500

Тетрадь

100

700

2400

Пример 6.3. Этот специальный вид итогового запроса рассмотрим на примере БД «Канцелярские товары» (табл. 6.6).

Таблица 6.6

БД «Канцелярские товары»

Товар

Месяц

Количество

Продано

Продавец

Ручка

Май

1000

500

Иванов

Линейка

Апрель

1000

800

Магазин №2

Линейка

Май

500

500

Магазин №10

Тетрадь

Май

1200

700

Магазин №36

Ручка

Февраль

800

750

Петров

Ручка

Март

2000

1800

Магазин №10

Тетрадь

Апрель

1200

1000

Иванов

Для построения перекрестного запроса необходимо:

  1. Выбрать в качестве источника нужную таблицу в окне БД, затем активизировать кнопку «Новый запрос» на панели инструментов;

  2. В открывшемся диалоговом окне «Создание запроса» выбрать «Запрос», затем выбрать тип запроса «Перекрестный». Access добавит в бланк QBE новую строку «Перекрестная таблица».

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

а) заголовки строк,

б) заголовки столбцов,

в) значение (выводимое в сетке перекрестного запроса),

г) не выводить.

Для перекрестного запроса должно быть определено по крайне мере одно поле в качестве заголовка строки, одно поле в качестве заголовка столбца и одно поле значений. Любое поле, являющееся заголовком строки или столбца, должно иметь в строке «Групповая операция» установку «Группировка». Для поля, которое в бланке QBE имеет установку «Значение» (рис. 6.4), необходимо выбрать одну из групповых функций (sum, max и т.п.).

Рис. 6.4. Бланк перекрестного запроса

  1. Закрываем запрос и сохраняем его. Теперь результат запроса будет представлен в виде перекрестной таблицы, как табл. 6.5