Использование групповых операций в запросах. Создание отчета с группировкой или сводного отчета Группировка по полю

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

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

Примечание: Статья неприменима к веб-приложениям Access - новому типу баз данных, которые создаются в Access и публикуются в Интернете.

В этой статье

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

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

Создание отчета с группировкой при помощи мастера отчетов

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

Запуск мастера отчетов

Группировка записей при помощи мастера отчетов

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

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


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

Вы можете сортировать записи в порядке возрастания или убывания по 1–4 полям.


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

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

Добавление или изменение группировки и сортировки в существующем отчете

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

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

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

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

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

Сортировка по одному полю

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

    В контекстном меню выберите нужный вариант сортировки. Например, чтобы выполнить сортировку текстового поля по возрастанию, щелкните Сортировка от А до Я . Чтобы выполнить сортировку числового поля в убывающем порядке, щелкните Сортировка по убыванию .

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

Сортировка по нескольким полям

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

Группировка по полю

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

    В контекстном меню выберите Группировка .

Access добавит уровень группировки и создаст заголовок группы. Если область Группировка, сортировка и итоги уже открыта, будет видно, что к полю добавилась новая строка Группировка .

Добавление итогового значения в поле

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

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

    Щелкните Итог .

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

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

Примечание: Вы также можете добавить итоги, щелкнув поле, по которому их необходимо рассчитать, и на вкладке Конструктор в группе Группировка и итоги щелкнув Итоги .

Добавление группировки, сортировки и итогов с помощью области "Группировка, сортировка и итоги"

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

Отображение области "Сортировка, группировка и итоги"

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

    Access отобразит область Группировка, сортировка и итоги .

Чтобы добавить уровень группировки или сортировки, щелкнитеДобавить группировку или Добавить сортировку .

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

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

Дополнительные сведения о создании и использовании выражений см. в статье Создание выражений .

Примечания:

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

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

Изменение параметров группировки

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


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

Интервал группировки. Эта настройка определяет способ группировки записей. Например, текстовые поля можно сгруппировать вместе по первому символу (если они начинаются на "А", "Б" и т. д.). Поля даты можно сгруппировать по дню, неделе, месяцу, кварталу или ввести свой интервал.

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

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

    Щелкните стрелку раскрывающегося списка Тип и выберите способ расчета.

    Выберите Показать общий итог , чтобы добавить общий итог в конец отчета (его колонтитул).

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

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

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

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

Чтобы добавить или изменить заголовок:

    щелкните голубой текст после надписи с заголовком ;

    появится диалоговое окно Масштаб ;

    введите новый заголовок в диалоговом окне, а затем нажмите ОК .

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

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

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

    Не удерживать группу на одной странице. Используйте этот параметр, если вам не важно расположение групп при разрыве страниц. Например, 10 элементов группы из 30 элементов могут располагаться внизу одной страницы и остальные 20 вверху следующей страницы.

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

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

Изменение приоритета уровней группировки и сортировки

Чтобы изменить приоритет, щелкните строку в области Группировка, сортировка и итоги , а затем стрелку вверх или вниз справа строки.

Удаление уровней группировки и сортировки

Чтобы удалить уровень, в области Группировка, сортировка и итоги выберите строку, которую вы хотите удалить, а затем нажмите клавишу DELETE или кнопку Удалить справа от строки. При удалении уровня группировки, если заголовок группы или колонтитул содержали поле группировки, Access переместит его в раздел подробностей отчета. Все другие элементы управления удаляются.

Создание сводного отчета (без сведений о записях)

Если вы хотите показать только итоги (данные в строках заголовка и колонтитулов), на вкладке Конструктор в группе Группировка и итоги щелкните Скрыть подробности . Тем самым вы скроете записи следующего нижнего уровня группировки, и итоговые данные будут отображаться более компактно. Несмотря на то, что записи скрыты, элементы управления в скрытом разделе не удаляются. Щелкните Скрыть подробности еще раз, чтобы вернуть строки подробностей в отчет.

Сегодня мы подробно поговорим о запросах в Access.


Запросы, как вы уже знаете, нужны для работы с данными, находящимися в таблицах.
Чтобы создать запрос…
1) …в окне базы данных открываете Запросы
2) …и создаете запрос с помощью конструктора.



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

Отсев пустых строк

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



Почему это происходит?
Дело в том, что у нас в таблице tbPerson наряду с владельцами собак записаны и судьи (Петровская, Елец, Терещук). Судьи не имеют права привозить своих собак на выставку, поэтому в строках с их фамилиями пустые ячейки с кличками собак.
Есть два способа удалить пустые строки.
1. Поставить условие на значение клички собаки Is not Null , т.е. НЕ ПУСТА.



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



Вопрос вам: какие настройки нужно поменять в диалоговом окне параметров объединения?

Запросы с вычислениями

До сих пор мы только отбирали записи по различным условиям. Но Access позволяет не только просматривать данные, записанные в таблицах, но и производить ВЫЧИСЛЕНИЯ: по дате рождения определять возраст; из имени, фамилии и отчества делать фамилию с инициалами; по цене единицы товара и его количества определять общую стоимость покупки; по дате выдачи книги в библиотеке определять величину штрафа при задолженности и многое другое. Для вычислений используются встроенные функции (похожие на те, что есть в Excel).


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



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


Выражения для вычислений записываются в самой верхней строке (Поле ) области условий. До сих пор мы писали условия в нижних строках (Условия отбора ).


Чтобы вам не запутаться: в верхней строке мы пишем, ЧТО выводить на экран, а затем (в нижней) – при КАКОМ УСЛОВИИ .


Задание : Напишите выражение для вывода в одной ячейке фамилии владельца и в скобках города, в котором он живет. Вот так: Иванов (Москва) . Город и фамилия должны подставляться из таблицы.

Построитель выражений

Чтобы удобнее было редактировать выражения, существует специальный редактор – «Построитель выражений». Он выглядит так:



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



В построителе выражений вы можете выбирать из библиотеки функции:



и данные из таблиц (можно пользоваться ТОЛЬКО теми таблицами, которые используются в данном запросе и отображены в области данных):



Когда вы двойным щелчком мыши выбираете из списка имя поля или функцию, Access часто вставляет еще слово «выражение», показывая, что НА ЭТО МЕСТО можно вставить другие функции и имена полей. Не забывайте удалять лишние слова «выражение»!


Мы познакомимся с текстовыми и временными функциями, а также с условным оператором Iif(condition; if-true; if-false).


Текстовые функции позволяют преобразовывать строковые переменные:
Left(«Иванов»; 2) = «Ив» оставляет n левых символов
LCase(«Иванов») = иванов делает все буквы строчными
InStr(1; «Иванов»; «но») = 4 находит подстроку (третий аргумент) в строке (второй аргумент), и равняется позиции (от начала) подстроки в строке
Len («Иванов») = 6 выводит количество символов в строке
StrComp(«Иванов»; «Петров») = -1 сравнивает две строки: если они равны, то выдает 0
и другие…


Временные позволяют работать с временными переменными:
Month(#12.04.2007#) = 4
Year(#12.04.2007#) = 2007
Day(#12.04.2007#) = 12.
Now() = 28.04.2008 14:15:42 (текущие дата и время)
Date() = 28.04.2008 (сегодняшняя дата)
DateDiff(«d»; #12.04.2007#; #28.04.2007#) = 16 находит разницу между двумя датами («d» – в днях, “ww”- в неделях, “m” – в месяцах, “yyyy” – в годах и др.)
и другие…


Логические обрабатывают условные выражения:
Iif(<=1; «щенок»; «взрослый») аналог функции ЕСЛИ из Ecxel.
и другие…


Задание : напишите выражение, которое из фамилии, имени и отчества делает фамилию с инициалами. Иванов Иван Иванович -> Иванов И.И.
Задание
Задание
Дополнение : Есть два способа вычислить возраст собаки: один более точный, другой менее:
1) из текущего года вычесть год рождения собаки;
2) с помощью функции DateDiff посчитать, сколько дней прошло с рождения до сегодняшнего дня. Примените в одном из заданий один способ, в другом – другой.

Запросы с параметром

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



Устроен этот запрос так:



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


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

Запросы с группировкой

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


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



Теперь сгруппируем собак по породе и посчитаем количество разных кличек в каждой группе:



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


Добавляем в область таблиц таблицу с оценками (tbMarks). Группируем оценки по турнирному номеру собаки и среди групповых операций выбираем среднее значение Avg (от англ. average – среднее).


Выполните запрос и в режиме просмотра обратите внимание, что столбцы с групповыми операциями имеют двойное название (операция + имя поля). Нам это пригодится при подсчете суммы баллов.





Можно также округлить значения до одного знака после запятой: Round(+;1)


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

Запросы на изменение, удаление, добавление

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



Оператору базы данных накануне выставки пришла новая информация:
1) собака Дези заболела и не сможет принять участия в выставке;
2) по ошибке Гардиен, являющийся на самом деле английским сеттером, был указан как ирландский сеттер;
3) владелец Мигунова подала заявку на участие в выставке еще одной своей собаки (кличка: Гарри, порода: сеттер-гордон, пол: м, дата рождения: 15.09.07).


Приступим к редактированию базы данных.
1) Удалить запись с Дези.
Создаем запрос quDelDog. Тип запроса – на удаление. Со сменой типа запроса несколько изменяется и область условий. Появилась новая ячейка Удаление . Под ней вы указываете условие, по которому нужно отобрать записи, подлежащие удалению. Даже если вы указываете условие отбора для одного поля, удалена будет ВСЯ запись.



После того, как вы нажали на «восклицательный знак», на экране появится сообщение о том, что запись удалена. Теперь откройте таблицу tbDog и убедитесь, что Дези в ней нет.


2) У Гардиена изменить ирландский сеттер на английский сеттер.
Создаем запрос quUpdateDog. Тип запроса – на обновление. Находим Гардиена и обновляем у него породу.



Откройте таблицу tbDog и убедитесь, что у Гардиена порода – английский сеттер.


3) Добавить запись с Гарри.
Создаем запрос quAddDog. Тип запроса – на добавление. У запросов на добавление есть одна особенность: в области таблиц отображены НЕ те таблицы, КУДА вы добавляете запись, а ОТКУДА вы берете данные (если это требуется). Целевую таблицу (в которую добавляются записи) вы указываете в диалоговом окне, которое появляется сразу, как только вы установите тип запроса (на добавление):



Поскольку мы не берем данные из других таблиц, а создаем новую запись, то область таблиц должна быть ПУСТОЙ! (там не должно быть ни одной таблицы). В области условий в строке Поле вы пишете, ЧТО добавить (новое значение для каждого поля), а в строке Добавление КУДА (имена полей):



Откройте таблицу tbDog и убедитесь, что Гарри в ней появился!

Язык запросов SQL

Когда вы нажимаете на «восклицательный знак», запрос выполняется. Так это представляется на взгляд новичка.
Профессионалы знают, что на самом деле в этот момент выполняется инструкция на специальном языке запросов SQL. Дело в том, что Access – не единственная система управления базами данных (СУБД). Может быть, вы слышали о таких СУБД в Интернете как MySQL, FreeBSD??? Access просто предлагает очень удобный интерфейс для работы с БД, а в других СУ нет никакой кнопочки с восклицательным знаком. Зато там обязательно есть специальное окошко, в котором можно писать SQL-инструкции.
Access тоже позволяет редактировать запросы в режиме SQL-инструкций:



Правила языка SQL не так сложны. Вы можете сами в этом убедиться! Сделайте простой запрос на выборку (например, выведите кличку, породу и дату рождения собаки по кличке Гарри). Теперь откройте запрос на поиск Гарри в режиме SQL!
Инструкция устроена очень просто:
SELECT поле1, поле2,…
FROM таблица1, таблица2,…
WHERE условие1, условие2,…


Откройте теперь запросы на обновление, изменение, удаление (quDelDog, quUpdateDog, quAddDog) в режиме SQL и выпишите на листе бумаги шаблоны их SQL-инструкций (как это только что было сделано для запроса на выборку).


Запросы с параметром, запросы на группировку, запросы с вычислениями представляют собой такие же SQL-запросы, но только с несколько более сложными условиями отбора. Язык SQL – незаменимый инструмент для тех, кто работает с базами данных!

Задания

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


Их немало! Но, коль скоро вы их освоили, вы сможете отыскать в базе данных любую информацию.


Проверьте свои знания! Выполните в вашей базе данных следующие запросы (или переименуйте уже выполненные так, чтобы их имена совпадали с именами задач):

1. выборка

quSelectDog : Найдите всех шар-пеев и сеттеров-гордонов из регионов (НЕ из Москвы); используйте оператор «не равно».

2. оператор Like

quLike : Найдите всех абонентов МТС (те, у кого номер мобильного телефона начинается с 8(916)…).

3. выражения

quEvalText : Напишите выражение, которое из фамилии, имени и отчества делает фамилию с инициалами. Иванов Иван Иванович -> Иванов И.И.
quEvalDate : напишите выражение, которое вычисляет, сколько собаке лет по дате ее рождения.
quEvalIif : напишите выражение, которое определяет по возрасту, в какой возрастной категории выступает собака: «щенок» - до года; «юниор» - от года до двух лет; «сеньор» - старше двух лет.
Дополнение : Примените в одном задании один способ вычислить возраст собаки, в другом – другой: 1) из текущего года вычесть год рождения собаки; 2) с помощью функции DateDiff посчитать, сколько дней прошло с рождения до сегодняшнего дня.

4. параметр

quParametre : Создайте запрос, который будет выводить всех собак по фамилии владельца, являющейся свободным параметром.

5. группировка

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

6. редактирование БД

Незадолго до выставки владелец Гороховец уехал на ПМЖ (постоянное место жительства) в Германию и передал всех собак своему другу Карпову Михаилу Игоревичу. Требуется:
1) quAddOwner : добавить запись о новом владельце;
2) quUpdateOwner : изменить у собак Гороховца ID владельца на ID Карпова;
3) quDelOwner : удалить Гороховца из базы данных.


Жду ваших БД с выполненными заданиями, а также шаблоны SQL-инструкций для запросов на обновление, изменение, удаление.

Назначение групповых операций

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

В Access предусматривается девять статистических функций:

  • sum - сумма значений некоторого поля для группы;
  • Avg - среднее от всех значений поля в группе;
  • мах, Min - максимальное, минимальное значение поля в группе;
  • count - число значений поля в группе без учета пустых значений;
  • StDev - среднеквадратичное отклонение от среднего значения поля в группе;
  • var - дисперсия значений поля в группе;
  • First и Last - значение поля из первой или последней записи в группе.

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

Порядок создания запроса с использованием групповых операций

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

Выполняется команда Вид|Групповые операции (View|Totals) или на панели инструментов конструктора запросов нажимается кнопка Групповые операции (Totals). Можно также нажать правую кнопку мыши и выбрать в контекстном меню Групповая операция (Total) (курсор мыши должен быть уста-1новлен в бланке запроса). В бланке запроса появляется строка Групповая Операция (Total), в которой для всех полей записано группировка (Group By).

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

Рассмотрим конструирование запроса с групповой операцией на примере таблицы ПОСТАВКА_ПЛАН.

Запрос с функцией Sum

Определим, какое суммарное количество каждого из товаров должно быть Обставлено покупателям по договорам. Все данные о запланированном к Доставке количестве товара указаны в таблице ПОСТАВКА_ПЛАН.

Создадим запрос на выборку для таблицы ПОСТАВКА_ПЛАН. Из списка таблицы перетащим в бланк запроса поле код_тов - код товара. Это поле создадим для дальнейшей группировки по нему. Перетащим в бланк запроса поле кол_пост, по которому будет вычисляться функция sum для подсчета суммарного количества конкретного товара, заказанного во всех договорах.

Нажмем кнопку Групповые операции (Totals). Заменим слово группировка

(croup By) в столбце кол_пост на функцию Sum. Для этого вызовем список и выберем эту функцию. Бланк запроса примет вид, показанный на рис. 4.13.

В поле код_тов отображается не код товара, сохраняемый в таблице ПОСТАВКА_ПЛАН, а его наименование. Это определяется тем, что в таблице для поля код_тов построен список на основе таблицы товар. Если в вашей базе данных поле код_тов не преобразовано в поле со списком, как показано в главе 3, в таблице запроса будет отображаться код товара.


Подпись поляSum - КОЛ_ПОСТ можно заменить наЗаказано товаров . Дляввода этой подписи перейдем в режим конструктора, в бланке запроса установим курсор мыши на поле кол_пост и нажмем правую кнопку. В контекстном меню выберем Свойства (Properties). В окне Свойства поля (Field Properties) наберем в строке Подпись (Caption) - заказано товаров.

Таблица результата после доработки запроса показана на рис. 4А5.

Рис. 4.15. Таблица результата с измененной подписью поля

Сохраним запрос-выборку под именем "Заказано товаров".

Запрос с функцией Count

Определим, сколько раз отгружался товар по каждому из договоров. Факт отгрузки фиксируется документом "Накладная".

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

Нажмем кнопку Групповые операции (Totals). Заменим слово группировка (Group By) в одном из столбцов с именем ном_дог на функцию count. Бланк запроса примет вид, показанный на рис. 4.20.

Сохраним запрос под именем "Число отгрузок по договорам". Результат выполнения запроса показан на рис. 4.21.

Microsoft® Office Access 2007. Как воспользоваться базой данных. Что лежит в основе структуры ленты. Знакомство с шаблонами. Цель этого курса. Загрузка базы данных. Команду СОХРАНИТЬ КАК можно использовать для создания копии. Что из следующего верно в отношении формата файлов Access 200. Кнопка Microsoft Office. Параметры макета отчета с тремя вкладками. Создайте базу данных. Быстрое освоение программы.

«Access» - Типы запросов. Создание запросов. Создание таблиц. Создание отчетов. Создание новой базы данных Access. Редактирование запросов. Структуризация данных. Пример информационно-логической схемы. Обслуживание и защита БД. Этапы построения базы данных. Создание и редактирование форм. Автоматизированное рабочее место (АРМ) в Microsoft Access. Создание схемы данных. Базы данных: понятие, основные элементы.

«Формы в Access» - Поле в форме, по которому должна быть фильтрация. Как делать формы в ACCESS. Переходы по записям. Отбор записей в форме. Переход на заданную запись. Собаки, которые принадлежат владельцу. Выполнение макросов. Напишите макрос mcFilter. Быстрый просмотр отчета. Сортировка записей. Напишите макрос. Переход по подчиненным формам. Выберите макрокоманду. Выбираете макрокоманду. Просмотр подробных данных.

«База данных Access 2007» - Режимы просмотра отчета. Свойства элементов. Группировкой. Создание таблиц (шаблоны). Виды запросов. Таблица. Формы. Конструктор макросов. Группы макросов. Макрос – это набор макрокоманд. Режим SQL. Установка/снятие пароля. Работа с таблицами. Проектирование таблиц. Отчеты. Создание запроса, включающего все данные. Макросы. Добавление новых полей. Сложная фильтрация. Свойства формы и ее элементов.

«База данных MS Access» - Примечание группы. Запрос на выборку. Разделы отчета. Внедренные макросы. Этапы создания интерфейса. Многотабличные запросы. Представления. Назначение и виды запросов. Конструирование макроса. Вычисляемые поля. Мастер запросов. MS Access. Назначение каждого из разделов. Групповые операции в запросах. Макет. Отчеты. Виды обработки данных. Конструктор запросов. Связная целостность. Форма. Запросы на обновление.

«Access 2010» - Добавление поля подстановки в таблицу. Добавление и сохранение данных. Цели курса. Создание таблиц для новой базы данных. Создание таблицы в режиме таблицы. Способы создания таблиц. Экономия времени с помощью полей из раздела «Краткое руководство». Выберите синтаксически правильный вариант списка значений из предложенных ниже. Создание таблиц для базы данных. Процесс в режиме таблицы. Общие сведения.

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

1. В окне базы данных щелкните на кнопке Запросы .

2. Дважды щелкните на значке Создание запроса в режиме конструктора .

3. В открывшемся окне диалога (рис. 17.6) выделите строку Контакты.

4. Щелчком на кнопке Добавить добавьте выбранную таблицу в верхнюю область конструктора запроса.

5. Выделите пункт Список и снова щелкните на кнопке Добавить .

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

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

Рис. 17.6 . Добавление таблицы

8. Перетащите поле Фамилия в ячейку Поле первого столбца конструктора.

9. В ту же ячейку второго столбца перетащите поле Имя таблицы Контакты.

10. В третий, четвертый и пятый столбцы бланка запроса перетащите поле Дата таблицы Список (рис. 17.7).

11. В раскрывающемся списке ячейки Групповая операция третьего столб ца бланка запроса выберите пункт Min .

12. В той же ячейке четвертого столбца выберите пункт Мах .

13. В пятом столбце задайте групповую операцию Count. Групповые операции построенного запроса обработают все записи таблицы Список, соответствующие конкретному человеку из таблицы Контакты, и вместо самих данных таблицы Список выведут в соответствующее поле результата запроса только значение величины, вычисляемой по определенной формуле. Доступные групповые операции перечислены в табл. 17.1.

ТАБЛИЦА 17.1 . Групповые операции

Название Функция
Условие Режим задания условия отбора для поля, но которому не выполняется группировка. Access автоматически делает такое поле скрытым
Выражение Вычисляемое поле, значение которого рассчитывается по сложной формуле
Group By Поле, определяющее группу записей, по которой вычисляются статистические параметры. К одной группе относятся все записи, для которых значения поля с режимом Group By (Группировка) одинаковы
Last Последнее значение в группе
First Первое значение в группе
Var Вариация значений поля
StDev Стандартное отклонение величин ноля от среднего
Count Количество записей, соответствующее ноле которых не содержит величины Null
Мах Максимальное значение
Min Минимальное значение
Avg Среднее значение поля
Sum Сумма значений поля по всем записям

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

14. Щелкните на кнопке Вид , чтобы выполнить запрос. Появится таблица с пятью столбцами. Два первых столбца содержат фамилии и имена людей. По ним выполняется группировка, то есть расчет значений остальных полей запроса выполняется для записей таблицы Список, сопоставляемых с одним человеком. Как уже говорилось выше, соответствие контакта таблицы Список и человека из таблицы Контакты определяется полями Код_Контакты, с помощью которых осуществляется связь этих двух таблиц. Третий и четвертый столбцы запроса выводят соответственно дату первого (функция Min) и последнего (функция Мах) контакта с данным человеком. Пятый столбец содержит количество записей в таблице Список (функция Count), соответствующих. данному человеку, то есть число контактов с ним. Единственный недостаток построенного запроса - это непонятные имена столбцов. Давайте скорректируем их.

15. Щелчком на кнопке Вид вернитесь в конструктор запроса.

16. В ячейке Поле третьего столбца замените имя Дата на текст Дата первого контакта: Дата. Правая часть этого выражения, расположенная правее двоеточия, по-прежнему задает имя поля, а левая определяет название столбца результата запроса. Таким образом, любому столбцу запроса можно назначить произвольное имя.

17. В ячейке Поле четвертого столбца введите Дата последнего контакта: Дата.

18. В первой строке пятого столбца бланка запроса введите Число контактов: Дата.

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

19. Снова щелкните на кнопке Вид .

20. Закройте запрос.

21. Для сохранения изменений структуры щелкните на кнопке Да .

22. В окне диалога Сохранение введите имя Итоговый запрос и щелкните на кнопке ОК .