Вычисления с группировкой

advertisement
ACCESS 2003
Вычисления с группировкой в
запросах
Теория
Если для вычисления некоторого значения в
запросе требуется информация из нескольких
записей
таблиц,
то
записи
необходимо
предварительно сгруппировать.
Для группировки используется сортировка, затем
по группе выполняются вычисления.
Групповые функции:
Sum – сумма значений некоторого поля по
группе;
Count – количество записей в группе;
Avg – среднее значение некоторого поля в
группе;
Max – максимальное значение некоторого поля в
группе;
Min – минимальное значение некоторого поля в
группе.
Пример группы 1
В этом примере записи сгруппированы по номеру магазина и дате
продажи. В каждой группе по полю Сумма можно посчитать:
Sum = 715,00 р.
Count = 3;
Max= 600,00 р.;
Min = 50,00 р.
Sum = 450,00
р.
Count = 4;
Max= 184,00 р.;
Min = 70,00 р.
Пример группы 2
В этом примере записи сгруппированы по номеру магазина и
категории.
Пример 1
Определить общее количество хлеба, проданное
базой за все даты.
Важно понять, какой вид должна иметь таблица,
которая получится в результате выполнения запроса.
В нашем случае, это будет одна строка (так как будет
только одна группа), состоящая из названия товара
«хлеб» и общего количества проданных единиц этого
товара.
Поэтому нужно выполнить группировку по полю
«наименование товара». То есть все записи, у
которых значения поля «наименование товара»
совпадают, объявляются группой. По этому же полю
выполняется отбор, то есть выбирается группа с
наименованием товара «хлеб». По этой группе нужно
найти сумму значений поля «количество».
Пример 1
Перенесем необходимые поля в бланк запроса.
Для того чтобы в бланке запроса появилась
строка Групповая операция нажмем на 
Пример 1
В поле Наименование оставим Группировка, а в
поле Количество выберем групповую операцию
SUM
Пример 1
Результат на бланке:
Результат выполнения:
Пример 2
Определить общую стоимость хлеба, купленного за
все время.
В этом примере группировка и отбор выполняется по тому же
полю, что и в первом примере. Групповая операция (Sum)
выполняется по вычисляемому полю
«Сумма»=«Цена»*«Количество».
Пример 3
Вычислить стоимость хлебопродуктов,
проданных за каждый день.
Каждая строка таблицы, которая получится в
результате выполнения запроса, должна
начинаться с даты продажи, затем должна стоять
общая сумма продаж хлебопродуктов за данную
дату. В таблице должно быть столько строк,
сколько дней продавали хлебопродукты.
Поэтому нужно выполнить группировку по полю
«дата продажи», по полю Наименование
категории выполняется отбор (Хлебопродукты), а
по вычисляемому полю
«Сумма»=«Цена»*«Количество» выполняется
Пример 3
В поле Дата продажи оставим Группировка, в вычисляемом
поле Сумма выберем групповую операцию SUM, а в поле
Наименование из таблицы Категории выберем Условие и в
строке Условие отбора напишем Хлебопродукты. Знак
вывода на экран в этом поле автоматически убирается.
Пример 3
Результат выполнения запроса:
Пример 4
Для каждого товара определить количество продаж.
Сортировка по категории товара.
Каждая строка таблицы, которая получится в результате
выполнения запроса, должна начинаться с наименования
товара, затем должно стоять число, которое указывает
сколько раз этот товар покупали. В таблице должно быть
столько строк, сколько продали товаров.
Поэтому нужно выполнить группировку по полю
«наименование товара» и подсчитать количество записей в
группе. Для этого используется групповая функция Count.
Пример 4
Групповую функцию Count (для подсчета записей в группе) можно
использовать для любого поля из таблицы «Продажи», выберем,
например, поле Код товара.
Для того чтобы отсортировать запрос по категории товара,
нужно поле «код категории» поместить в конец бланка, так
как иначе неверно будет выполняться группировка.
Пример 4
Результат:
Сортировка по категории товара проявляется в том, что
сначала выводятся товары с кодом категории 1 (молочные
продукты), затем с кодом 2(колбасные изделия) и так
далее.
Пример 5
Для каждого магазина за каждый день вычислить
общую стоимость купленного им товара. Сортировка
по номерам магазинов и датам продаж.
Каждая строка таблицы, которая получится в результате
выполнения этого запроса, должна начинаться с номера
магазина, затем должна стоять дата, затем должна стоять
общая сумма на которую этот магазин за этот день купил
товаров.
Количество строк в таблице = магазин*дата.
Поэтому нужно выполнить группировку по номеру магазина
и по дате продажи. Причем, поля в бланке запроса нужно
располагать в том порядке, в котором это нужно для
группировки.
Групповая операция (Sum) выполняется по вычисляемому
полю «Сумма»=«Цена»*«Количество».
Пример 5
Бланк запроса:
Результат выполнения
запроса:
Download