Вычисляемые поля в запросах Access. Подсчет данных при помощи запроса Как посчитать сумму в access




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

В этой статье

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

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

Вычисление

Описание

Функция

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

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

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

Максимальное значение

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

Минимальное значение

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

Стандартное отклонение

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

Дисперсия

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

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

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

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

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

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

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

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

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

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

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

Выбор типа итога

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

Давайте сделаем так, чтобы в этом примере таблица отображала сумму значений в столбцах Цена покупки и Купленные товары и общее количество для столбца Позиция , как показано на изображении ниже.

Как работает "Сумма" и другие агрегатные функции

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

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

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

Функция

Описание

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

Доступна в строке "Итог"?

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

Количество значений

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

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

Максимальное значение

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

, "Дата и время"

Минимальное значение

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

"Числовой", "Действительное", "Денежный", "Дата и время"

Стандартное отклонение

"Числовой", "Действительное", "Денежный"

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

"Число", "Действительное", "Денежный"

Дисперсия

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

"Числовой", "Действительное", "Денежный"

Дополнительные сведения о функциях "Стандартное отклонение" и "Дисперсия"

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

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

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

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

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

8 ответов

По указанным данным это невозможно.Чем определяется сортировка строк в таблице?
Вот в Excel это ведь просто делается. К примеру команда =СУММ(A1:A100) - т.е. получим суммы по 100 ячейкам таблице.Почему же в БД такого не сделать?Каждому наименованию заказа(текст) соответствует соответствующийц номер(число). Собственно эти числа(номера заказов) идут по порядку. Т.е. пример:1 | сумка | 100р. |2 | покрышка | 50р. |...100 | книга | 60р. |...Как мне посчитать общую сумму всех заказов(1...100...)?

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

Хотите чтобы вопрос имел смысл - четко укажите критерий, на основе которого можно устновить порядок следования записей. В проведенном примере это, например, номер строки. Однако в структуре показанной таблицы такого поля нет.
В таблице имеется поле №заказа. Т.е. общий вид примерно такой:№заказа | Наименование заказа | Сумма заказа |1 | сумка | 10rur |2 | krushka | 20rur |3 | banka | 30rur |... | ... |***|Теперь есть привязка? Или я опять чего то не понял... :(Как найти общую сумму всех заказов?
Теперь есть привязка?
Да. SELECT Таблица1.[№ заказа], Таблица1.[Наименование заказа], Таблица1.[Сумма заказа], Sum(q1.[Сумма заказа]) AS [Общая сумма всех заказов]FROM (SELECT t1.[№ заказа], t1.[Наименование заказа], t1.[Сумма заказа], t2.[№ заказа] FROM Таблица1 AS t1, Таблица1 AS t2 WHERE (((t1.[№ заказа])>=.[№ заказа]))) AS q1 INNER JOIN Таблица1 ON q1.t1.[№ заказа] = Таблица1.[№ заказа]GROUP BY Таблица1.[№ заказа], Таблица1.[Наименование заказа], Таблица1.[Сумма заказа];
SELECT Таблица1.[№ заказа], Таблица1.[Наименование заказа], Таблица1.[Сумма заказа], Sum(q1.[Сумма заказа]) AS [Общая сумма всех заказов]FROM [ SELECT t1.[№ заказа], t1.[Наименование заказа], t1.[Сумма заказа], t2.[№ заказа] FROM Таблица1 AS t1, Таблица1 AS t2 WHERE (((t1.[№ заказа])>=.[№ заказа]))]. AS q1 INNER JOIN Таблица1 ON q1.t1.[№ заказа] = Таблица1.[№ заказа]GROUP BY Таблица1.[№ заказа], Таблица1.[Наименование заказа], Таблица1.[Сумма заказа];
Выводится ошибка: Недопустимое использование скобок с именем "SELECT t1.[№ заказа". :((В чём проблема?Добавлено через 3 минуты и 33 секунды Народ! Готов выслать БДку. Если сделаете. С меня оплата в WM. ОЧЕНЬ СРОЧНО(в течении 1 часа)

Предположим у нас имеется следующая таблица:таблица: tblOrders поле тип idOrders СчетчикfldName ТекстовыйfldSumma ДенежныйТогда запрос будет примерно таким: SELECT Sum(tblOrders.fldSumma) AS FROM tblOrders; Sum-fldSumma это псевдоним выражения Sum(tblOrders.fldSumma) . В итоге мы получаем таблицу с одной ячейкой. Вот для разъяснения написал пример кода на VS 2005, без обработки исключений, чтобы было понятнее.Для начала нужно создать проект, и добавить туда кнопку GetSumButton и текстовое поле SumTextBox , то есть поменять их имена. Имя формы заменить на MainForm и заменить её код нижестоящим. Option Strict OnOption Explicit OnImports System.Data.OleDbPublic Class MainForm """

Получить сумму Private Function GetSumma() As Decimal Using cn As New OleDbConnection(My.Settings.dbConnectionString) cn.Open() Dim cmd As OleDbCommand = cn.CreateCommand() cmd.CommandText = "SELECT Sum(tblOrders.fldSumma) AS FROM tblOrders;" Return CDec(cmd.ExecuteScalar()) End Using End Function """ Обработка события Click кнопки GetSumButton Private Sub GetSumButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GetSumButton.Click " Выводим сумму в текущей валюте Me.SumTextBox.Text = FormatCurrency(GetSumma()) End SubEnd Class Чтобы пример заработал нужно в My Project >> Settings добавить строку с именем dbConnectionString следующего содержания Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\orders.mdb . Прикрепить к проекту базу данных MS Access или просто скопировать её в директорию с исполняемым файлом, внутри которой должна быть создана нужная таблица (желательно с данными).

Пример вычисления общей суммы в таблице базы данных Microsoft Access без использования SQL -запроса

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

В данной задаче, на примере таблицы Microsoft Access , вычисляется общая сумма без использования SQL -запроса. Дополнительно вычисляется среднее арифметическое значений ячеек заданного столбца.

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

Условие задачи

В результате формируется строка ConnectionString в компоненте ADOConnection1 (рис. 2). В этой строке указывается тип поставщика данных и полный путь к файлу базы данных.

Рис. 2. Строка ConnectionString компонента ADOConnection1

  1. Настройка компонент ADOConnection1, ADOTable1, DataSource1, DBGrid1.

Чтобы отобразить таблицу базы данных, нужно настроить следующие свойства компонент:

– в компоненте ADOConnection1 свойство LoginPrompt = “false” (рис. 3) (отмена запроса имени пользователя и пароля для доступа к базе данных);

– в компоненте ADOTable1 свойство Connection = “ADOConnection1” (рис. 4);

– в компоненте DataSource1 свойство DataSet = “ADOTable1” (рис. 5);

– в компоненте DBGrid1 свойство DataSource = “DataSource1” (рис. 6);

– в компоненте ADOTable1 свойство TableName = “Worker” (рис. 7);

– в компоненте DBGrid1 из свойства Options установить опцию dgEditing = false (запрет внесения данных в ячейки таблицы непосредственно из сетки DBGrid1) (рис. 8).

Рис. 3. Свойство LoginPrompt компонента ADOConnection1

Рис. 4. Свойство Connection компонента ADOTable1

Рис. 5. Свойство DataSet компонента DataSource1

Рис. 6. Свойство DataSource компонента DBGrid1

Рис. 7. Свойство TableName компонента ADOTable1

Рис. 8. Опция dgEditing свойства Options компонента DBGrid1

  1. Активизация таблицы.

Для отображения данных в таблице нужно выполнить следующие действия (рис. 9):

– выделить таблицу ADOTable1;

– свойство Active = true.

После этого данные таблицы отобразятся в DBGrid1.

Рис. 9. Свойство Active компонента ADOTable1

  1. Настройка размеров компонент и формы.

Следующим шагом нужно настроить размеры и позиции компонент на форме, как изображено на рисунке 10.

Рис. 10. Основная форма приложения

  1. Скрытие поля ID_Worker в DBGrid1.

Чтобы отображаемая таблица имела корректный вид, нужно скрыть поле ID_Worker, которое есть ключевым полем. В таблице это поле является счетчиком. При добавлении новой записи значение в этом поле формируется автоматически (увеличивается на 1).

Сначала нужно вызвать редактор полей (“Fields Editor… ”) компонента ADOTable1 из контекстного меню (рис. 11).

Рис. 11. Вызов редактора полей компонента ADOTable1

Откроется окно Form1.ADOTable1. В этом окне, с помощью мышки, нужно вызвать контекстное меню. В контекстном меню выбрать команду «Add All fields ».

В результате, окно редактора примет вид, как изображено на рисунке 12.

Рис. 12. Редактор полей

В редакторе полей Form1.ADOTable1 отображаются все поля таблицы Worker. Чтобы удалить поле ID_Worker, нужно на строке ID_Worker сделать клик правой кнопкой «мыши» и в контекстном меню выбрать команду Delete. После этого можно закрыть редактор.

В результате, в таблице DBGrid1 будет отображено только два поля (рис. 13).

Рис. 13. Отображение таблицы Worker с двумя полями

  1. Установление фильтра вывода с двумя знаками после запятой в поле Salary.

Для того, чтобы в поле Salary корректно отображалось значение суммы (2 знака после запятой) нужно выполнить следующие действия.

Выделить компонент ADOTable1. Вызвать редактор полей “Fields Editor… ” так как описано в пункте 6. В результате откроется список из двух полей Name и Salary. Выделить строку с названием Salary. В Object Inspector будет активирован объект с именем ADOTable1Salary.

Следующим шагом нужно в Object Inspector в поле “Display Format ” установить значение «0.00 » (рис. 14).

Рис. 14. Установление формата вывода в поле Salary объекта ADOTable1

После выполненных действий, поле Salary в таблице будет выводиться с точностью 2 знака после запятой.

  1. Ввод внутренних переменных.

Для сохранения данных суммы и среднего арифметического нужно ввести в текст класса формы TForm1 внутренние переменные с именами sum и avg.

Переменные вводятся в раздел private. Фрагмент кода класса TForm1 формы имеет следующий вид:

... type TForm1 = class (TForm) ADOConnection1: TADOConnection; DataSource1: TDataSource; ADOTable1: TADOTable; DBGrid1: TDBGrid; StaticText1: TStaticText; StaticText2: TStaticText; StaticText3: TStaticText; ADOTable1Name: TWideStringField; ADOTable1Salary: TFloatField; procedure FormActivate(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); private { Private declarations } sum:real; // сумма avg:real; // среднее арифметическое public { Public declarations } end ; ...
  1. Программирование события активизации формы.

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

Поэтому, нужно запрограммировать событие OnActivate формы Form1. Событие OnActivate вызовется в момент активизации формы после запуска программы на выполнение.

Пример программирования события в Delphi подробно описан .

В нашем случае обработчик события имеет следующий вид:

procedure TForm1.FormActivate(Sender: TObject); var f:TField; // дополнительная переменная типа «Поле» begin // 1. Проверка, есть ли записи в таблице if ADOTable1.RecordCount = 0 then exit ; // 2. Отключить визуализацию в DBGrid1 ADOTable1.DisableControls; // 3. Перебор всех записей таблицы Worker // 3.1. Перейти на первую запись ADOTable1.First; // 3.2. Обнулить сумму sum:= 0; // 3.3. Взять значение зарплаты из первой записи f:= ADOTable1.FieldByName("Salary"); // 3.4. Цикл перебора записей в таблице // - проверка на достижение конца таблицы while ADOTable1.Eof<>true do begin // 3.4.1. Увеличить сумму sum:= sum + f.Value; // 3.4.2. Перейти на следующую запись ADOTable1.Next; end ; // 4. Вычислить среднее арифметическое avg:= sum / ADOTable1.RecordCount; // 5. Заполнить строки типа TStaticText StaticText1.Caption:= "Сумма: " + FloatToStr(sum, ffFixed, 8, 2); StaticText2.Caption:= "Средняя зарплата: " + FloatToStr(avg, ffFixed, 8, 2); // 6. Включить визуализацию в DBGrid ADOTable1.EnableControls; end ;

Объясним некоторые фрагменты кода.

Методы DisableControls и EnableControls отвечают за отключение и включение подключенных к набору данных (базы данных) визуальных элементов управления. Вызов метода DisableControls позволяет значительно ускорить процесс перебора записей, поскольку заставит приложение не тратить время на перерисовывание содержимого элемента управления DBGrid1 с каждым изменением записи.

Свойство

ADOTable1.RecordCount

указывает число записей в таблице.

ADOTable1.First

устанавливает активным первую запись таблицы.

ADOTable1.FieldByName()

позволяет получить объект типа TField для заданного поля. Потом в этом объекте можно получить информацию из текущей записи. В программе для доступа к значениям записей поля Salary, используется дополнительная переменная f типа TField. Чтобы прочитать значение в текущей записи поля Salary достаточно вызвать оператор

f.Value

Свойство

ADOTable1.Eof

становится равным true, если достигнут конец таблицы.

ADOTable1.Next

реализует переход на следующую запись таблицы.

Результат суммы выводится в свойстве Caption компонента StaticText1.

Значение среднего арифметического выводится в свойстве Caption компонента StaticText2.

  1. Запуск приложения на выполнение.

Теперь можно запустить приложение на выполнение.

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

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

Способы подсчета данных

Подсчитать количество элементов в поле (столбце значений) можно с помощью функции Число . Функция Число принадлежит к ряду функций, называемых агрегатными. Агрегатные функции выполняют вычисления со столбцами данных и возвращают единственное значение. Кроме функции Число , в Access есть следующие агрегатные функции:

    Сумма для суммирования столбцов чисел;

    Среднее для вычисления среднего значения в столбце чисел;

    Максимум для нахождения наибольшего значения в поле;

    Минимум для нахождения наименьшего значения в поле;

    Стандартное отклонение для оценки разброса значений относительно среднего значения;

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

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

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

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

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

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

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

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

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

Подсчет данных с помощью строки итогов

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

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

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

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

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

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

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

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

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

Подсчет всех записей в запросе

Подсчет записей в группе или категории

Справочные сведения об агрегатных функциях

В следующей таблице перечислены и отписаны агрегатные функции Access, которые можно использовать в строке итогов и в запросах. Помните, что в Access предусмотрено больше агрегатных функций для запросов, чем для строки итогов. Кроме того, при работе с проектом Access (внешней базой данных Access, которая подключается к базе данных Microsoft SQL Server) можно использовать расширенный набор агрегатных функций, предоставляемый SQL Server. Дополнительные сведения о них см. в электронной документации Microsoft SQL Server.

Функция

Описание

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

Сумма

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

Среднее

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

Число

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

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

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

Максимум

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

"Число", "Действительное", "Денежный", "Дата/время"

Минимум

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

"Число", "Действительное", "Денежный", "Дата/время"

Стандартное отклонение

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

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

"Число", "Действительное", "Денежный"

Дисперсия

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

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

"Число", "Действительное", "Денежный"