Якщо потрібно вибрати певні дані з одного або кількох джерел, можна використати вибірковий запит. Такий запит дає змогу отримати лише потрібні дані та допомагає поєднати інформацію з кількох джерел. У якості джерел даних для вибіркового запиту можна використовувати таблиці та інші вибіркові запити. Ця стаття містить огляд вибіркових запитів і кроки для їх створення за допомогою як майстра запитів, так і подання конструктора.
Додаткові відомості про запити та про використання зразка бази даних Northwind див. в статті Основні відомості про запити.
У цій статті
Огляд
Одночасно вся інформація з певної таблиці даних використовується дуже рідко. Наприклад, з усієї таблиці "Контакти" зазвичай потрібен лише певний запис або просто номер телефону. Іноді необхідно поєднати дані з кількох таблиць, наприклад пов’язати відомості про клієнта з інформацію про замовлення. Вибрати потрібні дані можна за допомогою вибіркового запита.
Вибірковий запит – це об’єкт бази даних, який показує відомості у вікні табличного подання даних. Запит не зберігає, а лише відображає дані, які містяться в таблицях. У запиті можна відобразити дані з однієї або кількох таблиць, з інших запитів чи з поєднання цих джерел.
Переваги запиту
Запит дає змогу:
-
Переглядайте дані лише з полів, які потрібно переглянути. Коли ви відкриваєте таблицю, відображаються всі поля. Запит – це зручний спосіб зберегти вибрані поля.
Примітка.: Запит лише вказує на дані, але не зберігає їх. Коли ви зберігаєте запит, копія даних не створюється.
-
Об’єднувати дані з кількох джерел. Зазвичай таблиця відображає лише ті дані, які в ній збережено. Запит дає змогу вказати та вибирати поля з різних джерел, а також спосіб об’єднання даних.
-
Використовувати вирази як поля. Наприклад, можна використати функцію Date як поле або застосувати функцію Format до певного поля, щоб відформатувати дані з нього в результатах запиту.
-
Перегляд записів, які відповідають указаним умовам. Коли ви відкриваєте таблицю, відображаються всі записи. Запит – це зручний спосіб зберегти вибір записів.
Основні кроки для створення вибіркового запиту
Вибірковий запит можна створити за допомогою майстра запитів або в режимі конструктора. Деякі елементи конструктора недоступні під час використання майстра, але їх можна додати пізніше в режимі конструктора. Хоча ці два методи дещо відрізняються один від одного, основні кроки по суті однакові:
-
Вибір таблиць або запитів, які потрібно використовувати як джерела даних.
-
Визначення полів, які потрібно додати з джерел даних.
-
Визначення критеріїв для обмеження записів, які повертає запит (необов’язково).
Після створення вибіркового запиту виконайте його та перегляньте результати. Щоб виконати вибірковий запит, потрібно відкрити його у вікні табличного подання даних. Якщо зберегти запит, його можна використовувати повторно, наприклад, як джерело даних для форми, звіту або іншого запиту.
Створення вибіркового запиту за допомогою майстра запитів
Майстер запитів дає змогу створити вибірковий запит автоматично. Під час використання майстра ви маєте менше можливостей вибирати деталі структури запиту, але запит створюється швидше, ніж без майстра. Крім того, майстер може виявити певні прості помилки в структурі запиту та запропонує визначити іншу дію.
Підготовка
Якщо ви використовуєте поля з непов’язаних між собою джерел даних, майстер запитає, чи потрібно створити зв’язки. Вікно "Зв’язки" відкриється автоматично, але якщо ви зміните зв’язки, потрібно буде перезапустити майстер. Тому перш ніж запускати майстер, створіть усі потрібні для запиту зв’язки.
Докладні відомості про це див. в статті Посібник зі зв’язків між таблицями.
Використання майстра запитів
-
На вкладці Створення в групі Запити натисніть кнопку Майстер запитів.
-
У діалоговому вікні Новий запит виберіть Майстер простих запитів і натисніть кнопку OK.
-
Тепер потрібно додати поля. Можна додати до 255 полів із 32 таблиць або запитів.
Для кожного поля виконайте ці два кроки:
-
У розділі Таблиці та запити виберіть таблицю або запит із потрібним полем.
-
Щоб додати поле до списку Вибрані поля, двічі клацніть його в списку Доступні поля. Якщо потрібно додати до запиту всі поля, натисніть кнопку з подвійною стрілкою вправо (>>).
-
Додавши всі потрібні поля, натисніть кнопку Далі.
-
-
Якщо ви не додавали числових полів (полів, які містять числові дані), одразу перейдіть до кроку 9. Якщо числові поля додано, майстер запитає, у якому вигляді запит має повертати дані: докладному або зведеному.
Виконайте одну з таких дій:
-
Якщо потрібні окремі записи, виберіть Докладно та натисніть кнопку Далі. Одразу перейдіть до кроку 9.
-
Якщо потрібні зведені числові дані, зокрема середні значення, виберіть Зведення та натисніть кнопку Параметри зведення.
-
-
У діалоговому вікні Параметри зведення виберіть поля, які потрібно підсумувати, та спосіб зведення даних. Буде відображено лише числові поля.
Для кожного числового поля виберіть одну з наведених нижче функцій.
-
Сум: запит обчислює суму всіх значень поля.
-
Срдн: запит обчислює середнє значення поля.
-
Міні: запит повертає найменше значення поля.
-
Макс: запит повертає найбільше значення поля.
-
-
Якщо потрібно, щоб результати запиту включали кількість записів у джерелі даних, установіть прапорець Кількість записів в <ім’я джерела даних>.
-
Натисніть кнопку OK, щоб закрити діалогове вікно Параметри зведення.
-
Якщо ви не додавали до запиту поле дати й часу, одразу перейдіть до кроку 9. Якщо ж запит містить поле дати й часу, майстер запитає, як потрібно згрупувати значення дат. Припустімо, ви додали до запиту числове поле "Ціна" та поле дати й часу "Час_транзакції", а потім указали в діалоговому вікні Параметри зведення, що потрібно відобразити середнє значення числового поля "Ціна". Завдяки тому, що додано поле дати й часу, ви можете обчислити зведені значення для окремих проміжків часу: дня, місяця, кварталу або року.
Виберіть проміжок часу, який потрібно використовувати для групування значень дати й часу, та натисніть кнопку Далі.
Примітка.: У поданні конструктора можна скористатися виразом для групування дат за будь-який проміжок часу, але майстер пропонує лише ці варіанти.
-
На останній сторінці майстра введіть назву запиту та вкажіть, що потрібно зробити: відкрити запит чи змінити його. Потім натисніть кнопку Готово.
Якщо вибрати відкриття запиту, вибрані дані буде відображено у вікні табличного подання даних. Якщо ви виберете змінення запиту, він відкриється в поданні конструктора.
Створення запиту в поданні конструктора
Запит можна створити вручну в поданні конструктора. Використовуючи подання конструктора, ви маєте більше можливостей вибирати деталі структури запиту, але при цьому легше припуститися помилок у структурі, а процес займає більше часу, ніж у майстрі.
Створення запиту
Крок 1. Додавання джерел даних
Під час використання режиму конструктора для додавання джерел даних джерела даних і поля додаються окремими кроками. Однак за потреби ви завжди можете додати інші джерела даних.
-
На вкладці Створити в групі Запити натисніть кнопку Конструктор запитів.
-
Двічі клацніть кожне джерело даних, яке потрібно використовувати, або виберіть кожне джерело даних, а потім натисніть кнопку Додати.
Автоматичне об’єднання
Коли ви додаєте джерела даних, між якими вже визначено зв’язки, ці зв’язки автоматично додаються до запиту як об'єднання. Об’єднання визначають спосіб поєднання даних із пов’язаних джерел. Крім того, Access автоматично створює об’єднання між двома таблицями, якщо вони містять поля із сумісними типами даних, а одне поле є первинним ключем.
Можливо, знадобиться настроїти автоматично створені об’єднання. Access визначає тип об’єднання, що створюється, на основі зв’язку, який лежить в його основі. Якщо Access створює об’єднання без визначеного зв’язку, буде створено внутрішнє об’єднання.
Якщо після додавання джерел даних Access автоматично створить правильні об’єднання, одразу перейдіть до кроку 3: додавання полів виводу.
Багаторазове використання джерела даних
У деяких випадках потрібно об'єднати дві копії однієї таблиці або запиту, які називаються рефлексивне з'єднання, які об'єднують записи з однієї таблиці, коли в об'єднуваних полях є однакові значення. Наприклад, припустімо, що у вас є таблиця "Працівники", у якій поле "Звітувати" для кожного запису працівника відображає ідентифікатор його керівника замість імені. Щоб натомість відобразити ім'я керівника в записі кожного працівника, можна скористатися самооб'єднанням.
Якщо додати джерело даних вдруге, Access долучить "_1" до імені другого екземпляра. Наприклад, якщо ви двічі додали таблицю "Працівники", другий екземпляр матиме ім’я "Працівники_1".
Крок 2. Об’єднання пов’язаних джерел даних
Якщо джерела даних, додані до запиту, уже мають зв'язки, Access автоматично створює внутрішнє об'єднання для кожного зв'язку. Якщо цілісність зв’язків є обов’язковою, Access також відображає "1" над лінією об’єднання, щоб показати, яка з таблиць знаходиться на стороні "один" у зв’язок "один-до-багатьох", а символ нескінченності (∞), щоб показати, яка таблиця знаходиться на стороні "багатьох".
Якщо ви додаєте запити у свій запит і не створили зв’язки між цими запитами, Access автоматично не створює об’єднання між цими запитами або між непов’язаними запитами й таблицями. Якщо після додавання джерел даних об’єднання не створено автоматично, зазвичай слід додати їх самостійно. Джерела даних, які не об’єднано з іншими джерелами, можуть спричинити проблеми з результатами запиту.
Щоб запит включав більшу кількість записів, можливо, знадобиться змінити об’єднання з внутрішнього на зовнішнє.
Додавання об’єднання
-
Щоб додати об’єднання, перетягніть поле з одного джерела даних до відповідного поля в іншому джерелі.
Access відобразить лінію між двома полями, щоб показати, що об’єднання створено.
Змінення об’єднання
-
Двічі клацніть об’єднання, яке потрібно змінити.
Відкриється діалогове вікно Параметри об’єднання.
-
Ознайомтеся з трьома параметрами в діалоговому вікні Параметри об’єднання.
-
Виберіть параметр, який ви хочете використовувати, і натисніть кнопку OK.
Коли об’єднання будуть готові, слід додати поля виводу, тобто поля, які містять результати запиту.
Крок 3. Додавання полів виводу
Ви можете легко додати поле з будь-якого джерела даних, доданих на кроці 1.
-
Щоб додати поле, у вікні макета запиту перетягніть відповідне поле з джерела даних у верхній області до рядка бланка Поле в нижній області.
Коли ви додаєте поле таким чином, Access автоматично вносить назву джерела даних у рядок бланка Таблиця.
Порада.: Якщо потрібно швидко додати всі поля до рядка "Поле" в бланку запиту, двічі клацніть ім’я таблиці або запиту у верхній області, щоб виділити всі поля в цьому джерелі, та перетягніть їх до бланка усі одночасно.
Використання виразу як поля виводу
Якщо потрібно виконати обчислення або використати функцію для отримання результатів запиту, можна використати вираз як поле виводу. Вираз може використовувати дані з будь-якого джерела даних запиту, а також функції, такі як Format або InStr, а також може містити константи та арифметичні оператори.
-
У пустому стовпці бланка запиту клацніть правою кнопкою миші в рядку Поле та в контекстному меню виберіть Масштаб.
-
У вікні Масштаб введіть або вставте потрібний вираз. Перед виразом укажіть ім’я, яке буде застосовано до його результату, а потім двокрапку. Наприклад, якщо потрібно назвати результати виразу "Дата_останнього_оновлення", слід вказати перед виразом Дата_останнього_оновлення:.
Примітка.: За допомогою виразів можна виконувати різноманітні дії. Ґрунтовне пояснення виразів виходить за рамки цієї статті. Докладні відомості про створення виразу див. в статті Створення виразу.
Крок 4. Установлення критеріїв
Цей крок не обов’язковий.
Ви можете обмежити записи, які повертає запит, за допомогою критеріїв. При цьому перевіряється, чи відповідають значення полів указаним критеріям.
Установлення критеріїв для поля виводу
-
У рядку бланка Критерії для поля, що містить значення, які потрібно обмежити, введіть вираз, якому мають відповідати значення, що включаються до результатів. Наприклад, якщо потрібно, щоб у результатах запиту відображалися лише записи, які в полі "Місто" мають значення "Вінниця", введіть у рядку Критерії під цим полем значення Вінниця.
Приклади використання критеріїв для різних типів даних див. в статті Приклади критеріїв запиту.
-
У рядку Або, розташованому під рядком Критерії, за потреби укажіть альтернативні критерії.
За наявності альтернативних критеріїв значення поля буде включено до результатів запиту, якщо воно відповідає будь-якому з указаних критеріїв.
Критерії для кількох полів
Критерії можна використовувати з кількома полями. При цьому запис буде додано до результатів, якщо він відповідає всім критеріям у певному рядку Критерії чи Або.
Установлення критеріїв для поля, яке не потрібно включати до результатів
Ви можете додати до бланка запиту поле, дані якого не буде включено до результатів запиту. Це можна зробити, якщо значення цього поля використовуються для обмеження результатів запиту, але самі ці значення відображати не потрібно.
-
Додайте поле до бланка.
-
Зніміть для поля прапорець у рядку Відображення.
-
Установіть критерії так само, як ви би це зробили для поля виводу.
Крок 5. Підсумування даних
Цей крок не обов’язковий.
Можливо, знадобиться підсумовувати дані, особливо якщо вони числові. Наприклад, можна відобразити середню ціну або загальний обсяг продажів.
Щоб підсумувати дані в запиті, потрібно скористатися рядком Підсумок. За замовчуванням рядок Підсумок не відображається в поданні конструктора.
-
Відкривши запит у режимі конструктора , на вкладці Конструктор запитів у групі Відобразити або приховати натисніть кнопку Підсумки.
На бланку запиту з’явиться рядок Підсумок.
-
Для кожного поля, значення якого потрібно підсумувати, виберіть функцію зі списку в рядку Підсумок. Доступні функції залежать від типу даних у полі.
Докладні відомості про функції рядка підсумків у запитах див. в статті Відображення підсумків стовпців у табличному поданні за допомогою рядка підсумків.
Крок 6. Перегляд результатів
Щоб переглянути результати запиту, на вкладці Конструктор запиту натисніть кнопку Виконати. Access відобразить результати запиту у вікні табличного подання даних.
Щоб змінити запит у майбутньому, перейдіть у подання конструктора, вибравши Основне > Подання > Конструктор.
Змінюйте поля, вирази або критерії й виконуйте запит повторно, доки він не поверне потрібні дані.