Інструкційна карта до проведення
лабораторного заняття № 10
з дисципліни “Прикладна інформатика” на тему:
“Створення і використання підсумкових запитів на вибірку даних та перехресних запитів. Використання параметрів об'єднань таблиць та
властивостей запитів для ефективного аналізу даних.”
Підготовчий етап заняття. Актуалізація знань.
Віднайдіть на гнучкому диску збережений архів Sklad.rar та розархівуйте його вміст у власну папку в папці Мои документы.
Завантажте Access, відкрийте розроблену раніше БД Sklad.
Перейдіть на закладку Запросы.
Доповніть запит ДаніЗамовленьТоварівЗаПеріод полем День замовлення для відображення номера дня в тижні, у якому було оформлено замовлення. Створіть аналогічне поле День постачання у запиті ДаніПостачаньТоварівЗаПеріод.
-
Самостійно створіть запити
СпівробітникиВідділу – для відображення в алфавітному порядку прізвищ працюючих співробітників вказаного відділу з зазначенням посади, окладу та стажу роботи з дня зарахування в роках
СпівробітникиВказаноїНаціональності – для відображення в алфавітному порядку прізвищ працюючих співробітників вказаної національності з зазначенням статі, відділу та посади
ПостачанняВказаногоТовару – для відображення дат постачання, кількості, ціни та суми обраного товару (параметром запиту має бути не код, а назва товару)
ПоколінняСпівробітників – для відображення в алфавітному порядку прізвищ співробітників, що народилися за вказаний проміжок часу з зазначенням статі, відділу та посади. Для параметрів запиту забезпечте при введенні перевірку відповідності типу даних
ЗвільненіСпівробітникиЗаПеріод та ВлаштованіСпівробітникиЗаПеріод – для відображення в алфавітному порядку прізвищ співробітників, що звільнилися чи відповідно влаштувалися за вказаний проміжок часу з зазначенням статі, відділу та посади. Для параметрів запитів забезпечте при введенні перевірку відповідності типу даних.
Створення підсумкових запитів на вибірку даних.
-
Створіть запит КількостіСпівробітниківПоВідділах для відображення алфавітного списку назв відділів та кількостей співробітників, що в них працюють, виконуючи наступні дії
Для створення запиту перейдіть в режим конструктора та сформуйте його джерело даних з таблиць Співробітники та Відділи
В перший стовпець бланку запиту перетягніть поле НазваВідділу з таблиці Відділи
В другий стовпець бланку запиту перетягніть поле КодСпівробітника з таблиці Співробітники. Дайте йому назву Кількість співробітників
Для першого стовпця встановіть ознаку сортування за зростанням.
-
Для визначення кількості співробітників кожного відділу згрупуйте записи джерела даних за назвою відділу і підрахуйте для кожної групи кількість відповідних кодів співробітників. Для цього
Натисніть кнопку (групповые операции) на панелі інструментів Конструктор запросив, в контекстному меню бланку запиту чи в підменю Вид головного меню щоб сформувати саме підсумковий запит
В рядку Групповая операция, що з'явиться на екрані, оберіть зі списку для поля Назва відділу значення Группировка (встановлюється по замовчуванню), а для поля Кількість співробітників – значення Count.
Вкажіть повну умову відбору для пакетної обробки даних лише працюючих співробітників (працюючий співробітник – це особа, дата влаштування якої не вказана або не перевищує сьогоднішню, а дата звільнення – не вказана, або не менша сьогоднішньої). Для цього
Перетягніть в третій та четвертий стовпці бланку запиту з таблиці Співробітники поля ДатаВлаштування та ДатаЗвільнення відповідно
-
-
Задайте для третього стовпця умову відбору записів Is Null or <=date(), а для четвертого – Is Null or >=date()
Оскільки третій та четвертий стовпці задають лише умову для відбору записів, то в рядку Групповая операция для них вкажіть значення Условие
Перегляньте текст сформованого запиту в режимі SQL. Обгрунтуйте його структуру
Збережіть створений запит та переконайтеся в його дієздатності.
Для всіх запитів, пов'язаних з аналізом даних працюючих співробітників, вкажіть коректну умову відбору записів.
-
Самостійно створіть запити
КількостіПрацюючихСпівробітниківПоНаціональностях – для відображення кількостей працюючих співробітників кожної національності
КількостіПрацюючихСпівробітниківЗаСтаттю – для відображення кількостей працюючих співробітників кожної статі.
-
Створіть запит СумиОформленихЗамовленьПоСпівробітникахЗаПеріод для відображення впорядкованих за спаданням загальних сум оформлених замовлень кожним співробітником за введений період з зазначенням їх прізвищ. Для цього
Розпочніть створення запиту в режимі конструктора та сформуйте його джерело даних з таблиць Співробітники, Заголовки замовлень та ПунктиЗамовлень
В перший стовпець бланку запиту перетягніть поле ПІБ з таблиці Співробітники
Для другого стовпця в рядку Поле введіть формулу для підрахунку суми пункту замовлення СумаКількість*Ціна та встановіть для нього ознаку сортування за спаданням
Перегляньте результати відбору даних запитом в режимі таблиці. Чому прізвища окремих співробітників виводяться декілька разів
Для підрахунку загальних сум оформлених замовлень кожним співробітником знову перейдіть в режим конструктора та виконайте наступні дії
-
Вкажіть, що створюється підсумковий запит. Для цього натисніть кнопку Групповые операции одним з трьох описаних вище способів
Оскільки запит повинен групувати дані за прізвищами співробітника та для кожного з них підраховувати загальну суму оформлених замовлень, то в рядку Групповая операция для поля ПІБ оберіть зі списку значення Группировка (встановлюється по замовчуванню), а для поля Сума – значення Sum;
Оскільки запит повинен аналізувати замовлення лише за введений період, то перетягніть в третій стовпець запиту поле ДатаЗамовлення з таблиці Заголовки замовлень та вкажіть для нього в рядку Групповая операцыя значення Условие, а в рядку Условие отбора введіть вираз between [Введіть початкову дату] and [Введіть кінцеву дату]. Для параметрів запиту забезпечте при введенні перевірку відповідності типу даних
-
Перегляньте текст сформованого запиту в режимі SQL. Обгрунтуйте його структуру
Збережіть створений запит та переконайтеся в його дієздатності.
-
Самостійно створіть запити, впорядкувавши їх записи за спаданням значень основних показників (призначення кожного запиту відповідає його назві)
КількостіОформленихЗамовленьПоСпівробітникахЗаПеріод
СумиОформленихПостачаньПоСпівробітникахЗаПеріод
КількостіОформленихПостачаньПоСпівробітникахЗаПеріод
СумиПостачаньПоПостачальникахЗаПеріод;
КількостіПостачаньПоПостачальникахЗаПеріод;
СумиЗамовленьПоКлієнтахЗаПеріод;
КількостіЗамовленьПоКлієнтахЗаПеріод;
КількостіНародженихСпівробітниківПоДняхТижня.
Корегування параметрів об'єднань таблиць.
-
Створіть запит НеосвідченіСпівробітники для відображення алфавітного списку співробітників, яким в таблиці ОсвітаСпівробітників не відповідає жоден запис, з зазначенням відповідних назв відділів та посад. Для цього
Розпочніть створення запиту в режимі конструктора та сформуйте його джерело даних з таблиць Відділи, Співробітники та ОсвітаСпівробітників
Для аналізу даних всіх співробітників, а не лише тих, що мають відповідні записи в таблиці ОсвітаСпівробітників, змініть параметри об'єднання таблиць Співробітники та ОсвітаСпівробітників, виконуючи наступні дії
Виділіть натисненням лівої кнопки мишки зв'язок між цими таблицями у верхній частині вікна запиту
-
В контекстному меню зв'язка оберіть пункт Параметры объединения
У вікні Параметры объединения, що з'явиться на екрані, встановіть перемикач поєднання в положення Объединение ВСЕХ записей из 'Співробітники' и только тех из 'ОсвітаСпівробітників', в которых связанные поля совпадают та натисніть кнопку OK
Перетягніть в перший стовпець бланку запиту поле НазваВідділу з таблиці Відділи, а в другий та третій – відповідно поля ПІБ та Посада з таблиці Співробітники.
Встановіть для першого та другого стовпця ознаку сортування за зростанням
Для відбору з базового джерела даних інформації про співробітників без відповідних записів в таблиці ОсвітаСпівробітників (тобто рядків базового набору даних, в яких поля цієї таблиці не визначені) виконайте наступні дії
-
-
Перетягніть в четвертий стовпець бланку запиту поле КодОсвіти з таблиці ОсвітаСпівробітників
В рядку Условие отбора для цього стовпця введіть вираз Is Null
Самостійно забезпечте відображення на екрані даних лише перших трьох стовпців при виконанні запиту
Перегляньте текст сформованого запиту в режимі SQL. Обгрунтуйте структуру всіх частин запиту
Збережіть створений запит та переконайтеся в його дієздатності.
-
Самостійно створіть запити, впорядкувавши їх записи за зростанням значень основного поля (призначення кожного запиту відповідає його назві)
ТовариБезПостачань
ТовариБезПродажу
ПостачальникиБезПостачань
КлієнтиБезЗамовлень
ПостачанняБезПунктів
ЗамовленняБезПунктів.
Створення запитів на основі запитів.
-
Створіть запит ТовариБезПостачаньЗаПеріод для формування алфавітного списку товарів, що не надходили протягом введеного періоду часу. Для формування такого списку слід спочатку визначити товари, що надходили за введений період, а потім з переліку всіх товарів виключити знайдені товари та вивести результати виключення на екран. Створений раніше запит ДаніПостачаньТоварівЗаПеріод відбирає дані постачань товарів за введений період, тому модифікуйте його структуру та використайте при створенні нашого запиту
Відкрийте запит ДаніПостачаньТоварівЗаПеріод в режимі конструктора, перетягніть на місце першого поля бланку запиту поле КодТовару з таблиці ПунктиПостачань, закрийте запит та погодьтеся з збереженням внесених змін
Розпочніть створення запиту в режимі конструктора та сформуйте його джерело даних з таблиці Товари та запиту ДаніПостачаньТоварівЗаПеріод
Переконайтеся, що зв'язок між таблицями джерела даних встановлено поєднанням полів КодТовару. При відсутності такого зв'язку встановіть його перетягування відповідних полів між таблицями (аналогічно методу встановлення зв'язків між таблицями у схемі даних)
Самостійно встановіть між таблицями джерела даних запиту параметр поєднання Объединение ВСЕХ записей из 'Товары' и только тех из 'ДаніПостачаньТоварівЗаПеріод', в которых связанные поля совпадают
Перетягніть в перший та другий стовпці бланку запиту поля НазваТовару та МаркаТовару з таблиці Товари. Встановіть для цих стовпців ознаку сортування за зростанням
Для відбору лише товарів, що не постачалися протягом вказаного періоду, перетягніть в третій стовпець бланку запиту поле КодТовару з запиту ДаніПостачаньТоварівЗаПеріод, вкажіть для нього умову відбору Is Null та приховайте його відображення на екран при виконанні
Перегляньте текст сформованого запиту в режимі SQL. Обгрунтуйте структуру всіх частин запиту
Збережіть створений запит та переконайтеся в його дієздатності.
-
Самостійно створіть запити, впорядкувавши їх записи за зростанням значень основного поля (призначення кожного запиту відповідає його назві)
ТовариБезПродажуЗаПеріод
ПостачальникиБезПостачаньЗаПеріод
КлієнтиБезЗамовленьЗаПеріод.
МаксимальніСумиПостачаньПоПозтачальниках (створивши перед цим запит СумиПостачань)
МінімальніСумиПостачаньПоПозтачальниках
МаксимальніСумиЗамовленьПоКлієнтах (створивши перед цим запит СумиЗамовлень)
МінімальніСумиЗамовленьПоКлієнтах.
Створення складних запитів на основі запитів.
-
Створіть запит ЗалишокТоварівНаСкладі для відображення алфавітного списку назв та марок товарів та загальних кількостей отриманого, замовленого та наявного товару. Для цього
Створіть запит КількістьОтриманихТоварів з зазначенням коду та загальної отриманої кількості кожного товару
Створіть запит КількістьЗамовленихТоварів з зазначенням коду та загальної поставленої кількості кожного товару
Розпочніть створення заданого запиту в режимі конструктора та сформуйте його джерело даних з таблиці Товари та запитів КількістьОтриманихТоварів та КількістьЗамовленихТоварів
Оскільки окремі товари можуть взагалі не постачатися чи не реалізовуватися, то встановіть параметри поєднання запитів з таблицею Товари для забезпечення аналізу всіх товарів
Перетягніть в перший та другий стовпці бланку запиту відповідно поля НазваТовару та МаркаТовару з таблиці Товари. Встановіть для цих стовпців ознаку сортування за зростанням
У рядок Поле третього стовпця бланку запиту введіть вираз Отримано IIF(IsNull(Отримано);0;Отримано) для відображення кількості отриманого товару
У рядок Поле четвертого стовпця бланку запиту введіть вираз Замовлено IIF(IsNull(Замовлено);0;Замовлено) для відображення кількості отриманого товару
У п'ятому стовпці самостійно введіть вираз для підрахунку залишку товарів, як різниці між отриманою та замовленою сумами
Забезпечте відображення при виконанні запиту записів лише про ті товари, що надходили або замовлялися
Перегляньте текст сформованого запиту в режимі SQL. Обгрунтуйте структуру всіх частин запиту
Збережіть створений запит та переконайтеся в його дієздатності.
Самостійно створіть запит ЗалишокТоварівПоВідділах для відображення залишків товарів у кожному відділі. При цьому врахуйте, що кожен товар може знаходитися у кожному відділі, спочатку створіть запити ТовариВідділів, КількістьОтриманихТоварівПоВідділах та КількістьЗамовленихТоварівПоВідділах (джерелом даних запиту ТовариВідділів будуть непоєднані таблиці Відділи та Товари).
Використання властивостей запитів для ефективного аналізу даних.
-
Створіть запит ПостачанняНаМаксимальнуСуму для відображення даних постачання на максимальну суму. Для цього
Розпочніть створення запиту в режимі конструктора та сформуйте його джерело даних із запиту СумиПостачань
Перетягніть з джерела даних в бланк запиту поля КодПостачальника, ДатаПостачання та Сума
Для стовпця Сума встановіть ознаку сортування даних за спаданням
Для відображення даних лише першого постачання у відсортованому списку відкрийте вікно властивостей запиту, обравши відповідний пункт контекстного меню заголовка вікна чи вільного поля джерела даних, у виведеному вікні задайте для поля Набор значений значення 1 та закрийте вікно властивостей запиту
Перегляньте текст сформованого запиту в режимі SQL. Як відобразилася введена властивість запиту в цьому режимі
Збережіть створений запит та переконайтеся в його дієздатності (Цей самий запит можна було створити з використанням групових операцій, але в цьому випадку довелося б створювати два запити перший – для визначення максимальної суми постачання, а другий – для відбору даних постачання з цією сумою (в джерелі даних треба було б поєднати перший запит з запитом СумиПостачань по полю Сума).).
-
Перегляньте інші властивості запитів, полів та таблиць джерела даних, встановіть їх призначення та опишіть у письмовому звіті в таблицях наступної структури
Властивості запиту.
Назва властивості
|
Призначення властивості
|
Відображення властивості в режимі SQL
|
…
|
…
|
…
|
-
Самостійно створіть запити
ЗамовленняНаМаксимальнуСуму – для відображення даних замовлення на максимальну суму;
ДесяткаОсновнихПостачальників – для відображення десяти постачальників з максимальними загальними сумами постачань (створивши перед цим запит-джерело даних РейтингПостачальників)
ДесяткаОсновнихКлієнтів – для відображення десяти клієнтів з максимальними загальними сумами замовлень (створивши перед цим запит-джерело даних РейтингКлієнтів)
ДесяткаОсновнихТоварів – для відображення десяти товарів з максимальними загальними сумами замовлень (створивши перед цим запит-джерело даних РейтингТоварів)
Створення перехресних запитів.
-
Створіть перехресний (підсумковий по рядках і стовпцях) запит АналізСумЗамовленьТоварівЦьогоРокуПоМісяцях для відображення щомісячних сум замовлень кожного товару (в рядках звіту мають вказуватися дані замовлень окремих товарів, а в стовпцях дані замовлень по кожному місяцю). Для цього
Самостійно створіть запит-джерело даних ДаніЗамовленьТоварівЦьогоРоку, що відбирає дані замовлень поточного року з аналогічною структурою до запиту ДаніЗамовленьТоварівЗаПеріод (для відбору даних створіть поле для обчислення року від дати замовлення та вкажіть для нього умову відбору Year(Date()))
-
Створіть заданий перехресний запит за допомогою майстра, виконавши наступні дії
Завантажте майстер створення перехресних запитів, натиснувши кнопку Создать та обравши пункт Перекресный запрос у вікні Новый запрос
На першому кроці майстра оберіть запит ДаніЗамовленьТоварівЦьогоРоку для формування джерела даних перехресного запиту
На другому кроці майстра перемістіть з списку доступних в список обраних поля НазваТовару та МаркаТовару для формування заголовків рядків
На третьому кроці майстра оберіть поле ДатаЗамовлення для формування заголовків стовпців
На четвертому кроці майстра оберіть зі списку інтервал групування Месяц для поля-заголовка стовпця
На п'ятому кроці майстра оберіть поле Сума та групову функцію Sum для здійснення підрахунків на перетині рядків і стовпців, оскільки запит повинен знаходити загальну щомісячну суму замовлень по кожному товару
На останньому кроці майстра задайте назву запиту та завершіть його створення
Переконайтеся в дієздатності створеного запиту
Перегляньте текст сформованого запиту в режимах конструктора та SQL. Обгрунтуйте структуру всіх частин запиту в цих режимах.
-
Самостійно створіть перехресні запити (призначення кожного запиту відповідає його назві)
АналізСумЗамовленьТоварівЦьогоРокуПоКварталах
АналізСумЗамовленьТоварівЦьогоРокуПоДняхТижня
АналізКількостейЗамовленьТоварівЦьогоРокуПоМісяцях
АналізКількостейЗамовленьТоварівЦьогоРокуПоКварталах
АналізКількостейЗамовленьТоварівЦьогоРокуПоДняхТижня
АналізКількостейЗамовленьЦьогоРокуПоМісяцях (створивши попередньо запит ЗамовленняЦьогоРоку)
АналізКількостейЗамовленьЦьогоРокуПоКварталах
АналізКількостейЗамовленьЦьогоРокуПоДняхТижня
Завершальний етап заняття. Повторення вивченого матеріалу.
Стисніть створену БД
Завершіть роботу Access
Віднайдіть створену БД та заархівуйте її вміст
Збережіть створений архів на гнучкому диску в двох екземплярах.
Контрольні запитання.
Що позначає символ * в першому рядку образів таблиць джерела даних запиту?
Як створити, перемістити чи видалити поля бланку запиту?
Які групові операції можна виконати над полями при конструюванні підсумкових запитів? Як кожна з цих операцій описується в режимі SQL?
Які параметри об'єднань можна встановлювати між таблицями джерела даних? Який з цих параметрів встановлюється автоматично? Де описуються параметри об'єднань в режимі SQL?
Для яких запитів результати виконання відрізняються від результатів перегляду в режимі таблиці?
Які з властивостей запиту, полів та таблиць джерела даних відображаються в режимі SQL, а які – ні? Чому?
Чим відрізняється перехресний запит від підсумкового? Які обмеження накладаються на джерело даних перехресного запиту? Які обмеження накладаються на структуру перехресного запиту?
Перелік запитів, створених чи модифікованих в результаті виконання лабораторної роботи.
ВлаштованіСпівробітникиЗаПеріод.
ДаніЗамовленьТоварівЗаПеріод (доповнено полем День замовлення).
ДаніПостачаньТоварівЗаПеріод (доповнено полем День постачання).
ДесяткаОсновнихКлієнтів.
ДесяткаОсновнихПостачальників.
ДесяткаОсновнихТоварів.
ЗамовленняБезПунктів.
ЗамовленняНаМаксимальнуСуму.
ЗвільненіСпівробітникиЗаПеріод.
КількостіЗамовленьПоКлієнтахЗаПеріод;
КількостіНародженихСпівробітниківПоДняхТижня.
КількостіОформленихЗамовленьПоСпівробітникахЗаПеріод
КількостіОформленихПостачаньПоСпівробітникахЗаПеріод
КількостіПостачаньПоПостачальникахЗаПеріод;
КількостіПрацюючихСпівробітниківЗаСтаттю.
КількостіПрацюючихСпівробітниківПоВідділах.
КількостіПрацюючихСпівробітниківПоНаціональностях.
КлієнтиБезЗамовлень.
КлієнтиБезЗамовленьЗаПеріод.
МаксимальніСумиЗамовленьПоКлієнтах.
МаксимальніСумиПостачаньПоПозтачальниках.
МінімальніСумиЗамовленьПоКлієнтах.
МінімальніСумиПостачаньПоПозтачальниках.
НеосвідченіСпівробітники.
ПоколінняСпівробітників.
ПостачальникиБезПостачань.
ПостачальникиБезПостачаньЗаПеріод.
ПостачанняБезПунктів.
ПостачанняВказаногоТовару.
ПостачанняНаМаксимальнуСуму.
РейтингКлієнтів.
РейтингПостачальників.
РейтингТоварів.
СпівробітникиВідділу.
СпівробітникиВказаноїНаціональності.
СумиЗамовлень.
СумиЗамовленьПоКлієнтахЗаПеріод;
СумиОформленихЗамовленьПоСпівробітникахЗаПеріод.
СумиОформленихПостачаньПоСпівробітникахЗаПеріод
СумиПостачань.
СумиПостачаньПоПостачальникахЗаПеріод;
ТовариБезНадходжень.
ТовариБезНадходженьЗаПеріод.
ТовариБезПродажу.
ТовариБезПродажуЗаПеріод.
АналізСумЗамовленьТоварівЦьогоРокуПоМісяцях.
ДаніЗамовленьТоварівЦьогоРоку.
АналізСумЗамовленьТоварівЦьогоРокуПоКварталах.
АналізСумЗамовленьТоварівЦьогоРокуПоДняхТижня.
АналізКількостейЗамовленьТоварівЦьогоРокуПоМісяцях.
АналізКількостейЗамовленьТоварівЦьогоРокуПоКварталах.
АналізКількостейЗамовленьТоварівЦьогоРокуПоДняхТижня.
АналізКількостейЗамовленьЦьогоРокуПоМісяцях.
АналізКількостейЗамовленьЦьогоРокуПоКварталах.
АналізКількостейЗамовленьЦьогоРокуПоДняхТижня.
ЗамовленняЦьогоРоку.
ЗалишокТоварівНаСкладі.
КількістьОтриманихТоварів.
КількістьЗамовленихТоварів.
ЗалишокТоварівПоВідділах.
ТовариВідділів.
КількістьОтриманихТоварівПоВідділах.
КількістьЗамовленихТоварівПоВідділах.
|