Вправа 4
Запити дозволяють не тільки вибирати записи з таблиць, а й обчислювати різні статистичні параметри. Наприклад, можна підрахувати сумарну кількість контактів і вивести дати першого і останнього контакту з кожним з людей, включених до таблиці Контакти. Щоб побудувати такий запит в режимі конструктора, виконайте наступні дії.
- У вікні бази даних клацніть на кнопці Запити.
- Двічі клацніть на значку Створення запиту в режимі конструктора (Create Query In Design View).
- У вікні діалогу (рис. 17.6) виділіть рядок Контакти.
- 4. Клацанням на кнопці Додати додайте обрану таблицю у верхню область конструктора запиту.
- 5. Виділіть пункт Список і знову клацніть на кнопці Додати.
- 6. Клацанням на кнопці Закрити закрийте вікно діалогу Додавання таблиці (Show Table). Списки полів двох таблиць, з'єднані лінією зв'язку, з'являться у вікні конструктора.
- 7. Клацніть на кнопці Групові операції (Totals) панелі інструментів. У бланку запиту з'явиться додатковий рядок Групова операція: (Total), що дозволяє виконувати статистичні операції зі значеннями конкретних полів.
Ріс.17.6. Додавання таблиці
- Перетягніть поле Прізвище в осередок Поле (Field) першого стовпця конструктора.
- В той же осередок другого шпальти перетягніть поле Ім'я таблиці Контакти.
- У третій, четвертий і п'ятий стовпці бланка запиту перетягніть поле Дата таблиці Список (рис. 17.7).
Мал. 17.7. Запит з груповими операціями
- У списку осередку Групова операція (Total) третього стовп ца бланка запиту виберіть пункт Min.
- У тому ж осередку четвертого стовпця виберіть пункт Мах.
- У п'ятому стовпці задайте групову операцію Count. Групові операції побудованого запиту оброблять всі записи таблиці Список, відповідні конкретній людині з таблиці Контакти, і замість самих даних таблиці Список виведуть в відповідне поле результату запиту тільки значення величини, що обчислюється за певною формулою. Доступні групові операції перераховані в табл. 17.1.
ТАБЛИЦЯ 17.1. групові операції
Оскільки в п'ятому полі запиту обчислюється кількість записів, в осередок Поле цього стовпця можна помістити будь-яке поле таблиці Список.
- Клацніть на кнопці Вид, щоб виконати запит. З'явиться таблиця з п'ятьма стовпцями. Два перших стовпці містять прізвища і імена людей. За ним виконується угрупування, тобто розрахунок значень інших полів запиту виконується для записів таблиці Список, що зіставляються з однією людиною. Як вже говорилося вище, відповідність контакту таблиці Список і людини з таблиці Контакти визначається полями Код_контакти, за допомогою яких здійснюється зв'язок цих двох таблиць. Третій і четвертий стовпчики запиту виводять відповідно дату першого (функція Min) і останнього (функція Мах) контакту з даною людиною. П'ятий стовпець містить кількість записів в таблиці Список (функція Count), відповідних. даній людині, тобто число контактів з ним. Єдиний недолік побудованого запиту - це незрозумілі імена стовпців. Давайте скорегуємо їх.
- Клацанням на кнопці Вид поверніться в конструктор запиту.
- В осередку Поле третього стовпця замініть ім'я Дата на текст Дата першого контакту: Дата. Права частина цього виразу, розташована правіше двокрапки, як і раніше задає ім'я поля, а ліва визначає назву стовпця результату запиту. Таким чином, будь-якому стовпцю запиту можна призначити довільне ім'я.
- В осередку Поле четвертого стовпця введіть Дата останнього контакту: Дата.
- У першому рядку п'ятого стовпчика бланка'запроса введіть Число контактів: Дата.
На жаль, подібний прийом не підходить для зміни назви поля, значення якого не обчислюється, а передається з таблиці. Тобто у такий спосіб не вдасться перейменувати поле Ім'я.
- Знову клацніть на кнопці Вид.
- Закрийте запит.
- Для збереження змін структури клацніть на кнопці Так.
- У вікні діалогу Збереження (Save As) введіть ім'я Підсумковий запит і клацніть на кнопці ОК.