Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Поля, які розраховуються у запитах

Читайте также:
  1. Примечание. Домом считается та боковая линия поля, на которой находятся вещи игроков, если не оговорено иное.

Як уже говорилося, у полях таблиць бази даних зберігаються первинні дані, те, що можна обчислити в базі даних не зберігають, а одержують за допомогою запитів. Поле, яке розраховується, створюється шляхом простого уведення вираження для обчислення в порожньому стовпці бланка запиту. Так, наприклад, вартість замовлення обчислюється за допомогою наступного вираження: [Ціна] *[Кількість]. Access автоматично підставляє Выражение1: [Ціна] * [Кількість]. Выражение1: можна замінити на більш змістовну назву Сума:. Назви полів у квадратних дужках повинні строго відповідати назвам полів вхідних таблиць або запитів. З цього погляду надійніше користуватися спеціальним засобом для побудови формул - Построителем. Цей засіб стає доступним у режимі Конструктор через контекстне меню поля з формулою -> к. Построить або через кнопку (паличка сипле сніг) панелі інструментів Конструктор запросов (рис. 3).

Приклад 2. Створити запит Сума замовлення, у якому по кожному рядку замовлення буде розраховуватися сума.

Виконання. Необхідний запит зручно створити на підставі вже існуючого запиту на вибірку Замовлено.

Вибрати об'єкт Запросы -> кнопка Создать -> виділити конструктор -> ОК -> вкладка Запросы -> виділити Замовлено -> кнопка Добавить -> кнопка Закрыть -> перетягнути поля запиту Замовлено у відповідні поля нового запиту -> клацнути по полю для заголовка Сума -> кнопка (паличка) панелі інструментів Конструктор запросов -> у вікні Построитель выражений (рис) у дереві папок відкрити папку вхідного об'єкта (у нашому прикладі це запит Замовлено -> подвійним клацанням по назві потрібного поля (Кількість) відправити його у верхню частину вікна -> клацнути по кнопці з операцією (*) -> подвійним клацанням по назві потрібного поля (Ціна) відправити його у верхню частину -> кнопка ОК. У бланку запиту у формулі, що з'явилася, замінити слово Выражение 1 на більш краще за змістом (Сума) -> зберегти запит з ім'ям Сума замовлення.


 

Рисунок 10 Бланк конструктора запитів і вікно Построителя выражений при формуванні запиту з розрахунками.

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

Наведений приклад ілюструє можливості Access здійснювати розрахунки по окремим записам. Але досить часто потрібно підраховувати різні підсумки у таблицях. Для цього використовуються підсумкові запити.

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

Приклад 3 Створити запит Товари по датах, у якому визначається кількість товарів замовлених по датам у розрізі найменувань.

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

У вікні конструктора на підставі запиту Замовлено створити новий запит з полями Дата замовлення, Найменування товару, Кількість, Ціна -> м. Вид -> команда Групповые операции (у бланку запиту з'являється рядок групповые операции) -> для всіх ознак групування у цьому рядку варто залишити операцію группировка -> у рядку Сортировка для кожної ознаки, що групується можна вибрати спосіб упорядкування, наприклад, по возрастанию, -> для поля у рядку Групповые операции вибрати SUM (рис. 4).

Рисунок 11 Бланк створення підсумкового запиту

Залишилося зберегти запит під потрібним ім'ям: меню Файл -> команда Сохранить -> увести ім'я запиту Товари по датах -> ОК. Результат виконання запиту показаний у табл.

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

Приклад 4. Створити запит Замовлено по датах у підсумковому виразі, у якому по кожній даті будуть показана загальна сума замовлень, мінімальна, максимальна і середня суми замовлень.

Виконання. Необхідний запит можна створити на підставі запиту Сума замовлення з використанням статистичних функцій. Створити новий запит -> перенести в нього поля Дата замовлення і Сума з запиту Сума замовлення (поле Сума перенести в чотири поля нового запиту для виконання необхідних обчислень) -> м. Вид -> команда Групповые операции -> виставити в рядку групповая операция необхідні функції (рис. 5) -> зберегти запит з ім'ям Замовлено по датах.

Рисунок 12 Бланк запиту для прикладу 4

Результат виконання запиту показаний у таблиці.

Таблиця - Результат роботи запиту Замовлено по датах с використанням статистичних функцій.

Примітка 1. Якщо необхідно в одному стовпці робити обчислення й вказувати умови відбору, то цей стовпець у запиті варто повторити двічі й в кожному вказати одну з вимог. Один із цих стовпців не треба виводити на екран.

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


Дата добавления: 2015-10-29; просмотров: 98 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Створення простого запиту на вибірку за допомогою майстра| Перехресні запити

mybiblioteka.su - 2015-2024 год. (0.013 сек.)