Как вычислить сумму значений заданного поля
Перейти к содержимому

Как вычислить сумму значений заданного поля

  • автор:

Суммирование в отчетах

В любом отчете Access, содержащем числа, можно использовать итоги, средние значения, проценты или суммы с накоплением, чтобы сделать данные более понятными. В этой статье рассказывается, как добавить такие элементы в отчет.

В этой статье

  • Типы агрегатов, которые можно добавить в отчет
  • Добавление суммы или другого агрегата в режиме макета
  • Добавление суммы или другого агрегата в режиме конструктора
  • Вычисление сумм с накоплением (сумм с нарастающим итогом)

Типы агрегатов, которые можно добавить в отчет

В следующей таблице приведены типы агрегатных функций в Access, которые можно добавить в отчет.

Суммирует элементы в столбце.

Определяет среднее значение всех элементов столбца.

Подсчитывает количество элементов в столбце.

Возвращает элемент, имеющий наибольшее (числовое или по алфавиту) значение в столбце.

Возвращает элемент, имеющий наименьшее (числовое или по алфавиту) значение в столбце.

Показывает, насколько значения в столбце отклоняются от среднего значения.

Вычисляет дисперсию для всех значений в столбце.

Добавление суммы или другого агрегата в режиме макета

Режим макета предоставляет наиболее быстрый способ добавления сумм, средних значений и других агрегатов в отчет.

  1. В области навигации щелкните отчет правой кнопкой мыши и выберите команду Макет.
  2. Щелкните поле, для которого вы хотите добавить агрегатное выражение. Например, если необходимо добавить сумму в столбец чисел, щелкните одно из чисел в этом столбце.
  3. На вкладке Конструктор в группе Группировка и итоги щелкните Итоги.
  4. Выберите тип агрегатной функции, которую вы хотите добавить в поле.

Access добавляет текстовое поле в колонтитул отчета и задает в качестве значения его свойства Данные (Control Source) выражение, которое выполняет нужное вычисление. Если в отчете есть уровни группировки, Access также добавит текстовое поле, которое выполняет такие же вычисления в каждом разделе примечания группы.

Дополнительные сведения о создании уровней группировки в отчетах см. в статье Создание отчета с группировкой или сводного отчета.

Добавление суммы или другого агрегата в режиме конструктора

Конструктор позволяет точнее настраивать размещение и внешний вид итоговых значений. В сгруппированных отчетах можно поместить итоги и другие агрегаты в заголовок или примечание каждой группы. Агрегаты уровня отчета можно поместить в заголовок или колонтитул отчета.

  1. В области навигации щелкните отчет правой кнопкой мыши и выберите команду Режим конструктора.
  2. Щелкните поле, для которого вы хотите добавить агрегатное выражение. Например, если необходимо добавить сумму в столбец чисел, щелкните одно из чисел в этом столбце.
  3. На вкладке Конструктор в группе Группировка и итоги щелкните Итоги.
  4. Выберите тип агрегатной функции, которую вы хотите добавить в поле.

Access добавляет текстовое поле в колонтитул отчета и задает в качестве значения его свойства Данные (Control Source) выражение, которое выполняет нужное вычисление. Если в отчете есть уровни группировки, Access также добавит текстовое поле, которое выполняет такие же вычисления в каждом разделе примечания группы.

Дополнительные сведения о создании уровней группировки в отчетах см. в статье Создание отчета с группировкой или сводного отчета.

Вычисление сумм с накоплением (сумм с нарастающим итогом)

В Access можно создавать в отчетах суммы с накоплением. Сумма с накоплением — это сумма значений из всех записей группы или даже отчета.

Создание суммы с накоплением

  1. В области навигации щелкните отчет правой кнопкой мыши и выберите в меню «Конструктор» .
  2. На вкладке Конструктор в группе Элементы управления щелкните Поле.
  3. Щелкните раздел подробностей, заголовок или примечание группы, чтобы создать текстовое поле. Если рядом с текстовым полем отображается подпись, удалите ее или замените текст в ней на более осмысленный.
  4. Выделите текстовое поле. Если страница свойств не отображается, нажмите клавишу F4.
  5. Откройте вкладку Данные. В ячейке свойства Данные (Control Source) введите имя поля или выражение, для которого вы хотите создать сумму с накоплением. Например введите РасширеннаяЦена для поля «РасширеннаяЦена» или на уровне группы введите выражение =Sum([РасширеннаяЦена]).
  6. Щелкните ячейку свойства Сумма с накоплением (Running Sum).
  7. Щелкните стрелку раскрывающегося списка в поле свойства и выполните одно из указанных ниже действий.
    • Если вы хотите, чтобы сумма обнулялась при достижении следующего уровня группировки, выберите в списке Для группы.
    • Если вы хотите, чтобы сумма накапливалась до конца отчета, выберите в списке Для всего.
  8. Закройте страницу свойств.

Примечание: Если для свойства Сумма с накоплением (Running Sum) задано значение Для всего, то общее итоговое значение можно повторить в колонтитуле отчета. Создайте в нем поле и задайте в качестве значения его свойства Данные (Control Source) имя поля, в котором вычисляется сумма с накоплением, например =[СуммаЗаказа].

Как в форме рассчитать сумму значений поля?

Author24 — интернет-сервис помощи студентам

Как рассчитать общую сумму ранее введенных значений?
Приложение которое рассчитывает бюджет. в TextBox добавляется число, и сохраняется в.

Как изменять цвета некоторых значений поля в форме?
Задача в следующем. Есть запрос, который вставлен в форму. То есть на основе него сделана форма. .

Рассчитать сумму первых значений.
Ввести N целых положительных чисел и предельное значение суммы. Рассчитать сумму первых значений.

Рассчитать сумму N значений элементов массива B, по формуле :
Народ завис на массиве, буду признателен вам, если поможете в Pascal, условие такое : Рассчитать.

Как посчитать сумму количества значений столбцов до заданного в функции?

Имеются несколько столбцов, названные от 1 до 12, в них содержатся различные значения, они не важны, важно их количество. Пример:

1 2 3 4 . (столбцы) * * * * * * (значения) * * * 

Пишу процедуру, которая должна считать сумму количества значений столбцов до заданного. Т.е., приняв входным параметром значение, например, 3, процедура должна рассчитать сумму количества значений в столбцах до третьего включительно.

1 2 3 2+ 2+ 2 = 6 

Логично, что должен использоваться loop , однако ввиду слабых познаний в PL/SQL и в программировании в целом, застопорился практически в самом начале. Как реализовать цикл для выполнения данной операции?

Отслеживать
51.6k 201 201 золотой знак 65 65 серебряных знаков 246 246 бронзовых знаков
задан 12 июл 2017 в 8:16
393 4 4 золотых знака 8 8 серебряных знаков 20 20 бронзовых знаков

Вам не обязательно делать цикл. Сделайте подсчет числа значений по каждому столбцу COUNT (1), COUNT(2) . и складывайте их значения.

12 июл 2017 в 8:23

@vikolyada Спасибо за подсказку! Но тем не менее — знать сумму нужно до определенного, а не всех. Как это можно красиво описать?

12 июл 2017 в 8:26

Например, можно сделать CASE ‘входной параметр с числом столбцов’ WHEN 1 THEN COUNT(1) WHEN 2 THEN COUNT(1) + COUNT(2) . END . Может не самый оптимальный вариант, но по идее должно работать.

12 июл 2017 в 8:34

@vikolyada, CASE WHEN ‘входной параметр с числом столбцов’ >= 1 THEN COUNT(1) ELSE 0 END + CASE WHEN ‘входной параметр с числом столбцов’ >= 2 THEN COUNT(2) ELSE 0 END + .

12 июл 2017 в 10:43
Можно использовать UNPIVOT
12 июл 2017 в 11:54

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

with function countVal (n int, empty char:=' ') return number is ret int; begin select count (trim (empty from val)) into ret from t unpivot (val for col in (c1, c2, c3, c4)) where col  

Данные для примера:

create table t as with t (c1, c2, c3, c4) as ( select '*', '*', ' ', '*' from dual union all select ' ', '*', '*', '*' from dual union all select '*', ' ', '*', '*' from dual) select * from t / 

Отслеживать
ответ дан 4 июл 2020 в 13:34
51.6k 201 201 золотой знак 65 65 серебряных знаков 246 246 бронзовых знаков

ничего не понял, поясните на примере:

CREATE TABLE tmp_data ( c1 NUMBER, c2 NUMBER, c3 NUMBER, c4 NUMBER, c5 NUMBER, c6 NUMBER, c7 NUMBER, c8 NUMBER, c9 NUMBER, c10 NUMBER, c11 NUMBER, c12 NUMBER ); / INSERT INTO tmp_data (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) VALUES ( 1, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ); / INSERT INTO tmp_data (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) VALUES ( NULL, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ); / INSERT INTO tmp_data (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12) VALUES ( 1, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ); / CREATE OR REPLACE FUNCTION F_COUNT_RS( A_START IN NUMBER DEFAULT 1, A_END IN NUMBER) RETURN NUMBER IS TYPE l_col_sum_typ IS TABLE OF NUMBER INDEX BY PLS_INTEGER; l_c_sum l_col_sum_typ ; l_end NUMBER := A_END; l_result NUMBER :=0; BEGIN SELECT COUNT(t.c1), COUNT(t.c2), COUNT(t.c3), COUNT(t.c4), COUNT(t.c5), COUNT(t.c6), COUNT(t.c7), COUNT(t.c8), COUNT(t.c9), COUNT(t.c10), COUNT(t.c11), COUNT(t.c12) INTO l_c_sum(1), l_c_sum(2), l_c_sum(3), l_c_sum(4), l_c_sum(5), l_c_sum(6), l_c_sum(7), l_c_sum(8), l_c_sum(9), l_c_sum(10), l_c_sum(11), l_c_sum(12) FROM tmp_data t; IF l_end IS NULL OR l_end > l_c_sum.count THEN l_end := l_c_sum.count; END IF; FOR idx IN A_START..l_end LOOP l_result := l_result+l_c_sum(idx); dbms_output.put_line(idx|| l_c_sum(idx)); END LOOP; RETURN l_result; END F_COUNT_RS; / SELECT F_COUNT_RS(1,3) FROM dual; 

Отслеживать
ответ дан 20 июл 2017 в 17:16
Равшан Абдулаев Равшан Абдулаев
143 5 5 бронзовых знаков
Может проще тогда через динамический SQL сделать чем так хардкорить? )))
19 апр 2019 в 8:51

  • sql
  • oracle
  • plsql
  • процедуры
    Важное на Мете
Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.26.3951

Подсчет данных при помощи запроса

В этой статье объясняется, как использовать тип функции в Access, называемой агрегатной функцией, для суммирования данных в результирующем наборе запроса. В ней также кратко описывается использование других агрегатных функций, например COUNT и AVG, для подсчета или вычисления средних значений в результирующем наборе записей. Кроме того, в этой статье объясняется, как использовать строку итогов— функцию в Access, которая используется для суммирования данных без необходимости изменять структуру запросов.

Выберите нужное действие

  • Общее представление о способах суммирования данных
  • Подготовка примера данных
  • Суммирования данных с помощью строки итогов
  • Вычисление общих итогов с помощью запроса
  • Вычисление итогов по группе с помощью итогового запроса
  • Суммирование данных из нескольких групп с помощью перекрестного запроса
  • Справочные сведения об агрегатных функциях

Общее представление о способах суммирования данных

Просуммировать числовой столбец в запросе можно с помощью агрегатной функции. Агрегатные функции выполняют вычисления со столбцами данных и возвращают единственное значение. В Access существует множество агрегатных функций, включая Sum, Count, Avg (для вычисления среднего значения), Min и Max. Суммирование данных производится путем добавления в запрос функции Sum, подсчет данных — путем использования функции Count и т. д.

Кроме того, в Access предусмотрено несколько способов добавления функции Sum и других агрегатных функций в запрос. Вы можете:

  • Открыть запрос в режиме таблицы и добавить строку итогов. Строка итогов — возможность Access, позволяющая использовать агрегатные функции в одном или нескольких столбцах в результатах запроса без необходимости изменять его структуру.
  • Создать итоговый запрос. Итоговый запрос вычисляет промежуточные итоги для групп записей, а строка итогов — общие итоги для одного или нескольких столбцов (полей) данных. Например, если вы хотите вычислить промежуточную сумму всех продаж по городам или по кварталам, следует использовать итоговый запрос для группировки записей по нужной категории, а затем просуммировать все объемы продаж.
  • Создать перекрестный запрос. Перекрестный запрос — это особый тип запросов, отображающий результаты в сетке, напоминающей лист Excel. Перекрестные запросы суммируют значения и затем группируют их по двум наборам фактов — вдоль боковой стороны (заголовки строк) и в верхней части (заголовки столбцов). Например, вы можете использовать перекрестный запрос для отображения итоговых значений продаж для каждого города за последние три года, как показано в таблице:

Санкт-Петербург

Примечание: Ниже в разделах этой статьи подробно описано применение функции Sum, однако следует помнить, что вы можете использовать другие агрегатные функции в строках итогов и запросах. Дополнительные сведения об использовании других агрегатных функций см. ниже в разделе Справочные сведения об агрегатных функциях.

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

В следующих разделах описано, как добавить строку итогов, использовать итоговый запрос для суммирования данных и перекрестный запрос, вычисляющий промежуточные итоги по группам и интервалам времени. Помните, что многие агрегатные функции работают только с данными в полях, имеющих определенный тип данных. Например, функция SUM работает только с типами данных "Число", "Действительное" и "Денежный". Дополнительные сведения о типах данных, требуемых для каждой функции, см. ниже в разделе Справочные сведения об агрегатных функциях.

Общие сведения о типах данных см. в статье Изменение типа данных для поля.

Подготовка примера данных

В инструкциях этой статьи приводятся таблицы с примерами данных. Они помогают понять, как работают агрегатные функции. Вы можете добавить примеры таблиц в новую или существующую базу данных.

Сделать это в Access можно несколькими способами. Вы можете ввести данные вручную, скопировать каждую таблицу в редактор электронных таблиц (такой как Excel) и импортировать листы в Access или же вставить данные в текстовый редактор, например Блокнот, и импортировать их из созданных текстовых файлов.

В пошаговых инструкциях этого раздела объясняется, как вводить данные вручную на пустой лист, а также как копировать примеры таблиц в редактор электронных таблиц и затем импортировать их в Access. Дополнительные сведения о создании и импорте текстовых данных см. в статье Импорт данных или связывание с данными текстового файла.

В пошаговых инструкциях в этой статье используются приведенные ниже таблицы. Создайте пример данных на их основе:

Игры и головоломки

DVD-диски и фильмы

Модели для сборки, хобби

Наименование товара

Эксперименты с C# (игра для всей семьи)

Игры и головоломки

Схема реляционной базы данных

Волшебная микросхема (500 деталей)

Игры и головоломки

Игры и головоломки

Компьютерные маньяки и мифические животные

Упражнение для компьютерных гикеров! DVD-диск!

DVD-диски и фильмы

Неуловимая летающая пицца

Внешний дисковод гибких дисков 5.25'' (масштаб 1:4)

Модели для сборки, хобби

Недвижущаяся фигурка бюрократа

Модели для сборки, хобби

Таблица Заказы

Дата заказа

Дата отгрузки

Город назначения

Стоимость доставки

Таблица Сведения о заказах

Идентификатор заказа

Наименование товара

Цена за единицу

Недвижущаяся фигурка бюрократа

Упражнение для компьютерных гикеров! DVD-диск!

Компьютерные маньяки и мифические животные

Неуловимая летающая пицца

Внешний дисковод гибких дисков 5.25'' (масштаб 1:4)

Схема реляционной базы данных

Схема реляционной базы данных

Примечание: Помните, что в типичной базе данных таблица "Сведения о заказах" будет содержать только поле "Код товара" (без поля "Наименование товара"). В данном примере поле "Наименование товара" используется для упрощения восприятия данных.

Ввод примеров данных вручную

  1. на вкладке Создание в группе Таблицы нажмите кнопку Таблица. Access добавит в базу данных новую пустую таблицу.

Примечание: Эту операцию следует выполнять только при необходимости добавить таблицу в базу данных. При открытии новой пустой базы данных это действие не требуется.

Если вы не хотите вводить данные вручную, можно выполнить указанные ниже действия для копирования информации в файл электронной таблицы, а затем импортировать данные из него в Access.

Создание листов с примерами данных

  1. Запустите редактор электронных таблиц и создайте пустой файл. Если вы используете Excel, по умолчанию создается пустая книга.
  2. Скопируйте первый пример таблицы и вставьте его на первый лист, начиная с первой ячейки.
  3. Присвойте листу имя с помощью функций редактора электронных таблиц. Оно должно совпадать с именем примера таблицы. Например, если пример называется Категории, присвойте листу это же имя.
  4. Повторяйте шаги 2 и 3, чтобы скопировать каждый пример таблицы на пустой лист и переименовать этот лист.

Примечание: К файлу электронной таблицы может понадобиться добавить листы. Сведения о том, как сделать это, см. в справке редактора электронных таблиц.

Создание таблиц базы данных на основе листов

  1. На вкладке Внешние данные в группе Импорт ссылки & щелкните Создать источник данных >из файла >Excel. Откроется диалоговое окно Получение внешних данных — электронная таблица Excel .
  2. Нажмите кнопку Обзор, откройте файл электронной таблицы, созданный на предыдущих этапах, и нажмите кнопку ОК. Откроется окно мастера импорта электронных таблиц.
  3. По умолчанию мастер выбирает первый лист в книге (в этом примере — лист Клиенты), и данные из этого листа появляются в нижней части страницы мастера. Нажмите кнопку Далее.
  4. На следующей странице мастера выберите Первая строка содержит названия столбцов, а затем нажмите кнопку Далее.
  5. Если нужно, вы можете изменить имена полей и типы данных или пропустить некоторые поля, воспользовавшись текстовыми полями и списками в группе Параметры поля. В противном случае нажмите кнопку Далее.
  6. Оставьте параметр автоматически создать ключ выбранным и нажмите кнопку Далее.
  7. По умолчанию Access использует имя листа для новой таблицы. Оставьте это имя или введите другое, а затем нажмите кнопку Готово.
  8. Повторите шаги с 1 по 7 для каждого листа книги Excel, чтобы создать для него таблицу.

Переименование полей первичного ключа

Примечание: При импорте листов Access автоматически добавляет в каждую таблицу столбец первичного ключа и по умолчанию присваивает ему имя "Код" и тип данных "Счетчик". В этом разделе даны инструкции по переименованию полей первичного ключа. Это позволяет четко определить все поля в запросе.

  1. В области навигации щелкните правой кнопкой мыши каждую таблицу, созданную на предыдущем шаге, и выберите команду Конструктор.
  2. Для каждой таблицы найдите поле первичного ключа. По умолчанию Access присваивает каждому полю имя Код.
  3. В столбце Имя поля каждого поля первичного ключа добавьте имя таблицы. Например, поле идентификатора для таблицы Категорий следует переименовать в "Идентификатор категории", а поле таблицы "Заказы" — в "Идентификатор заказа". Для таблицы Сведения о заказе переименуйте поле в "Идентификатор сведений". Для таблицы Products переименуйте поле в "Идентификатор продукта".
  4. Сохраните изменения.

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

Суммирования данных с помощью строки итогов

Чтобы добавить в запрос строку итогов, откройте его в режиме таблицы, добавьте строку, а затем выберите нужную агрегатную функцию, например Sum, Min, Max или Avg. В этом разделе объясняется, как создать простой запрос на выборку и добавить строку итогов. Не обязательно использовать примеры таблиц, представленные в предыдущем разделе.

Создание простого запроса на выборку

  1. На вкладке Создание в группе Запросы нажмите кнопку Конструктор запросов.
  2. Дважды щелкните таблицу или таблицы, которые вы хотите использовать в запросе. Выбранные таблицы отображаются в виде окон в верхней части конструктора запросов.
  3. Дважды щелкните поля таблицы, которые вы хотите использовать в запросе. Можно включить поля, содержащие описательные данные, например имена и описания, но следует обязательно добавить поле, содержащее числовые или денежные значения. Каждое поле отображается в ячейке в бланке запроса.
  4. Щелкните Выполнить , чтобы выполнить запрос. Результаты запроса будут отображены в режиме таблицы.
  5. При необходимости переключитесь в Конструктор и скорректируйте запрос. Для этого щелкните правой кнопкой мыши вкладку документа для запроса и выберите команду Конструктор. После этого можно изменить запрос, добавив или удалив поля таблицы. Чтобы удалить поле, выберите столбец в бланке запроса и нажмите клавишу DELETE.
  6. Сохраните запрос.

Добавление строки итогов

  1. Убедитесь в том, что запрос открыт в режиме таблицы. Для этого щелкните правой кнопкой мыши вкладку документа для запроса и выберите команду Режим таблицы. -или- Дважды щелкните запрос в области навигации. Запрос будет выполнен, а его результаты будут загружены в таблицу.
  2. На вкладке Главная в группе Записи нажмите кнопку Итоги. В таблице появится новая строка Итог.
  3. В строке Итог щелкните ячейку в поле, по которому вы хотите вычислить сумму, и выберите в списке функцию Sum.

Скрытие строки итогов

  • На вкладке Главная в группе Записи нажмите кнопку Итоги.

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

Вычисление общих итогов с помощью запроса

Общие итоги — это сумма по всем значениям столбца. Можно вычислять нескольких типов общих итогов, включая:

  • Простой общий итог, суммирующий значения одного столбца. Например, можно вычислить общую стоимость доставки.
  • Вычисляемый общий итог, суммирующий значения нескольких столбцов. Например, можно вычислить суммы продаж путем умножения цены нескольких товаров на число заказанных товаров, а затем просуммировав результирующие значения.
  • Общий итог за исключением нескольких записей. Например, можно вычислить сумму продаж только по последней пятнице.

В следующих разделах описано, как вычислить каждый из типов общих итогов. В инструкциях используются таблицы "Заказы" и "Сведения о заказах".

Таблица "Заказы"

Идентификатор заказа

Дата заказа

Дата отгрузки

Город назначения

Стоимость доставки

Таблица "Сведения о заказах"

Код сведений

Идентификатор заказа

Наименование товара

Цена за единицу

Недвижущаяся фигурка бюрократа

Упражнение для компьютерных гикеров! DVD-диск!

Компьютерные маньяки и мифические животные

Неуловимая летающая пицца

Внешний дисковод гибких дисков 5.25'' (масштаб 1:4)

Схема реляционной базы данных

Схема реляционной базы данных

Вычисление простого общего итога

  1. На вкладке Создание в группе Запросы нажмите кнопку Конструктор запросов.
  2. Дважды щелкните таблицу, которую вы хотите использовать в запросе. При использовании примера данных нужно дважды щелкнуть таблицу "Заказы". Таблица появится в окне в верхней части конструктора запросов.
  3. Дважды щелкните поле, для которого вы хотите найти сумму. Убедитесь, что поле имеет тип данных "Число" или "Денежный". При попытке суммировать значения в нечисловых полях, например в текстовом поле, Access выводит сообщение об ошибке Несоответствие типов данных в выражении условия отбора. Если вы используете пример данных, дважды щелкните столбец "Стоимость доставки". Вы можете добавить дополнительные числовые поля, если хотите вычислить для них общие итоги. Итоговый запрос может вычислять общие итоги для нескольких столбцов.
  4. На вкладке Конструктор запросов в группе Показать и скрыть щелкните Итоги. В бланке появится строка Итог, а в ячейке столбца "Стоимость доставки" будет указано Группировка.
  5. Измените значение в ячейке строки Итог строки на Sum.
  6. Нажмите кнопку Выполнить , чтобы выполнить запрос и отобразить результаты в режиме таблицы.

Совет: Обратите внимание, что Access добавляет "SumOf" в начало имени поля, которое вы суммируете. Чтобы изменить заголовок столбца на более осмысленный, например Total Shipping, вернитесь в режим конструктора и щелкните поле столбца Плата за доставку в конструкторской сетке. Поместите курсор рядом с полем Плата за доставку и введите слова Total Shipping, а затем двоеточие, например: Total Shipping: Shipping Fee.

Вычисление общего итога за исключением нескольких записей

  1. На вкладке Создание в группе Запросы нажмите кнопку Конструктор запросов.
  2. Дважды щелкните таблицу Order и Order Details(Сведения о заказе).
  3. Добавьте поле "Дата заказа" из таблицы "Заказы" в первый столбец на бланке запроса.
  4. В строке Условие отбора первого столбца введите Date() -1. Это выражение исключает записи с текущей датой из вычисляемого итогового значения.
  5. Затем создайте столбец, который вычисляет объем продаж по каждой транзакции. Введите в строку Поле второго столбца на бланке следующее выражение: Общее значение продаж: (1-[Сведения о заказах].[Скидка]/100)*([Сведения о заказах].[Цена за единицу]*[Сведения о заказах].[Количество]) Убедитесь, что выражение ссылается на поля с типами данных "Число" или "Денежный". Если оно ссылается на поля с другими типами данных, то при попытке выполнения запроса появится сообщение Несоответствие типов данных в выражении условия отбора.
  6. На вкладке Конструктор запросов в группе Показать и скрыть щелкните Итоги. В бланке появится строка Итог, а в первом и втором столбцах будет указано Группировка.
  7. Во втором столбце измените значение в ячейке строки Итог строки на Sum. Функция Sum суммирует отдельные показатели продаж.
  8. Нажмите кнопку Выполнить , чтобы выполнить запрос и отобразить результаты в режиме таблицы.
  9. Сохраните запрос с именем Продажи за день.

Примечание: При следующем открытии запроса в Конструкторе можно заметить небольшие изменения в значениях, указанных для строк Поле и Итог в столбце "Общее значение продаж". Выражение заключено в функцию Sum, а в строке Итог выводится Выражение вместо функции Sum.

Вычисление итогов по группе с помощью итогового запроса

В этом разделе описано, как создать итоговый запрос для вычисления промежуточных итогов по группам данных. Помните, что по умолчанию итоговый запрос может включать только поле или поля, содержащие данные, по которым выполняется группировка, например поле "Категории", а также поля со значениями, которые вы хотите просуммировать, например поле "Продажи". Итоговые запросы не могут включать другие поля, описывающие значения внутри категории. Если вы хотите отобразить эти описательные данные, создайте второй запрос на выборку, объединяющий поля из итогового запроса с полями, содержащими дополнительные данные.

В этом разделе описано, как создавать итоговые запросы и запросы на выборку, если требуется определить объем продаж для каждого товара. В качестве примера используются следующие таблицы:

Таблицы "Товары"

Наименование товара

Эксперименты с C# (игра для всей семьи)

Игры и головоломки

Схема реляционной базы данных

Волшебная микросхема (500 деталей)

Игры и головоломки

Компьютерные маньяки и мифические животные

Упражнение для компьютерных гикеров! DVD-диск!

DVD-диски и фильмы

Неуловимая летающая пицца

Внешний дисковод гибких дисков 5.25'' (масштаб 1:4)

Модели для сборки, хобби

Недвижущаяся фигурка бюрократа

Модели для сборки, хобби

Таблица "Сведения о заказах"

Код сведений

Идентификатор заказа

Наименование товара

Цена за единицу

Недвижущаяся фигурка бюрократа

Упражнение для компьютерных гикеров! DVD-диск!

Компьютерные маньяки и мифические животные

Неуловимая летающая пицца

Внешний дисковод гибких дисков 5.25'' (масштаб 1:4)

Схема реляционной базы данных

Схема реляционной базы данных

Следующие действия также предполагают наличие отношения "один-ко-многим" между полями "Код товара" в таблицах "Заказы" и "Сведения о заказах" с таблицей "Заказы" на стороне "один" данного отношения.

Создание итогового запроса

  1. На вкладке Создание в группе Запросы нажмите кнопку Конструктор запросов.
  2. Выберите таблицы, с которыми вы хотите работать, и нажмите кнопку Добавить. Таблица появится в виде окна в верхней части конструктора запросов. При использовании примеров таблиц, указанных выше, добавьте таблицы "Товары" и "Сведения о заказах".
  3. Дважды щелкните поля таблицы, которые вы хотите использовать в запросе. Как правило, в запрос добавляются только поле группы и поле значения. Однако вы можете использовать вычисление вместо поля значения. Дальнейшие действия объясняют, как это сделать.
    1. Добавьте поле "Категория" из таблицы "Товары" в бланк запроса.
    2. Создайте столбец, вычисляющий объемы продаж для каждой транзакции, введя во второй столбец бланка запроса следующее выражение: Общее значение продаж: (1-[Сведения о заказах].[Скидка]/100)*([Сведения о заказах].[Цена за единицу]*[Сведения о заказах].[Количество]) Убедитесь, что поля, на которые ссылается выражение, имеют типы данных "Число" или "Денежный". Если оно ссылается на поля с другими типами данных, то при попытке переключения в режим таблицы появится сообщение об ошибке Несоответствие типов данных в выражении условия отбора.
    3. На вкладке Конструктор запросов в группе Показать и скрыть щелкните Итоги. В бланке появится строка Итог, в первом и втором столбцах которой будет указано Группировка.
    4. Во втором столбце измените значение в строке Итог строки на Sum. Функция Sum суммирует отдельные показатели продаж.
    5. Нажмите кнопку Выполнить , чтобы выполнить запрос и отобразить результаты в режиме таблицы.
    6. Оставьте запрос открытым, чтобы использовать его в следующем разделе. Использование условий в итоговом запросе Запрос, созданный в предыдущем разделе, включает все записи в базовых таблицах. Он не исключает никакие заказы при вычислении итогов и отображает итоги для всех категорий. Если вам нужно исключить некоторые записи, можно добавить условия в запрос. Например, вы можете пропустить транзакции с суммой менее 100 ₽ или вычислить итоги только по некоторым категориям товаров. В этом разделе описано использование трех типов условий:
    7. Условия, игнорирующие некоторые группы при вычислении итогов. Например, можно вычислить итоги только для категорий товаров "Видеоигры", "Картины и рамы" и "Спортивное снаряжение".
    8. Условия, скрывающие некоторые итоговые значения после их вычисления. Например, можно отобразить только итоговые значения свыше 150 000 ₽.
    9. Условия, исключающие некоторые записи при вычислении итогового значения. Например, можно исключить отдельные транзакции, в которых значение (Цена за единицу * Количество) меньше 100 ₽. На примере следующих действий объясняется, как добавить условия одно за другим и как это повлияет на результаты запроса. Добавление условий в запрос
    10. Откройте запрос из предыдущего раздела в Конструкторе. Для этого щелкните правой кнопкой мыши вкладку документа для запроса и выберите команду Конструктор. -или- Щелкните правой кнопкой мыши запрос в области навигации и выберите Конструктор.
    11. В строке Условия отбора столбца "Код категории" введите =Куклы Or Спортивное снаряжение or Картины и рамы.
    12. Нажмите кнопку Выполнить , чтобы выполнить запрос и отобразить результаты в режиме таблицы.
    13. Вернитесь в Конструктор и в строке Условия отбора столбца "Общее значение продаж" введите >100.
    14. Выполните запрос, чтобы просмотреть результаты, а затем переключитесь в Конструктор.
    15. Теперь добавьте условия для исключения отдельных транзакций, сумма которых меньше 100 ₽. Для этого необходимо добавить еще один столбец.

    Примечание: Невозможно указать третье условие для столбца "Общее значение продаж". Любое условие, указанное для этого столбца, будет применено к итоговому значению, а не к отдельным значениям.

    Примечание: При следующем открытии запроса в Конструкторе можно заметить небольшие изменения в бланке. Во втором столбце выражение в строке Поле будет заключено в функцию Sum, а в строке Итоги будет указано Выражение вместо функции Sum.

    Суммирование данных из нескольких групп с помощью перекрестного запроса

    Перекрестный запрос — это особый тип запросов, отображающий результаты в сетке, напоминающей лист Excel. Перекрестные запросы суммируют значения и затем группируют их по двум наборам фактов — один набор вдоль боковой стороны (заголовки строк) и второй набор вдоль верхней части (заголовки столбцов). На рисунке показана часть набора результатов для примера перекрестного запроса.

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

    При создании перекрестного запроса обычно включаются данные из нескольких таблиц, и всегда включаются три типа данных: данные, используемые в качестве заголовков строк, данные, используемые в качестве заголовков столбцов и значения, которые вы хотите просуммировать или с которыми необходимо произвести другие вычисления.

    Инструкции в данном разделе предполагают использование следующих примеров таблиц:

    Таблица "Заказы"

    Дата заказа

    Дата отгрузки

    Город назначения

    Стоимость доставки

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *