Запити, які відбирають дані з декількох таблиць

 

Створимо запит, який відбирає і об'єднує записи з двох таблиць, - Книги і Читкниги,щоб показати,які книги були видані читачам.Створимо обчислюванеполе з ім'ям Пеня, яка нараховується на кожну книгу, яка не повертається своєчасно. Розмір пені рівний 1% від вартості книги за кожен прострочений день. Створимо запит з ім'ям Список1. Для створення запиту Список1 перейдіть на вкладку Запити і виберіть кнопку Створити.

 

Додайте в запит таблиці Книги і Читкниги.

 

У вікні схеми даних повинен бути показаний зв'язок між таблицями по полю Інв№ - інвентарний номер книги. Перетягніть мишею в нижню половину вікна поля, які необхідно включити в запит: Автор, Назва, Вартість, Інв№, Дата видачі, Дата повернення, NB. Останнє поле буде потрібно для зв'язку запиту зтаблицею Читачі.

 

У першій вільній колонці нижньої частини вікна створіть поле, яке обчислюється, з ім'ям Пеня. Для цього наберіть у верхньому рядку (де розташовується ім'я поля) такий текст:

 

Пеня: iif([Дата повернення] < Date(); DateDiff ("d"; [Дата повернення]; Date())*0,01*[Вартість]; 0)

УВАГА

 

Створимо підсумковий багатотабличний запит.

 

Обчислити для кожного читача кількість книг на руках, їх загальну вартість

і пеню, яка нарахована для книг даного читача.

 

Для цього виберіть таблиці Книги, Читачі і запит Список1. У бланк запиту додайте поля Прізвище з таблиці Читачі, Інв№ з таблиці Книги, Вартість з таблиці Книги і Пеня із запиту Список1.

 

Для створення підсумкового запиту на панелі інструментів вибираємо

піктограму Групові операції - кнопка . У бланку запиту з'являється рядок

 

Групповая операція (див. рисунок).Для першого поля запиту Прізвище з таблиці

 

ЧитачівибираємоГруппировка,дляВартістьз таблиціКнигиSUM(підрахунок суми), для поля Інв№ з таблиці Книги - Count і для Пеня із запиту Список1 -SUM.Для того,щоб при перегляді запиту кожне поле мало зрозумілийпідпис, визначимо властивості полів. Для цього вибираємо Вид-Свойства і

 

задаємо Подпись для кожного поля – Кількість книг, Загальна вартість книг і Загальна сума пені.Назвемо цей запитЗагальна пеня.

 

Створення запиту на пошук записів Які не мають зв'язаних в іншому списку. Такі запити називаються «Записи

 

без підлеглих». Для створення таких запитів необхідно змінювати тип об'єднання таблиць на зовнішній. При такому типі об'єднання в запит обов'язково включаються всі записи з першої таблиці і до них додаються поля з другої таблиці, якщо в другій таблиці є запис, для якого значення зв'язаних полів співпадають. Якщо в другій таблиці такого запису немає, то до запису з першої таблиці додаються поля з порожніми значеннями. Зовнішнє об'єднання в конструкторі таблиць зображається лінією із стрілкою.


 

 

Кафедра математичного моделювання та інформатики


Основи прикладної інформатики та сучасні інформаційні технології в юриспруденції

 

Наприклад, створимо список книг, які не видані на руки читачам. У запит включимо дві таблиці Книги і Читкниги. Включимо в запит поля Інв№, Шифр, Автор, Назва з таблиціКнигиі Інв№ з таблиціЧиткниги.Знайдемо ті записи,які присутні в таблиці Книги і відсутні в таблиці Читкниги. Змінимо Параметри об'єднання. Необхідно створити Зовнішнє об'єднання. Для цього двічі натисніть налінії зв'язки між таблицями. У вікні діалогу виберіть другий тип – “Объединение всех записей с ‘Книги' і только тех записей с 'Читкниги', в которых связанные поля совпадают ”.Тепер створено зовнішнє об'єднання,в яке включені всі книгиз таблиці Книги. Для тих книг, які не мають записів з таблиці Читкниги встановлюється значення ‘Null’, тому для поля Інв№ з таблиці Читкниги

 

встановимо такі параметри Условие отбораIs Null і Выведение на екран

відсутній (зняти "галочку").