Сумма строк в access

Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке).

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

В этой статье

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

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

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

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

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

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

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

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

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

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

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

В области навигации щелкните отчет правой кнопкой мыши и выберите команду Макет.

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

На вкладке Конструктор в группе Группировка и итоги щелкните Итоги.

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

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

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

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

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

В области навигации щелкните отчет правой кнопкой мыши и выберите команду Режим конструктора.

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

На вкладке Конструктор в группе Группировка и итоги щелкните Итоги.

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

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

Читайте также:  Equation краны шаровые отзывы

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

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

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

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

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

На вкладке Конструктор в группе Элементы управления щелкните Поле.

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

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

Выделите текстовое поле. Если страница свойств не отображается, нажмите клавишу F4.

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

Например введите РасширеннаяЦена для поля "РасширеннаяЦена" или на уровне группы введите выражение =Sum([РасширеннаяЦена]).

Щелкните ячейку свойства Сумма с накоплением (Running Sum).

Щелкните стрелку раскрывающегося списка в поле свойства и выполните одно из указанных ниже действий.

Если вы хотите, чтобы сумма обнулялась при достижении следующего уровня группировки, выберите в списке Для группы.

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

Закройте страницу свойств.

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

Advanced: требуется написание экспертов, взаимодействие и многоязыковые навыки.

Эта статья относится к файлу базы данных Microsoft Access (. mdb) или к файлу базы данных Microsoft Access (ACCDB).

Сводка

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

Note (Примечание ) Вы видите демонстрацию методики, используемой в этой статье, в примере файла QrySmp00. exe.

Дополнительные сведения

Способ 1

Первый метод использует функцию DSum и условия в запросе для создания суммы с накоплением с течением времени. Функция DSum суммирует текущую запись и все предыдущие записи. Когда запрос перемещается на следующую запись, функция DSum выполняется снова и обновляет общий итог.

Следующий пример запроса использует таблицу Orders из учебной базы данных Northwind для создания суммы стоимости доставки за каждый месяц 1997. В целях повышения производительности примеры данных ограничены одним годом. Так как функция DSum выполняется один раз для каждой записи в запросе, для завершения обработки запроса может потребоваться несколько секунд (в зависимости от скорости компьютера). Чтобы создать и запустить этот запрос, выполните указанные ниже действия.

Откройте учебную базу данных Northwind.

Читайте также:  Установка винтов на квадрокоптер

Создайте новый запрос на выборку и добавьте таблицу Orders .

В меню вид выберите пункт итоги.

Note (Примечание ) В Access 2007 щелкните итоги в группе Показать/скрыть на вкладке конструктор .

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

В выражении в поле поле отображается и сортируется часть года поля OrderDate.

Во втором столбце бланка запроса введите в поле поле следующее выражение и выберите следующие параметры для полей "Итого", "Сортировать" и "Показать":

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

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

Note (Примечание ) В следующем примере знак подчеркивания (_) в конце строки используется в качестве символа продолжения строки. При повторном создании этого примера удалите знак подчеркивания в конце строки.

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

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

Выражение в поле поля отображает каждый месяц в текстовом формате, например Январь, фев, Мар и т. д.

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

Выражение в поле поля фильтрует набор записей запроса, чтобы включить данные только из 1997.

Выполните запрос. Обратите внимание, что в поле Рунтот отображаются следующие записи с накопленной суммой:

Способ 2

Второй метод использует итоговый запрос с функцией DSum () для создания итоговой суммы по группе.

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

Откройте учебную базу данных Northwind. mdb.

Создайте новый запрос на выборку и добавьте таблицу Orders.

В Виевмену щелкните итоги.

Note (Примечание ) В Access 2007 щелкните итоги в группе Показать/скрыть на вкладке конструктор .

В первом столбце бланка запроса добавьте следующее поле в поле поле и выберите следующие параметры для полей "Итого" и "Показать":

В этом поле данные группируются по КодСотрудника.

Во втором столбце бланка запроса добавьте следующее поле в поле поле и выберите следующие параметры для полей "Итого" и "Показать":

Это поле суммирует данные доставки.

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

Note (Примечание ) В следующем примере знак подчеркивания (_) в конце строки используется в качестве символа продолжения строки. При повторном создании этого примера удалите знак подчеркивания в конце строки.

Выражение в поле поле использует функцию DSum () для суммирования поля фрахта, когда EmployeeID меньше текущего Емпалиас, а затем форматирует поле в долларах.

Выполните запрос. Обратите внимание, что в поле Рунтот отображаются следующие записи с накопленной суммой:

Читайте также:  Символ рубля на клавиатуре mac

Люди! Помогите сделать простейший запрос.
Имеется таблица: Таблица1 формата:
Наименование заказа | Сумма | Общая сумма всех заказов
первый 10р.
второй 20р.
третий 30р.

Скажите как мне сложить строки в столбце Сумма? Чтобы вывести результат "Общая сумма всех заказов" = 60р.

И таблица со временем будет дописываться. т.е. появится и 100й заказ. соответственно у 100го заказа своя сумма. Надо чтоб "Общая сумма всех заказов" пересчитывалась автоматически.

Заранее спасибо за помощь.

По указанным данным это невозможно.

Чем определяется сортировка строк в таблице?

Цитата (Akina @ 23.11.2007, 17:51)
По указанным данным это невозможно.

Чем определяется сортировка строк в таблице?

Вот в Excel это ведь просто делается. К примеру команда =СУММ(A1:A100) — т.е. получим суммы по 100 ячейкам таблице.
Почему же в БД такого не сделать?

Каждому наименованию заказа(текст) соответствует соответствующийц номер(число). Собственно эти числа(номера заказов) идут по порядку. Т.е. пример:

1 | сумка | 100р. |
2 | покрышка | 50р. |
.
100 | книга | 60р. |
.

Как мне посчитать общую сумму всех заказов(1. 100. )?

mivang, В Excel существует физический порядок записей в таблице. Который определяет, что выше и что ниже. В реляционных БД такого порядка НЕ СУЩЕСТВУЕТ. Порядок определяется заданной в запросе сортировкой, и при ее отсутствии может быль ЛЮБЫМ.

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

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

В таблице имеется поле №заказа. Т.е. общий вид примерно такой:

№заказа | Наименование заказа | Сумма заказа |
1 | сумка | 10rur |
2 | krushka | 20rur |
3 | banka | 30rur |
. | . |***|

Теперь есть привязка? Или я опять чего то не понял. 🙁 Как найти общую сумму всех заказов?

Цитата
Цитата (mivang @ 23.11.2007, 19:39 )
Теперь есть привязка?

SELECT Таблица1.[№ заказа],
Таблица1.[Наименование заказа],
Таблица1.[Сумма заказа],
Sum(q1.[Сумма заказа]) AS [Общая сумма всех заказов]

[
SELECT t1.[№ заказа],
t1.[Наименование заказа],
t1.[Сумма заказа],
t2.[№ заказа]
FROM Таблица1 AS t1,
Таблица1 AS t2
WHERE (((t1.[№ заказа])>=[t2].[№ заказа]))

INNER JOIN Таблица1

ON q1.t1.[№ заказа] = Таблица1.[№ заказа]

GROUP BY Таблица1.[№ заказа], Таблица1.[Наименование заказа], Таблица1.[Сумма заказа];

Выводится ошибка: Недопустимое использование скобок с именем ‘SELECT t1.[№ заказа’. :(( В чём проблема?

Добавлено позднее:
Народ! Готов выслать БДку. Если сделаете. С меня оплата в WM. ОЧЕНЬ СРОЧНО(в течении 1 часа)

Предположим у нас имеется следующая таблица:

таблица: tblOrders
поле тип
idOrders Счетчик
fldName Текстовый
fldSumma Денежный

Тогда запрос будет примерно таким:

Sum-fldSumma это псевдоним выражения Sum(tblOrders.fldSumma). В итоге мы получаем таблицу с одной ячейкой. Вот для разъяснения написал пример кода на VS 2005, без обработки исключений, чтобы было понятнее.

Для начала нужно создать проект, и добавить туда кнопку GetSumButton и текстовое поле SumTextBox, то есть поменять их имена. Имя формы заменить на MainForm и заменить её код нижестоящим.

Чтобы пример заработал нужно в My Project >> Settings добавить строку с именем dbConnectionString следующего содержания Prov >

Цитата
Оцените статью
Добавить комментарий

Adblock
detector