Запити, які відбирають дані з декількох таблиць
Створимо запит, який відбирає і об'єднує записи з двох таблиць, - Книги і Читкниги,щоб показати,які книги були видані читачам.Створимо обчислюванеполе з ім'ям Пеня, яка нараховується на кожну книгу, яка не повертається своєчасно. Розмір пені рівний 1% від вартості книги за кожен прострочений день. Створимо запит з ім'ям Список1. Для створення запиту Список1 перейдіть на вкладку Запити і виберіть кнопку Створити.
Додайте в запит таблиці Книги і Читкниги.
У вікні схеми даних повинен бути показаний зв'язок між таблицями по полю Інв№ - інвентарний номер книги. Перетягніть мишею в нижню половину вікна поля, які необхідно включити в запит: Автор, Назва, Вартість, Інв№, Дата видачі, Дата повернення, NB. Останнє поле буде потрібно для зв'язку запиту зтаблицею Читачі.
У першій вільній колонці нижньої частини вікна створіть поле, яке обчислюється, з ім'ям Пеня. Для цього наберіть у верхньому рядку (де розташовується ім'я поля) такий текст:
Пеня: iif([Дата повернення] < Date(); DateDiff ("d"; [Дата повернення]; Date())*0,01*[Вартість]; 0)
УВАГА
Створимо підсумковий багатотабличний запит.
Обчислити для кожного читача кількість книг на руках, їх загальну вартість
і пеню, яка нарахована для книг даного читача.
Для цього виберіть таблиці Книги, Читачі і запит Список1. У бланк запиту додайте поля Прізвище з таблиці Читачі, Інв№ з таблиці Книги, Вартість з таблиці Книги і Пеня із запиту Список1.
Для створення підсумкового запиту на панелі інструментів вибираємо
піктограму Групові операції - кнопка . У бланку запиту з'являється рядок
Групповая операція (див. рисунок).Для першого поля запиту Прізвище з таблиці
ЧитачівибираємоГруппировка,дляВартістьз таблиціКниги–SUM(підрахунок суми), для поля Інв№ з таблиці Книги - Count і для Пеня із запиту Список1 -SUM.Для того,щоб при перегляді запиту кожне поле мало зрозумілийпідпис, визначимо властивості полів. Для цього вибираємо Вид-Свойства і
задаємо Подпись для кожного поля – Кількість книг, Загальна вартість книг і Загальна сума пені.Назвемо цей запитЗагальна пеня.
Створення запиту на пошук записів Які не мають зв'язаних в іншому списку. Такі запити називаються «Записи
без підлеглих». Для створення таких запитів необхідно змінювати тип об'єднання таблиць на зовнішній. При такому типі об'єднання в запит обов'язково включаються всі записи з першої таблиці і до них додаються поля з другої таблиці, якщо в другій таблиці є запис, для якого значення зв'язаних полів співпадають. Якщо в другій таблиці такого запису немає, то до запису з першої таблиці додаються поля з порожніми значеннями. Зовнішнє об'єднання в конструкторі таблиць зображається лінією із стрілкою.
Кафедра математичного моделювання та інформатики
Основи прикладної інформатики та сучасні інформаційні технології в юриспруденції
Наприклад, створимо список книг, які не видані на руки читачам. У запит включимо дві таблиці Книги і Читкниги. Включимо в запит поля Інв№, Шифр, Автор, Назва з таблиціКнигиі Інв№ з таблиціЧиткниги.Знайдемо ті записи,які присутні в таблиці Книги і відсутні в таблиці Читкниги. Змінимо Параметри об'єднання. Необхідно створити Зовнішнє об'єднання. Для цього двічі натисніть налінії зв'язки між таблицями. У вікні діалогу виберіть другий тип – “Объединение всех записей с ‘Книги' і только тех записей с 'Читкниги', в которых связанные поля совпадают ”.Тепер створено зовнішнє об'єднання,в яке включені всі книгиз таблиці Книги. Для тих книг, які не мають записів з таблиці Читкниги встановлюється значення ‘Null’, тому для поля Інв№ з таблиці Читкниги
встановимо такі параметри Условие отбора – Is Null і Выведение на екран
відсутній (зняти "галочку").