Язык структурных запросов SQL. ПРАКТ раб ИТ все4. Федеральное государственное бюджетное образовательное учреждение высшего образования санктпетербургский государственный лесотехнический университет имени с. М
Скачать 7.16 Mb.
|
Задание 2. Создание запросов на выборку с вычисляемым полемНазвание запроса: Список невыполненных заказов. Запрос должен содержать информацию о заказах, которые на указанный день являются невыполненными. Источник данных: таблица Услуги, Заказы, Клиенты. Макет бланка запроса: Результат выполнения запроса (например, для текущей даты 03.06.2010):
Примечание. Дата выполнения заказа складывается из даты поступления и количества дней, необходимых на ремонт. Т.е. мы должны добавить еще одно поле, которое образуется путем вычисления по формуле: Заказы!Дата+Услуги![Количество дней]. Для создания вычисляемого поля можно ввести выражение (ввод начинайте с текста «Дата выполнения:» после которого обязательно следует поставить пробел) в строку Поле в свободном столбце или воспользоваться Построителем выражений. Для обеспечения решения поставленной задачи, необходимо установить ограничение на созданное поле с помощью функции Now(), которая возвращает текущую дату. Функция записывается в строке Условие отбора непосредственно с клавиатуры или через Построитель выражений. При выполнении запроса выходной набор будет пустым – это происходит из-за отсутствия записей, т.к. прошел довольно большой временной период и все заказы оказались выполненными. Для проверки правильности запроса необходимо изменить значение текущей даты. Для этого можно: - ввести в базу данных несколько новых записей с датами, близкими к системным. - в строке Условие отбора столбца Дата выполнения вместо функции Now(), ввести значение конкретной даты, например #03.06.2010#. Название запроса: Заказы за текущий месяц Запрос должен содержать список заказов выполненных за указанный месяц. Источник данных: таблица Услуги, Заказы, Клиенты. Макет бланка запроса: Результат выполнения запроса (например, для текущей даты 03.06.2010):
Примечание. Номер месяца определяется с помощью функции Month, параметром которой является какая-либо дата. Т.е. в запросе необходимо создать еще одно поле Месяц, построив выражение Месяц: Month([Дата]). При этом необходимо задать условие отбора Month(Now()) – для текущей даты, или Month(#03.06.2010#) – для конкретно определенной даты. Т.к. в базе данных могут находиться записи прошлых лет, необходимо аналогичным образом организовать выбор по году. Название запроса: Увеличение стоимости услуг. Запрос должен содержать список услуг со стоимостью, увеличенной на проценты (параметр запроса) относительно исходной. Источник данных: таблица Услуги. Макет бланка запроса: Результат выполнения запроса (например, при значении параметра 30%):
Примечание. В запросе получается комбинация запроса с параметром и запроса с вычисляемым полем. Для решения задачи необходимо создать новое вычисляемое поле Новая стоимость, которое будет определяться выражением: Новая стоимость: [Услуги]![Стоимость]+[Услуги]![Стоимость]*[введите % увеличения]/100. Задание 3. Создание запросов на выборку с группировкойНазвание запроса: Суммарная стоимость. Запрос должен содержать суммарную стоимость услуг для клиентов. Источник данных: таблица Услуги, Заказы, Клиенты. Макет бланка запроса: Результат выполнения запроса:
Примечание. Создание запроса с группировкой обеспечивается строкой Групповая операция в Конструкторе запросов. Если строка отсутствует, то ее необходимо активировать с помощью одноименной кнопки на панели инструментов . Напротив поля, по которому происходит группировка, в строке Групповая операция выбирается из списка значение Группировка. Для поля, в котором происходит вычисление, выбирается соответствующая операция (в данном запросе – операция Sum). Необходимо отметить, что, несмотря на отсутствие в выходном наборе полей из таблицы Заказы, в качестве источника данных указание данной таблицы обязательно, т.к. она обеспечивает связь между таблицами Клиенты и Услуги. Название запроса: Стоимость по видам Запрос должен содержать суммарную стоимость оплаченных услуг сгруппированных по видам услуг. Источник данных: таблицы Заказы Услуги. Макет бланка запроса: Результат выполнения запроса:
Название запроса: Стоимость оплаченных услуг Запрос должен содержать суммарную стоимость оплаченных услуг сгруппированных по месяцам. Источник данных: таблицы Заказы Услуги. Макет бланка запроса: Результат выполнения запроса:
Примечание. В запросы с группировкой можно также включать дополнительные поля для отбора необходимых записей, при этом можно отключить вывод данного поля на экран. Запрос с группировкой может быть создан на основе вычисляемого поля: Месяц: Month([Дата]). Задание 4. Создание перекрестных запросовНазвание запроса: Общая стоимость. В результате выполнения запроса должна получиться сводная таблица содержащая общую стоимость заказов, выполненных предприятием. Источник данных: таблицы Заказы Услуги, Клиенты. Макет бланка запроса: Результат выполнения запроса:
Примечание. В данном запросе необходимо сгруппировать данные по двум измерениям: строкам и столбца. На пересечении каждого столбца и каждой строки рассчитывается итоговое значение, соответствующее заголовкам столбцов и строк. По умолчанию в режиме Конструктора проектируется запрос на выборку. Для перехода к перекрестному запросу необходимо выполнить команду меню Запрос -> Перекрестный. В результате в бланк запроса будут добавлены две новые строки: Групповая операция и Перекрестная таблица и убрана строка Вывод на экран. В строку Поле необходимо поместить те поля, содержимое которых будет использоваться в качестве заголовков строк и заголовков столбцов перекрестной таблицы, а также расчетных значений. Напротив каждого из таких полей в строке Перекрестная таблица из списка выбираются соответствующие значения: Заголовки строк, Заголовки столбцов, Значения. Для поля, по которому ведется расчет, в строке Групповая операция устанавливается значение, соответствующее условию запроса. Название запроса: Стоимость оплаченных заказов. Результат должен содержать общую стоимость оплаченных и выполненных заказов. Источник данных: таблицы Заказы Услуги, Клиенты. Макет бланка запроса: Результат выполнения запроса:
Примечание. Аналогично запросу с группировкой в перекрестном запросе можно использовать вычисляемые поля и условия на значение. Задание 5. Создание активных запросовНазвание запроса: Создание таблицы заказы Результат выполнения запроса это новая таблица Все заказы. Источник данных: запрос Список всех заказов. Макет бланка запроса: Примечание. В отличие от запросов на выборку, при создании активных запросов следует указать вид запроса (создание таблицы, добавление, удаление, обновление) с помощью команды меню Запрос. Результат выполнения запроса следует искать на вкладке Таблицы. После выполнения команды Запрос -> Создание таблицы появляется диалоговое окно, в котором необходимо ввести имя создаваемой таблицы. Затем, в строке Поле помещаются поля запроса, значения которых будут использоваться в создаваемой таблице. Если потребуются все поля, то достаточно разместить в строке Поле символ *, находящийся в списке полей запроса. Можно добавить поле для сортировки, но не отображать его. В результате выполнения запроса создается таблица Все заказы. Название запроса: Уд 27_05_06 В результате выполнения запроса будут удалены строки таблицы с датой оформления 27.05.2010. Источник данных: таблица Все заказы. Макет бланка запроса: Примечание. Для добавления в бланк строки Удаление необходимо выполнить команду Запрос -> Удаление. В бланк помещаются только те поля таблицы, по которым будут записываться условия на удаления записей. Также в строку Поле помещается имя таблицы, из которой это удаление будет происходить. Название запроса: Добавление от 27.05.2010 В результате выполнения запроса в таблицу Все заказы будут добавлены заказы с датой оформления 27.05.2010. Источник данных: таблицы Заказы Услуги, Клиенты. Макет бланка запроса: Примечание. После выполнения команды Запрос -> Добавление откроется диалоговое окно, в котором необходимо указать имя таблицы, в которую будут добавляться записи. В строку Поле помещаются имена тех полей, содержимое которых будет добавлено в таблицу Все заказы. В строке Добавление указываются имена полей таблицы Все заказы, соответствующие именам полей в строке Поле. Название запроса: Увеличение стоимости В результате выполнения запроса будет увеличена стоимость услуг на 20%. Источник данных: таблица Услуги. Макет бланка запроса: Результат выполнения запроса:
Примечание. В запросе на обновление записей добавляется новая строка Обновление, в которую записывается выражение, согласно которому будет производиться обновление. В строку Поле помещаются только те поля таблицы, обновление которых будет производиться. 3. Сохранить базу данных Практическая работа № 15Создание отчетов, кнопочных формЦель работы Изучение приемов создания отчетов, разработка кнопочных форм. Перед выполнением Практической работы необходимо изучить следующие разделы: Способы создания отчетов; Создание автоотчетов на основании запросов, их виды; Внесение изменений в готовый отчет с помощью Конструктора; Создание вычисляемых полей; Виды кнопочных форм; Создание Главной кнопочной формы; Добавление объектов на кнопочную форму; Переход между кнопочными формами; Форматирование кнопочных форм в режиме Конструктора. Задание 1. Создание отчетов1. Открыть из папки Работы по Accessбазу данных Центр-Сервис. Перейти во вкладку Отчеты. 2. Создать отчет Стоимость услуг для клиентов. Примечание. Использовать кнопку Создать. Выбрать в качестве источника реализованный запрос, на основе которого строится отчет. Использовать тип Автоотчет: ленточный. 3. Дополнить отчет в режиме Конструктора итоговыми данными. Примечание. Для реализации поставленной задачи следует активировать отчет Стоимость услуг для клиентов и войти в режим Конструктора. Скорректировать элементы управления вида Надпись. Далее необходимо расширить раздел Примечания отчета. Все операции выполнять в данном разделе. Следует добавить элемент управления Поле, расположив его под столбцом Стоимость. Изменить надлежащим образом поле Подпись, а в области Данные через контекстное меню Свойства -> Данные ввести формулу, используя Построитель выражений. Сохранить макет отчета и закрыть окно. Для проверки правильности реализации отчета необходимо нажать кнопку Просмотр. ВОПРОСЫ ДЛЯ ПОДГОТОВКИ К ЗАЧЕТУ Основные Объекты ACCESS? Основные пункты Меню. Понятия Мастер и Конструктор. Объект ТАБЛИЦЫ. Основные понятия. Три способа создания таблиц. Тип данных. Свойства полей таблиц. Что такое Подпись? Что такое Маска ввода? Как задаются Значения по умолчанию? Что такое Индексное поле? Объект ФОРМЫ. Типы форм. Создание форм. Вставка расчетных полей в форму. Объект ЗАПРОСЫ. Типы запросов, создание запросов. Запросы на выборку. Создание запроса в режиме Конструктора Задание условий отбора. Запрос с параметрами. Использование построителя выражений. Использование стандартных функций. Использование групповых операций в запросе. Запрос на обновление. Запрос на удаление. Запрос на добавление. Запрос на создание таблиц. Перекрестный запрос. Объект ООТЧЕТЫ. Типы отчетов. Создание отчетов при помощи Мастера. Создание отчетов Конструктором. Вставка в отчет расчетных формул. 1 |