Как сделать итог в access
Суммирование в отчетах
Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке).
В любом отчете Access, содержащем числа, можно использовать итоги, средние значения, проценты или суммы с накоплением, чтобы сделать данные более понятными. В этой статье рассказывается, как добавить такие элементы в отчет.
В этой статье
Типы агрегатов, которые можно добавить в отчет
В следующей таблице приведены типы агрегатных функций в Access, которые можно добавить в отчет.
Суммирует элементы в столбце.
Определяет среднее значение всех элементов столбца.
Подсчитывает количество элементов в столбце.
Возвращает элемент, имеющий наибольшее (числовое или по алфавиту) значение в столбце.
Возвращает элемент, имеющий наименьшее (числовое или по алфавиту) значение в столбце.
Показывает, насколько значения в столбце отклоняются от среднего значения.
Вычисляет дисперсию для всех значений в столбце.
Добавление суммы или другого агрегата в режиме макета
Режим макета предоставляет наиболее быстрый способ добавления сумм, средних значений и других агрегатов в отчет.
В области навигации щелкните отчет правой кнопкой мыши и выберите команду Макет.
Щелкните поле, для которого вы хотите добавить агрегатное выражение. Например, если необходимо добавить сумму в столбец чисел, щелкните одно из чисел в этом столбце.
На вкладке Конструктор в группе Группировка и итоги щелкните Итоги.
Выберите тип агрегатной функции, которую вы хотите добавить в поле.
Access добавляет текстовое поле в колонтитул отчета и задает в качестве значения его свойства Данные (Control Source) выражение, которое выполняет нужное вычисление. Если в отчете есть уровни группировки, Access также добавит текстовое поле, которое выполняет такие же вычисления в каждом разделе примечания группы.
Дополнительные сведения о создании уровней группировки в отчетах см. в статье Создание отчета с группировкой или сводного отчета.
Добавление суммы или другого агрегата в режиме конструктора
Конструктор позволяет точнее настраивать размещение и внешний вид итоговых значений. В сгруппированных отчетах можно поместить итоги и другие агрегаты в заголовок или примечание каждой группы. Агрегаты уровня отчета можно поместить в заголовок или колонтитул отчета.
В области навигации щелкните отчет правой кнопкой мыши и выберите команду Режим конструктора.
Щелкните поле, для которого вы хотите добавить агрегатное выражение. Например, если необходимо добавить сумму в столбец чисел, щелкните одно из чисел в этом столбце.
На вкладке Конструктор в группе Группировка и итоги щелкните Итоги.
Выберите тип агрегатной функции, которую вы хотите добавить в поле.
Access добавляет текстовое поле в колонтитул отчета и задает в качестве значения его свойства Данные (Control Source) выражение, которое выполняет нужное вычисление. Если в отчете есть уровни группировки, Access также добавит текстовое поле, которое выполняет такие же вычисления в каждом разделе примечания группы.
Дополнительные сведения о создании уровней группировки в отчетах см. в статье Создание отчета с группировкой или сводного отчета.
Вычисление сумм с накоплением (сумм с нарастающим итогом)
В Access можно создавать в отчетах суммы с накоплением. Сумма с накоплением — это сумма значений из всех записей группы или даже отчета.
Создание суммы с накоплением
В области навигации щелкните отчет правой кнопкой мыши и выберите команду конструктор .
На вкладке Конструктор в группе Элементы управления щелкните Поле.
Щелкните раздел подробностей, заголовок или примечание группы, чтобы создать текстовое поле.
Если рядом с текстовым полем отображается подпись, удалите ее или замените текст в ней на более осмысленный.
Выделите текстовое поле. Если страница свойств не отображается, нажмите клавишу F4.
Откройте вкладку Данные. В ячейке свойства Данные (Control Source) введите имя поля или выражение, для которого вы хотите создать сумму с накоплением.
Например введите РасширеннаяЦена для поля «РасширеннаяЦена» или на уровне группы введите выражение =Sum([РасширеннаяЦена]).
Щелкните ячейку свойства Сумма с накоплением (Running Sum).
Щелкните стрелку раскрывающегося списка в поле свойства и выполните одно из указанных ниже действий.
Если вы хотите, чтобы сумма обнулялась при достижении следующего уровня группировки, выберите в списке Для группы.
Если вы хотите, чтобы сумма накапливалась до конца отчета, выберите в списке Для всего.
Закройте страницу свойств.
Примечание: Если для свойства Сумма с накоплением (Running Sum) задано значение Для всего, то общее итоговое значение можно повторить в колонтитуле отчета. Создайте в нем поле и задайте в качестве значения его свойства Данные (Control Source) имя поля, в котором вычисляется сумма с накоплением, например =[СуммаЗаказа].
Как сделать итог в access?
Рано или поздно, но любой разработчик или профессиональный аналитик сталкивается с ситуацией, что проект перерастает возможности Excel и необходимо часть работы переложить с электронной таблицы на реляционную базу данных. В случае MS Office это, понятное дело, — MS Access. В виду этого на моём сайте будут появляться материалы и об Access.
Начну с малоизвестных широкой публике примеров использования доменных агрегатных функциях в запросах, при помощи которых можно делать интересные вещи. Данный материал предназначен пользователям, которые уже освоили основные виды запросов в MS Access. Сегодня обсудим 2 задачи:
Подсчёт процентной величины в записях запроса относительно сумманой величины по всему набору данных
Подсчёт в запросе какой-либо величины нарастающим итогом
Термины
Доменные агрегаты — это функции, такие как: Dsum, Dcount, Davg, Dmin, Dmax, Dfirst, Dlast, DLookup и некоторые другие. Данные функции производят какую-либо групповую операцию над всем набором данных (доменом) и возвращают результат в виде числа. Например, вызов такой функции DSUM(«», «Sales») вернёт нам итоговоую сумму по полю Amount в таблице Sales.
Подсчёт процентной величины
В этом примере мы подсчитываем сумму проданного товара (поле ) по каждому коду продукта (поле ), а также процентную величину, которую занимает сумма по каждому коду относительно суммы по всем кодам продуктов.
Запрос в конструкторе выглядит следующим образом:
можно и так — без промежуточного поля
Обратите внимание, что конструкция DSUM будет возвращать в каждую запись набора одно и тоже число
Подсчёт величины нарастающим итогом
Здесь мы в поле подсчитываем нарастающим итогом количество заказов с группировкой по дате заказа (поле ). То есть каждый последующий день включает в себя количество заказов за эту дату плюс все предыдущие даты.
Запрос в конструкторе:
Обратите внимание на то, как офомлен третий параметр в функции Dcount. Это выстраданный синтаксис, так как функция Dcount работает с датами только в стандартном формате вида #mm/dd/yyyy#.
В англоязычных книгах рекомендуют следующий формат DCount(«»,»Orders»,» OrderDate] & «#»), но он не работает с нашими региональными настройками, поэтому — только так, как показано.
Трюк с нарастающим итогом, как не трудно догадаться, кроется в знаке меньше или равно и динамическим формированием условия выборки.
Еще одним простым и быстрым способом создания отчетов является использование Мастера отчетов. С его помощью можно создавать отчеты (от самых простых до включающих подчиненные отчеты), содержащие поля из одной или более таблиц или запросов. Использование Мастера отчетов позволяет очень быстро познакомиться со многими основными средствами разработки отчетов, предоставляемыми Access 2002. Процесс создания отчетов, более сложных, чем позволяет мастер, описан в гл. 10.
Чтобы более наглядно представить процесс создания отчета с помощью мастера, опишем процедуру создания отчета на основе сразу нескольких таблиц: «Товары» (Products), «Поставщики» (Suppliers) и «Типы» (Categories) базы данных «Борей» (Northwind). В отчете будет представлено текущее количество товаров на складе по категориям.
Чтобы создать простой отчет:
Рис. 6.3. Первое диалоговое окно Мастера отчетов
Если на каком-либо шаге создания отчета при помощи Мастера отчетов была допущена ошибка или возникла необходимость изменения каких-либо параметров, то для возвращения к предыдущему шагу нажмите кнопку Назад (Back). Кроме того, в любой момент можно нажать кнопку Отмена (Cancel) для отказа от создания отчета и возвращения к окну базы данных.
Можно таким способом добавлять в создаваемый отчет поля из разных таблиц, которые связаны между собой в схеме данных.
Рис. 6.4. Второе диалоговое окно Мастера отчетов
Рис. 6.5. Предупреждение Мастера отчетов
Если потребуется отменить добавление поля группировки, нажмите кнопку «
Создание запросов для БД Подписка
Задание
Для БД Подписка создать следующие запросы:
1. Общая сумма выручки
2. Количество изданий, которые выписал каждый из подписчиков
3. Количество подписчиков каждого издания
4. Самое популярное издание с количеством подписчиков
5. Самое непопулярное издание с количеством подписчиков
6. Подписчик с максимальным количеством выписанных изданий
7. Сколько заплатил каждый из подписчиков
Выполнение
Запрос 1.Общая сумма выручки следует создавать в самую последнюю очередь. Замечание.
Предполагается, что каждый подписчик выписывает необходимое издание только один раз.
Создание запроса «2 Количество изданий которые выписал каждый из подписчиков» (в названии запроса не используйте точки и запятые):
В результате необходимо получить таблицу из двух полей, в первом из которых перечислены фамилии всех имеющихся подписчиков, а во втором – указано число выписанных изданий для каждого из них.
2.1. В качестве исходных данных добавим в поле Запроса (Контекстное меню Добавить Таблицу…) Таблицы Подписчики и Подписка
2.2. Выберем 2 поля: Фамилия из Таблицы Подписчики и Код издания из Таблицы Подписка
2.3. Добавим опцию Групповые операции
2.4. Для поля Фамилия оставим операцию Группировка (то есть объединение всех одинаковых записей в одну), а для поля Код издания выберем операцию Count (Количество значений).
Выполним запрос (Перейдем в режим Таблицы или нажмем иконку «Красный восклицательный знак«).
В результате в левой колонке будут перечислены фамилии всех подписчиков (каждая будет упомянута только один раз), а в правой – количество изданий, которые выписал каждый из них (то есть число упоминаний уникальных кодов изданий в соответствующих каждой из фамилий записях).
Создание запроса «3 Количество подписчиков каждого издания «:
В результате необходимо получить таблицу из двух полей, в первом из которых перечислены все упомянутые издания, а во втором – указано число подписчиков для каждого из них.
3.1. В качестве исходных данных добавим в поле Запроса (Контекстное меню Добавить Таблицу…) Таблицы Издания и Подписка
3.2. Выберем 2 поля: Название издания из Таблицы Издания и Код подписчика из Таблицы Подписка
3.3. Добавим опцию Групповые операции
3.4. Для поля Название издания оставим операцию Группировка (То есть объединение всех одинаковых записей в одну), а для поля Код подписчика выберем операцию Count (Количество значений).
Выполним запрос. В результате в левой колонке будут перечислены названия всех упомянутых изданий (каждое будет упомянуто только один раз), а в правой – количество их подписчиков.
Создание запроса «4 Самое популярное издание с количеством подписчиков»
В результате необходимо получить таблицу из двух полей, в первом из которых упомянуто одно издание (или несколько, если у двух или нескольких изданий одинаковое количество подписчиков и оно максимальное), а во втором – указано его количество подписчиков.
4.1. Создадим вспомогательный запрос,– 4 1 Максимальное количество подписчиков для изданий, который в результате выдает только одно число – количество подписчиков у самого популярного издания.
Для этого добавим в поле Запроса (Контекстное меню Добавить Таблицу…) Запрос 3 Количество подписчиков каждого издания «, выберем только одно поле Count-Код подписчика (Количество подписчиков), добавим Групповые операции и выберем Max (Максимальное значение).
4.2. В качестве исходных данных для основного запроса выберем опять же запрос 3 Количество подписчиков каждого издания и только что созданный вспомогательный запрос 4 1 Максимальное количество подписчиков для изданий.
4.3. Выберем оба поля запроса 3 Количество подписчиков каждого издания – Названия издания и Count-Код подписчика (Количество подписчиков)
4.4. Для поля Count-Код подписчика (Количество подписчиков) с помощью Построителя выражений в ячейке Условие отбора введем условие – равенства максимальному количеству подписчиков для изданий:
Выполним запрос. В результате в левой колонке будет приведено название самого популярного издания (или нескольких изданий), а в правой будет выведено количество его (их) подписчиков.
Создание запроса «5 Самое непопулярное издание с количеством подписчиков»
В результате необходимо получить таблицу из двух полей, в первом из которых упомянуто одно издание (или несколько, если у двух или нескольких изданий одинаковое количество подписчиков и оно минимально), а во втором – указано количество его подписчиков.
5.1. Данный запрос может быть получен аналогично предыдущему, с той лишь разницей, что в качестве вспомогательного будет использован запрос 5 1 Минимальное количество подписчиков для изданий, который в результате выдает только одно число – количество подписчиков у самого непопулярного издания.
Для этого добавим в поле Запроса (Контекстное меню Добавить Таблицу…) Запрос 3 Количество подписчиков каждого издания «, выберем только одно поле Count-Код подписчика (Количество подписчиков), добавим Групповые операции и выберем Min (Минимальное значение).
Создание запроса «6 Подписчик с максимальным количеством выписанных изданий»
В результате необходимо получить таблицу из двух полей, в первом из которых упомянута фамилия одного (или нескольких, если у двух или нескольких подписчиков одинаковое количество выписанных изданий и оно максимальное), а во втором – указано его количество выписанных изданий.
6.1. Создадим вспомогательный запрос,– 6 1 Максимальное количество выписанных одним подписчиком изданий, который в результате выдает только одно число – количество изданий, которое выписал самый «читающий» подписчик.
Для этого добавим в поле Запроса (Контекстное меню Добавить Таблицу…) Запрос 2 Количество изданий которые выписал каждый из подписчиков, выберем только одно поле Count-Код издания (Количество изданий), добавим Групповые операции и выберем Max (Максимальное значение).
6.2. В качестве исходных данных для основного запроса выберем опять же запрос 2 Количество изданий которые выписал каждый из подписчиков и только что созданный вспомогательный запрос 6 1 Максимальное количество выписанных одним подписчиком изданий.
6.3. Выберем оба поля запроса 2 Количество изданий которые выписал каждый из подписчиков – Фамилия и Count-Код издания (Количество изданий)
6.4. Для поля Count Count-Код издания (Количество изданий) с помощью Построителя выражений в ячейке Условие отбора введем условие – равенства максимальному количеству выписанных одним подписчиком изданий:
Выполним запрос. В результате в левой колонке будет приведена фамилия (фамилии) самого «читающего» подписчика, а в правой будет выведено количество выписанных им изданий.
Создание запроса «7 Сколько заплатил каждый из подписчиков «:
В результате необходимо получить таблицу из двух полей, в первом из которых перечислены фамилии всех подписчиков, а во втором – указана сумма денег, которую выплатил за подписку каждый из них.
Указание. Сумма выплаченных каждым из подписчиков денег может быть получена как сумма произведений числа месяцев, на которое подписчик выписал издание на цену подписки за месяц.
7.1. В качестве исходных данных добавим в поле Запроса (Контекстное меню Добавить Таблицу…) все три Таблицы: Издания, Подписчики и Подписка
7.2. Выберем поле: Фамилия из Таблицы Подписчики
7.3. В качестве второго поля с помощью Построителя выражений построим произведение – Срок подписки (в месяцах) из таблицы Подписка умножить на Цена подписки на месяц из Таблицы Издания:
7.4. Добавим опцию Групповые операции
7.5. Для поля Фамилия оставим операцию Группировка (то есть объединение всех одинаковых записей в одну), а для поля Выражение1 выберем операцию Sum (Сумма).
Выполним запрос. В результате в левой колонке будут приведены фамилии подписчиков, а в правой будут выведены суммы выплаченных ими средств.
Создание запроса «1 Общая сумма выручки»
В результате необходимо получить только одно число – сумму денег, выплаченных всеми подписчиками.
8.1. В качестве исходных данных добавим в поле Запроса (Контекстное меню Добавить Таблицу…) Запрос 7 Сколько заплатил каждый из подписчиков
8.2. Выберем единственное поле Выражение1 (Сумму выплаченных каждым из подписчиков средств)
8.3. Добавим опцию Групповые операции
8.4. Для поля Выражение1 (Сумма выплаченных каждым из подписчиков средств) выберем операцию Sum(Суммирование).
Выполним запрос. В результате получим число – общую сумму выручки.
Microsoft Access представляет собой систему управления базами данных. В этой программе вы можете создать различные запросы для отбора данных по определенным критериям, в том числе и вычисляемые.