Створення запиту на основі кількох таблиць

Іноді створення й використання запитів в Access передбачає кілька етапів: вибір полів із таблиці, застосування певних умов (за потреби) і перегляд результатів. Та що робити, коли потрібні відомості зберігаються в різних таблицях? На щастя, ви можете створити запит, який об’єднує дані з кількох джерел. У цій статті описано сценарії отримання даних із різних джерел і надано відповідні вказівки.

У цій статті

Уточнення результатів запиту за допомогою даних із пов’язаної таблиці

Об’єднання даних двох таблиць завдяки їхнім зв’язкам із третьою таблицею

Перегляд усіх записів із двох схожих таблиць

Уточнення результатів запиту за допомогою даних із пов’язаної таблиці

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

Створення запиту на основі головної та пов’язаної таблиць за допомогою майстра запитів

  1. Переконайтеся, що між таблицями визначено зв’язок у вікні "Зв’язки".

    Ось як це зробити:

    1. На вкладці Знаряддя бази даних у групі Відобразити або приховати натисніть кнопку Зв’язки.

    2. На вкладці Конструктор у групі Зв’язок натисніть кнопку Усі зв’язки.

    3. Виберіть таблиці, між якими потрібно визначити зв’язок.

      • Якщо таблиці відображаються у вікні "Зв’язки", переконайтеся, що між ними вже визначено зв’язок.

        Зв’язок представлено лініями, які з’єднують спільні поля двох таблиць. Щоб з’ясувати, між якими полями встановлено зв’язок, двічі клацніть лінію.

      • Якщо таблиці не відображаються у вікні "Зв’язки", їх потрібно додати.

        На вкладці Конструктор у групі Відобразити або приховати натисніть кнопку Імена таблиць.

        Двічі клацніть кожну з таблиць, які потрібно відобразити, а потім натисніть кнопку Закрити.

    4. Якщо ви не знайшли зв’язку між двома таблицями, створіть його, перетягнувши поле однієї таблиці на поле іншої. Типи даних полів, на основі яких ви створюєте зв’язки, мають збігатися.

      Примітка.: Створити зв’язок між полями з типом даних "Лічильник" і "Число" можна, тільки якщо властивість "Розмір поля" першого з них має значення "Довге ціле число". У цьому можна переконатися під час створення зв’язку "один-до-багатьох".

      Відкриється діалогове вікно Редагування зв’язків.

    5. Натисніть кнопку Створити, щоб створити зв’язок.

      Докладні відомості про можливості зі створення зв’язків див. в статті Створення, редагування та видалення зв’язків.

    6. Закрийте вікно Зв’язки.

  2. На вкладці Створення в групі Запити натисніть кнопку Майстер запитів. Якщо ви використовуєте Access 2007, на вкладці Створити в групі Інші натисніть кнопку Майстер запитів.

  3. У діалоговому вікні Новий запит виберіть Майстер простих запитів і натисніть кнопку OK.

  4. У полі зі списком Таблиці та запити виберіть таблицю з основними відомостями, які потрібно додати до запиту.

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

  6. У полі зі списком Таблиці та запити виберіть таблицю з пов’язаними даними, за допомогою яких можна уточнити результати запиту.

  7. Додайте потрібні поля до списку Вибрані поля, а потім натисніть кнопку Далі.

  8. У розділі Виконати запит на отримання відомостей або зведення? виберіть Докладно або Зведення.

    Якщо в запиті не потрібно використовувати агрегатні функції (Сума, Середнє, Мінімум, Максимум, Кількість, StDev або Var), виберіть детальний запит. Інакше виберіть "Зведення". Потім натисніть кнопку Далі.

  9. Натисніть кнопку Готово, щоб переглянути результати.

Приклад на основі бази даних компанії "Товари та послуги"

У прикладі нижче за допомогою майстра запитів ви створите запит, який повертає список замовлень, вартість доставки кожного з них та ім’я відповідального працівника.

Примітка.: Це передбачає змінення зразка бази даних компанії "Товари та послуги". Радимо створити її резервну копію, перш ніж продовжити.

Створення запиту за допомогою майстра запитів

  1. Відкрийте зразок бази даних компанії "Товари та послуги". Закрийте форму входу.

  2. На вкладці Створення в групі Запити натисніть кнопку Майстер запитів. Якщо ви використовуєте Access 2007, на вкладці Створити в групі Інші натисніть кнопку Майстер запитів.

  3. У діалоговому вікні Новий запит виберіть Майстер простих запитів і натисніть кнопку OK.

  4. У полі зі списком Таблиці та запити виберіть Таблиця: Замовлення.

  5. У списку Доступні поля двічі клацніть поле Ідентифікатор замовлення, щоб перемістити його до списку Вибрані поля. Двічі клацніть поле Оплата, щоб перемістити його до списку Вибрані поля.

  6. У полі зі списком Таблиці та запити виберіть Таблиця: Працівники.

  7. У списку Доступні поля двічі клацніть поле Ім’я, щоб перемістити його до списку Вибрані поля. Двічі клацніть поле Прізвище, щоб перемістити його до списку Вибрані поля. Натисніть кнопку Далі.

  8. Оскільки ви створюєте список усіх замовлень, потрібно використовувати детальний запит. Щоб підсумувати вартість доставки замовлень за працівниками або застосувати іншу агрегатну функцію, використовуйте запит на отримання зведення. Клацніть Докладно (відображає кожне поле кожного запису), а потім натисніть кнопку Далі.

  9. Натисніть кнопку Готово, щоб переглянути результати.

Запит повертає список замовлень, вартість кожного з них, а також ім’я та прізвище співробітника, який виконав певне замовлення.

На початок сторінки

Об’єднання даних двох таблиць завдяки їхнім зв’язкам із третьою таблицею

Буває, що дані двох таблиць пов’язані між собою через третю таблицю, особливо якщо між даними в перших двох таблицях установлено зв’язок "багато-до-багатьох". Створюючи базу даних, ефективних результатів можна досягти, розділивши один зв’язок "багато-до-багатьох" між двома таблицями на два зв’язки "один-до-одного" між трьома таблицями. Це можна зробити, створивши третю таблицю (сполучну таблицю) з первинним і зовнішнім ключами кожної з таблиць. Потім необхідно створити зв’язок "один-до-одного" між кожним зовнішнім ключем сполучної таблиці з відповідним первинним ключем однієї з інших таблиць. У таких випадках потрібно додати до запиту всі три таблиці, навіть якщо дані мають надходити лише з двох.

Створення вибіркового запиту за допомогою таблиць зі зв’язком "багато-до-багатьох"

  1. На вкладці Створити в групі Запити натисніть кнопку Конструктор запитів. Якщо ви використовуєте Access 2007, на вкладці Створити в групі Інші натисніть кнопку Конструктор запитів.

    Відкриється діалогове вікно Відображення таблиці.

  2. У діалоговому вікні Відображення таблиці двічі клацніть дві таблиці з даними, які потрібно додати до запиту, а також сполучну таблицю, яка зв’язує їх, а потім натисніть кнопку Закрити.

    Усі три таблиці, об’єднані за відповідними полями, з’являться в робочій області конструктора запитів.

  3. Двічі клацніть поля, які потрібно використовувати в результатах запиту. Кожне поле відобразиться в бланку запиту.

  4. У бланку запиту введіть умови для полів у рядок Критерії. Щоб поле, на основі якого задаються умови, не відображалося в результатах запиту, зніміть прапорець у відповідному рядку Відображення.

  5. Щоб відсортувати результати на основі значення в полі, у бланку запиту у відповідному рядку Сортування виберіть За зростанням або За спаданням (залежно від того, як потрібно відсортувати записи).

  6. На вкладці Конструктор у групі Результати натисніть кнопку Запуск.

    Access відобразить результати запиту у вікні табличного подання даних.

Приклад на основі бази даних компанії "Товари та послуги"

Примітка.: Це передбачає змінення зразка бази даних компанії "Товари та послуги". Радимо створити її резервну копію, перш ніж продовжити.

Уявімо, що у вас з’явилася нова можливість: постачальник із Києва знайшов ваш сайт і хоче співпрацювати. Проте його діяльність обмежено тільки Києвом та Ірпінем. Він постачає всі категорії товарів, які вас цікавлять. Постачальник розгорнув досить масштабне виробництво, тому йому дуже важливо, щоб ви гарантували ринок збуту, який приносив би не менше 250 000 гривень на рік (приблизно 9300 дол. США). Чи можете ви виконати ці вимоги?

Дані, які допоможуть відповісти на це питання, можна отримати з таблиць "Клієнти" та "Відомості про замовлення". Ці таблиці зв’язані між собою за допомогою таблиці "Замовлення". Зв’язки між таблицями вже визначено. У таблиці "Замовлення" кожне замовлення може містити дані про одного клієнта, пов’язаного з таблицею "Клієнти" через поле "Код користувача". Кожен запис у таблиці "Відомості про замовлення" пов’язаний лише з одним замовленням у таблиці "Замовлення" через поле "Ідентифікатор замовлення". Таким чином, можна отримати вичерпні відомості про всі замовлення певного клієнта.

У цьому прикладі ви створите перехресний запит, який повертає дані про загальний обсяг збуту за рік у Києві й Ірпіні.

Створення запиту в режимі конструктора

  1. Відкрийте базу даних компанії "Товари та послуги". Закрийте форму входу.

  2. На вкладці Створити в групі Запити натисніть кнопку Конструктор запитів. Якщо ви використовуєте Access 2007, на вкладці Створити в групі Інші натисніть кнопку Конструктор запитів.

    Відкриється діалогове вікно Відображення таблиці.

  3. У діалоговому вікні Відображення таблиці двічі клацніть таблиці Клієнти, Замовлення й Відомості про замовлення, а потім натисніть кнопку Закрити.

    Усі три таблиці з’являться в робочій області конструктора запитів.

  4. У таблиці "Клієнти" двічі клацніть поле "Місто", щоб додати його до бланка запиту.

  5. На бланку запиту в рядок Критерії стовпця Місто введіть In ("Київ";"Ірпінь"). Так ви додасте до запиту записи про замовлення клієнтів тільки з цих двох міст.

  6. У таблиці "Відомості про замовлення" двічі клацніть поля "Дата розміщення" й "Вартість одиниці товару".

    Ці поля буде додано до бланка запиту.

  7. На бланку запиту в стовпці Дата розміщення виберіть рядок Поле. Замініть [Дата розміщення] на Рік: Format([Дата розміщення];"yyyy"). Це дасть змогу створити псевдонім поля (Рік) і використовувати лише значення року з дати, указаної в полі "Дата розміщення".

  8. На бланку запиту в стовпці Вартість одиниці товару виберіть рядок Поле. Замініть [Вартість одиниці товару] на Збут: [Відомості про замовлення].[Вартість одиниці товару]*[Кількість]-[Відомості про замовлення].[Вартість одиниці товару]*[Кількість]*[Знижка]. Це дасть змогу створити псевдонім поля (Збут), який обчислює обсяг збуту для кожного запису.

  9. На вкладці Конструктор у групі Тип запиту натисніть кнопку Перехресний.

    На бланку запиту з’являться два нові рядки: Підсумок і Перехресний.

  10. На бланку запиту в стовпці Місто клацніть рядок Перехресний, а потім виберіть Заголовок рядка.

    Після цього значення міст використовуватимуться як заголовки рядків (запит повертатиме один рядок для кожного міста).

  11. У стовпці Рік клацніть рядок Перехресний, а потім виберіть Заголовок стовпця.

    Після цього значення року використовуватимуться як заголовки стовпців (запит повертатиме один стовпець для кожного року).

  12. У стовпці Збут клацніть рядок Перехресний, а потім виберіть Значення.

    Після цього значення збуту відображатимуться на перетині рядків і стовпців (запит повертатиме одне значення збуту для кожної комбінації міста й року).

  13. У стовпці Збут клацніть рядок Підсумок, а потім виберіть Сума.

    Після цього запит підсумовуватиме значення в цьому стовпці.

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

  14. На вкладці Конструктор у групі Результати натисніть кнопку Запуск.

Тепер ви маєте запит, який повертає відомості про загальний обсяг збуту за рік у Києві й Ірпіні.

На початок сторінки

Перегляд усіх записів із двох схожих таблиць

Іноді потрібно об’єднати дані з двох таблиць, які мають однакову структуру, але розміщені в різних базах даних. Нижче описано такий сценарій.

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

Ви можете імпортувати дані другого навчального закладу до нових таблиць у своїй базі даних, але в такому разі зміни, унесені до цих даних, не відображатимуться. Найкраще встановити зв’язок із таблицями другого навчального закладу, а потім створити запити, які об’єднуватимуть ці дані. Так ви зможете аналізувати дані як єдиний набір, а не виконувати два різних аналізи й об’єднувати їх в один.

Щоб переглянути всі записи з двох таблиць з однаковою структурою, використовуйте запит на об’єднання.

Запити на об’єднання не відображаються в режимі конструктора. Їх можна створити за допомогою команд SQL, які потрібно вводити на вкладці об’єкта в режимі SQL.

Створення запиту на об’єднання за допомогою двох таблиць

  1. На вкладці Створити в групі Запити натисніть кнопку Конструктор запитів. Якщо ви використовуєте Access 2007, на вкладці Створити в групі Інші натисніть кнопку Конструктор запитів.

    Відкриється новий бланк запиту й діалогове вікно Відображення таблиці.

  2. У діалоговому вікні Відображення таблиці натисніть кнопку Закрити.

  3. На вкладці Конструктор у групі Тип запиту натисніть кнопку Об’єднання.

    Запит переключиться з режиму конструктора в режим SQL. На цьому етапі вкладка об’єкта в режимі SQL пуста.

  4. У режимі SQL введіть SELECT, а потім – список полів із першої таблиці, яку потрібно додати до запиту. Імена полів потрібно брати у квадратні дужки й розділяти крапкою з комою. Ввівши імена полів, натисніть клавішу Enter. Курсор переміститься вниз на один рядок у режимі SQL.

  5. Введіть FROM, а потім – ім’я першої таблиці, яку потрібно додати до запиту. Натисніть клавішу Enter.

  6. Якщо потрібно вказати умову для поля з першої таблиці, введіть WHERE, ім’я поля, оператор порівняння (зазвичай знак рівності (=)) і умову. Додаткову умову можна додати в кінці речення WHERE за допомогою ключового слова AND і синтаксису першої умови, наприклад WHERE [Рівень класу]="100" AND [Кількість кредитів]>2. Указавши умови, натисніть клавішу Enter.

  7. Введіть UNION і натисніть клавішу Enter.

  8. Введіть SELECT, а потім – список полів із другої таблиці, яку потрібно додати до запиту. Потрібно вказати ті самі поля, що й для першої таблиці, у тій самій послідовності. Імена полів потрібно брати у квадратні дужки й розділяти крапкою з комою. Ввівши імена полів, натисніть клавішу Enter.

  9. Введіть FROM, а потім – ім’я другої таблиці, яку потрібно додати до запиту. Натисніть клавішу Enter.

  10. За потреби додайте речення WHERE, як описано на кроці 6 цієї процедури.

  11. Введіть крапку з комою (;), щоб позначити кінець запиту.

  12. На вкладці Конструктор у групі Результати натисніть кнопку Запуск.

    Результати відобразяться у вікні табличного подання даних.

На початок сторінки

Див. також

Об’єднання таблиць і запитів

Удосконалення навичок роботи з Office
Ознайомтеся з навчальними матеріалами
Отримуйте нові функції раніше за інших
Приєднайтеся до оцінювачів Office

Ця інформація корисна?

Дякуємо за ваш відгук!

Дякуємо за відгук! Схоже, вам може стати в нагоді допомога одного з наших спеціалістів служби підтримки Office, з яким ми вас можемо з’єднати.

×