Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

БД-Лабораторные работы / БД-практическая работа№8

.doc
Скачиваний:
58
Добавлен:
04.06.2015
Размер:
215.04 Кб
Скачать

БД

Практическая работа № 8

ЦЕЛЬ

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

Теоретический материал:

Вычисления в запросах организуются с помощью выражений. Эти выражения являются аналогами формул в Microsoft Excel.

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

Выражение может выполнять вычисления, обрабатывать текст или проверять данные.

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

  • идентификаторы — имя поля таблицы, элемента управления в форме, отчете, либо свойства этого поля или элемента управления;

  • операторы, такие как + (плюс) или - (минус);

  • функции, такие как Sum или Avg, а также аргументы, которые они используют;

  • константы — неизменяемые величины — такие как текстовые строки или числа, эти величины не вычисляются в выражениях.

Выражения используются для:

– выполнения вычислений;

– определения значений поля или элемента управления;

– задания условий для запроса; – определения правил;

– создания вычисляемых элементов управления и вычисляемых полей;

– задания уровня группировки отчета.

Выражения используются тогда, когда необходимо создать значения, не содержащиеся непосредственно в существующих данных. Например, может понадобиться вычислить налог с оборота для заказа или итоговое значение по заказу. Также может понадобиться добавить в запрос или фильтр условия отбора — сведения, определяющие, какие записи будут возвращены запросом или будут отображены после применения фильтра. Кроме того, может понадобиться задать значение по умолчанию или условие на значение для поля или элемента управления. Во всех этих случаях используются выражения.

Общий формат вычисляемого поля выглядит следующим образом:

Имя вычисляемого поля: Выражение вычисляемого поля.

Имеется возможность определить для вычисляемого поля условие отбора данных, используемых в расчетах.

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

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

Групповые операции могут быть разделены на итоговые функции, выражения.

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

Название функции

Описание

COUNT

Считает количество непустых значений в поле

SUM

Суммирует значения данных в поле

MAX

Вычисляет максимальное значение данных в поле

MIN

Вычисляет минимальное значение данных в поле

AVG

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

ЗАДАНИЕ

Создание запросов для групповых вычислений.

Задание 1. Создайте запрос, выводящий информацию о количестве книг у каждого автора.

  1. Вызовите окно конструктора запросов. В окне Добавление таблицы добавьте таблицы Книги, Авторы, Книги-Авторы.

  2. Из таблицы Авторы в бланк запроса переместите поля: «Фамилия», «Имя», Отчество», из таблицы Книги – «Код книги».

  3. Активизируйте строку Групповая операция. Для этого на вкладке Конструктор активизируйте команду Итоги.

  4. Для полей «Фамилия», «Имя», Отчество» в строке Групповая операция выберите функцию Группировка, для поля «Код книги» функцию Count.

  5. Сохраните как Задание3. Посмотрите сформированную запросом информацию.

  6. Столбец, в котором производятся итоговые расчеты, называется Count-Код книги.

  7. Переименуем его в Количество книг автора. Для этого:

- Перейдите в режим конструктора;

- В столбце Код книги, перед названием столбца ввести новое название с : (в нашем случае, Количество книг автора:)

8. Просмотрите сформированный запрос.

9. Сохраните как Задание3_1.

Задание 2. Создайте запрос, выводящий суммарное количество книг по каждой предметной области.

1.В запросе должны быть поля Предметная область, Общее количество книг.

2. Осуществите группировку по полю Предметная область.

3. Общее количество книг вычислить, используя значения поля «Количество экземпляров» и функцию Sum.

4. Просмотрите сформированный запрос.

5. Сохраните как Задание3_2.

Задание 3. Создайте запрос, выводящий Максимальную стоимость литературы по каждой предметной области, Минимальную стоимость литературы по каждой предметной области, Среднюю стоимость литературы по каждой предметной области.

1.В запросе должны быть поля «Предметная область», «Максимальная стоимость», «Минимальная стоимость», «Средняя стоимость».

2. Осуществите группировку по полю Предметная область.

3. Максимальную стоимость, Минимальную стоимость, Среднюю стоимость вычислить, используя значения поля «Стоимость книги» и функции MAX, MIN, AVG соответственно.

4. Просмотрите сформированный запрос.

5. Сохраните как Задание3_3.

Задание 4. Создайте запрос, выводящий информацию о количестве книг у каждого издателя. Сохраните как Задание3_4.

Задание 5. Создайте запрос, выводящий информацию об общем количестве книг. Сохраните как Задание3_5.

  1. Добавьте поле «Количество экземпляров» из таблицы «Книги» используйте функцию Sum.

Создание вычисляемых полей.

Общий вид выражения выглядит следующим образом:

Имя поля: выражение

Задание 6. Создайте запрос, вычисляющий общую стоимость книг.

  1. Вызовите окно конструктора запросов. В окне Добавление таблицы добавьте таблицу Книги.

  2. Из таблицы Книги в бланк запроса переместите поля: «Название книги», «Стоимость книги», «Количество экземпляров».

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

Рисунок 1 – Окно «Построитель выражений»

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

  2. В нижней части окна открыть папку Таблицы. Из списка выбрать таблицу Книги.

  1. Из появившегося списка полей вставить поле «Количество экземпляров». Для этого выделить поле «Количество экземпляров» и нажать кнопку Вставить (или осуществить двойной щелчок по названию поля).

  2. Название поля вместе с названием таблицы появится в поле выражений в следующем виде [название таблицы]![имя поля]

  1. Введите арифметический знак *.

  2. Вставьте поле «Стоимость книги». Выражение будет выглядеть следующим образом.

Общая стоимость:[Книги]![Стоимость книги] *[Книги]![Количество экземпляров]

  1. Нажмите кнопку ОК.

  2. Сохраните запрос как Задание3_6. Просмотрите полученную информацию.

Задание 7. Создайте запрос, выводящий информацию о сроке эксплуатации книги, используя функции категории Дата/Время.

  1. Вызовите окно конструктора запросов. В окне Добавление таблицы добавьте таблицу Книги.

  2. Из таблицы Книги в бланк запроса переместите поля: «Название книги», «Предметная область».

  3. В следующем столбце вызовите Построитель выражений.

  4. Чтобы вставить функции нижней части окна открыть папку Функции/ Встроенные функции. Из списка выбрать нужные функции.

Функция Year выделяет год из даты

Функция Dаtе устанавливает системную дату.

  1. В Поле выражений должны создать следующее выражение:

Срок эксплуатации: Year(Date())-Year([Книги]![Дата_издания])

  1. Поле «Дата издания» вставить из таблицы Книги.

  2. Сортировать по полю Срок эксплуатации.

  3. Сохраните запрос как Задание3_7. Просмотрите полученную информацию.

Задание 8. Измените, предыдущий запрос так, чтобы он выводил информацию только о тех книгах, срок эксплуатации которых превысил 10 лет. Сохраните как задание3_8. Просмотрите результат. Для этого необходимо задать условие для поля срок эксплуатации.

Задание 9. Создайте запрос, выводящий информацию о сроке эксплуатации книги, используя функции категории Математические.

  1. Вызовите окно конструктора запросов. В окне Добавление таблицы добавьте таблицу Книги.

  2. Из таблицы Книги в бланк запроса переместите поля: «Название книги», «Предметная область».

  3. В следующем столбце вызовите Построитель выражений.

  4. Чтобы вставить функции нижней части окна открыть папку Функции/Встроенные функции. Из списка выбрать нужные функции.

Функция Int отбрасывает дробную часть.

Функция Dаtе устанавливает системную дату.

  1. В Поле выражений должны создать следующее выражение:

Срок эксплуатации: Int((Datе()-[Книги]![Дата издания])/365)

  1. Поле «Дата издания» вставить из таблицы Книги.

  2. Сортировать по полю Срок эксплуатации.

  3. Сохраните запрос как Задание3_9. Просмотрите полученную информацию.

Задание 10. Создайте запрос, выводящий информацию о сроке эксплуатации книги, в месяцах и кварталах, используя функцию DateDiff.

DateDiff() вычисляет промежуток между двумя датами.

Синтаксис

DateDiff(интервал, дата1, дата2 [, первый_день_недели] [, первая_неделя_года] )

интервал

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

дата1, дата2

Обязательные аргументы типа Variant (Date). Две даты, используемые при вычислении

первый_день_недели

Необязательный аргумент, указывающий первый день недели. Если этот аргумент не указан, первым днем считается воскресенье.

первая_неделя_года

Необязательный аргумент. Константа, указывающая первую неделю года. Если этот аргумент не указан, первой неделей считается неделя, на которую приходится 1 января

интервал имеет следующие значения:

Значение

Описание

yyyy

Год

q

Квартал

m

Месяц

y

День года

d

День

w

День недели

ww

Неделя

h

Час

n

Минута

s

Секунда

  1. Вызовите окно конструктора запросов. В окне Добавление таблицы добавьте таблицу Книги.

  2. Из таблицы Книги в бланк запроса переместите поля: «Название книги», «Дата издания».

  3. Для вычисления разности в кварталах выражение будет выглядеть следующим образом:

Срок эксплуатации в кварталах: DаtеDiff("q";[Книги]![Дата_издания];Dаtе())

  1. Аналогично создайте выражение для вычисление в месяцах.

  2. Сохраните запрос как Задание3_10. Просмотрите полученную информацию.

Задание 11. Создайте запрос, выводящий информацию о доле количества данной книги в общей массе книг.

  1. Вызовите окно конструктора запросов. В окне Добавление таблицы добавьте таблицу Книги и Запрос – Задание3_5.

  2. Из таблицы Книги в бланк запроса переместите поля: «Название книги», «Предметная область».

  3. В Поле выражений должны создать следующее выражение:

Доля: [Книги]![Количество экземпляров]/[Задание3_5]![Sum-Количество экземпляров]

  1. Задайте формат поля – Процентный. Щелкните ПКМ по полю/Свойства/Вкладка Общие/Формат поля/Процентный.

  2. Сохраните запрос как Задание3_11. Просмотрите полученную информацию.

Задание 12. Создайте запрос, выводящий Фамилию, имя, отчество автора в одном поле.

  1. Вызовите окно конструктора запросов. В окне Добавление таблицы добавьте таблицу Авторы.

  2. Из таблицы Авторы в бланк запроса переместите поля: «Фамилия», «Имя», «Отчество».

  3. Выражение для вычисляемого поля, объединяющего фамилию, имя, отчества, выглядит следующим образом:

ФИО: aмилия] & " " & мя] & " " &[Oтчествo]

В этом случае амперсанды объединяют значения в полях с пробелом — в выражении пробел заключен в двойные прямые кавычки.

  1. Сохраните запрос как Задание3_12. Просмотрите полученную информацию.

Задание 13. Создайте запрос, выводящий Фамилию, и инициалы имени и отчества автора в одном поле.

  1. Вызовите окно конструктора запросов. В окне Добавление таблицы добавьте таблицу Авторы.

  2. Из таблицы Авторы в бланк запроса переместите поля: «Фамилия», «Имя», «Отчество».

  3. Для Выделения первого символа используйте функцию Left, которая возвращает значение типа Variant (String), содержащее определенное количество знаков с левого края указанной строки.

  4. Выражение для вычисляемого поля, объединяющего фамилию и инициалы имени и отчества, выглядит следующим образом:

Ф.И.О: [Aвторы]![Фaмилия]& " " &Lеft([Авторы]![Имя];1) & ". " & Lеft([Авторы]![Отчество];1)& "."

  1. Сохраните запрос как Задание3_13. Просмотрите полученную информацию.

  1. Обратите внимание, что у иностранных авторов нет отчества, следовательно, после инициала имени идет две точки. Учтем это и внесем исправления, используя условный оператор IFF.

Функция IIF- возвращает одну из двух частей в зависимости от результата вычисления выражения (Выражение. Сочетание математических и логических операторов, констант, функций, имен полей, элементов управления и свойств, в результате обработки которого получается единственное значение. Выражение может выполнять вычисления, обрабатывать текст или проверять данные.).

Синтаксис

IIf(выражение; если_истина; если_ложь)

  1. В соседнем столбце составьте выражение, используя функцию IIF.

Выражение - [Авторы]![Отчество]<>""

если_истина – выражение будет аналогично предыдущему заданию.

если_ложь - выражение аналогичное предыдущему, но без объединения с отчеством.

  1. Сохраните запрос как Задание3_13. Просмотрите полученную информацию.

Создание перекрестного запроса.

Задание 14. Создайте перекрестный запрос суммарное количество видов печатной продукции по каждой предметной области.

  1. В окне Базы данных на вкладке Создание нажмите кнопку Мастер запросов.

  2. В диалоговом окне Новый запрос выберите в списке строку Перекрестный запрос и нажмите кнопку OK.

  3. Следуйте инструкциям в диалоговых окнах мастера.

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

  1. В качестве заголовков строк выберете поле «Предметная область». Нажмите кнопку Далее.

  2. В качестве заголовков столбцов выберете поле «Вид печатной продукции». Нажмите кнопку Далее.

  3. Для вычисления выбрать функцию Число. Итоговое значение для каждой строки выводить не надо.

  1. Сохраните запрос как Задание3_14. Просмотрите результат.