- •Лабораторна робота № 2 Тема. Ms access. Створення запитів на вибірку
- •Теоретичні відомості
- •Вартість замовлення: [Вартість одиниці]*[Кількість одиниць].
- •Вказівки до виконання
- •2.1 Створення запитів з однієї таблиці.
- •2.1.1 Запит, що відбирає дані з однієї таблиці по умові
- •2.2 Запити, які відбирають дані з декількох таблиць
- •Контрольні питання
2.1.1 Запит, що відбирає дані з однієї таблиці по умові
Р
озглянемо
приклад створення запиту, який відбирає
з таблиці Книги
ті екземпляри,
ціна яких більше 20 гривень і прізвище
автора починається або з букви “Б”,
або з букви “В”.
Перейдіть на вкладку Запити. Натисніть кнопку Створити. Виберіть в меню Конструктор. У вікні діалогу Додавання таблиці на вкладці Таблиці виберіть таблицю, з якої потрібно відібрати дані. Для нашого випадку це - Книги. Натисніть кнопку Додати. Закрийте вікно Додавання таблиці. Тепер потрібно вибрати ті поля, які необхідно включити в запит. Виберемо поля: Автор, Назва, Рік, Вартість. Для того, щоб помістити ці поля в бланк запиту, потрібно двічі натиснути кнопкою миші на імені поля в таблиці. Є і інші можливості: перетягнути назву поля з таблиці в бланк запиту або вибрати необхідні поля в списку назв полів в бланку запиту.
Д
алі
необхідно поставити умови, по яких
вестиметься відбір. Для цього в рядку
Умову відбору
для Вартості
ставимо
умова ”>20”.
Для поля Автор ставимо умову “Б*” Or “В*”, де * означає всі символи після першої Б. Функция Like буде додана автоматично. Для проглядання результату двічі натисніть на назві запиту або виберіть в пункті меню ВИД -режим таблиці.
2
.1.2
Підсумкові запити. Якщо
нам потрібні не окремі записи, а підсумкові
значення для групи даних, наприклад,
кількість книг по інформатиці, або
кількість книг кожного видавництва,
або кількість читачів по кафедрах, то
ми створюємо підсумкові запити.
Такі запити створюють групи записів, для яких співпадають значення вказаних полів (для таких полів вибираємо Групповая операция – Группировка), і обчислюють підсумкові значення для інших полів (для таких полів вибираємо Групповая операция – Sum, Avg, Count .)
Створимо такий підсумковий запит: порахуємо кількість читачів кожної кафедри. Вибираємо таблицю Читачі, включаємо поля Кафедра і Прізвище. Для створення підсумкового запиту на панелі інструментів вибираємо піктограму Групповая операция (із значком ). У бланку запиту з'являється рядок Групповая операция.
З
а
значенням першого поля Кафедра
створюємо
групу, а для другого вибираємо COUNT
(підрахунок кількості записів в групі).
Для того, щоб при прогляданні запиту
кожне поле мало зрозумілий підпис,
визначимо властивості поля. Для цього
вибираємо ВИД
- Свойства і
ставимо Подпись
– Кількість читачів.
2.1.3 Перехресний запит - особливий тип підсумкового запиту, який дозволяє вивести обчислені значення в перехресній таблиці, яка нагадує звідну таблицю в Excel.
Наприклад, підрахуємо сумарну вартість книжок для кожного року видання по видавництвах. Для цього створимо перехресний запит майстром запитів Запрос-создать-перекрестный запрос. У вікні діалогу вибираємо послідовно таблицю, назви рядків, назви стовпців, функцію обробки даних.
Д
ля
нашого випадку це таблиця Книги;
назви рядків - Рік;
назви стовпців - Видавництво;
функція - Sum(Вартість).
Встановимо підсумкове значення - Итоговое
значение по
рядкам.
2.2 Запити, які відбирають дані з декількох таблиць
2.2.1 Створимо запит, який відбирає і об'єднує записи з двох таблиць, - Книги і Читкниги, щоб показати, які книги були видані читачам. Створимо обчислюване поле з ім'ям Пеня, яка нараховується на кожну книгу, яка не повертається своєчасно. Розмір пені рівний 1% від вартості книги за кожен прострочений день. Створимо запит з ім'ям Список1. Для створення запиту Список1 перейдіть на вкладку Запити і виберіть кнопку Створити.
Додайте в запит таблиці Книги і Читкниги.
У вікні схеми даних повинен бути показаний зв'язок між таблицями по полю Інв№ - інвентарний номер книги. Перетягніть мишею в нижню половину вікна поля, які необхідно включити в запит: Автор, Назва, Вартість, Інв№, Дата видачі, Дата повернення, NB. Останнє поле буде потрібно для зв'язку запиту з таблицею Читачі.
У першій вільній колонці нижньої частини вікна створіть поле, яке обчислюється, з ім'ям Пеня. Для цього наберіть у верхньому рядку (де розташовується ім'я поля) такий текст:
Пеня: iif([Дата повернення] < Date(); DateDiff ("d"; [Дата повернення]; Date())*0,01*[Вартість]; 0)
!!! УВАГА
Д
ля
створення такого виразу можна
використовувати Построитель
выражений. Для
цього натисніть кнопку Построить
на панелі
інструментів. На екрані відкривається
вікно Построителя
выражений. У
цьому вікні створюється вираз послідовним
додаванням до нього полів таблиць або
запитів, функцій, констант і операторів
(малюнок 11).
Імена полів записуються в квадратних дужках.
Збережіть запит під ім'ям Список1. Продивіться запит, клацнувши на кнопці Открыть.
Р
озмір
пені, зрозуміло, залежить від поточної
дати, на яку він обчислювався.
2.2.2 Створимо підсумковий багатотабличний запит.
Обчислити для кожного читача кількість книг на руках, їх загальну вартість і пеню, яка нарахована для книг даного читача.
Для цього виберіть таблиці Книги, Читачі і запит Список1. У бланк запиту додайте поля Прізвище з таблиці Читачі, Інв№ з таблиці Книги, Вартість з таблиці Книги і Пеня із запиту Список1.
Д
ля
створення підсумкового запиту на панелі
інструментів вибираємо піктограму
Групові
операції - кнопка
.
У бланку
запиту з'являється рядок Групповая
операція (див. рисунок).
Для першого поля запиту Прізвище
з таблиці
Читачі
вибираємо
Группировка,
для Вартість
з таблиці
Книги –
SUM
(підрахунок суми), для поля Інв№
з таблиці
Книги - Count
і для Пеня
із запиту
Список1 - SUM.
Для того,
щоб при перегляді запиту кожне поле
мало зрозумілий підпис, визначимо
властивості полів. Для цього вибираємо
Вид-Свойства
і задаємо
Подпись
для кожного
поля –
Кількість книг,
Загальна
вартість книг і
Загальна
сума
пені.
Назвемо цей запит Загальна
пеня.
2.2.3 Створення запиту на пошук записів, які не мають зв'язаних в іншому списку. Такі запити називаються «Записи без підлеглих». Для створення таких запитів необхідно змінювати тип об'єднання таблиць на зовнішній. При такому типі об'єднання в запит обов'язково включаються всі записи з першої таблиці і до них додаються поля з другої таблиці, якщо в другій таблиці є запис, для якого значення зв'язаних полів співпадають. Якщо в другій таблиці такого запису немає, то до запису з першої таблиці додаються поля з порожніми значеннями. Зовнішнє об'єднання в конструкторі таблиць зображається лінією із стрілкою.
Н
априклад,
створимо список книг, які не видані на
руки читачам. У запит включимо дві
таблиці Книги
і Читкниги.
Включимо в запит поля Інв№,
Шифр, Автор, Назва з
таблиці Книги
і Інв№
з таблиці
Читкниги.
Знайдемо ті
записи, які присутні в таблиці Книги
і відсутні
в таблиці Читкниги.
Змінимо Параметри
об'єднання.
Необхідно створити Зовнішнє
об'єднання.
Для цього двічі натисніть на лінії
зв'язки між таблицями. У вікні діалогу
виберіть другий тип – “Объединение
всех записей с ‘Книги' і только тех
записей с 'Читкниги', в которых связанные
поля совпадают ”.
Тепер створено зовнішнє об'єднання, в
яке включені всі книги з таблиці Книги.
Для тих книг, які не мають записів з
таблиці Читкниги
встановлюється
значення ‘Null’, тому для поля Інв№
з таблиці
Читкниги
встановимо
такі параметри Условие
отбора – Is
Null і Выведение
на екран відсутній
(зняти "галочку").
