Статистические функции для выполнения расчетов
Вычисления на выделенных записях таблицы
В предыдущем примере расчеты производились над всеми имеющимися в таблице "Заказы" (Orders) записями. Однако часто требуется выполнить вычисления над определенным набором данных и, основываясь на них, составить статистику. Для этого нужно добавить в запрос условия для выборки нужного набора записей. Например, мы можем изменить предыдущий запрос таким образом, чтобы получить данные не по всем клиентам, а только по тем, которые находятся в Германии. Для этого:
- Откройте запрос "Итоги по клиентам", который мы построили в предыдущем разделе, в режиме Конструктора.
- Перетащите поле "Страна" (Country) из таблицы "Клиенты" (Customers) в бланк запроса. В строке Групповая операция (Total) для этого поля появляется элемент Группировка (Group by).
- Замените элемент Группировка (Group by) на элемент Условие (Where), выбрав его из списка (рис. 8.23). При этом автоматически сбрасывается флажок (Show) в данном столбце. Это означает, что в результат запроса поле "Страна" не попадет. Если вы попытаетесь установить этот флажок, то при выполнении запроса будет выведено сообщение об ошибке (рис. 8.24). Действительно, если мы хотим, чтобы поле "Страна" отобразилось в результате запроса, его нужно добавить в бланк запроса второй раз, при этом в строке Групповая операция (Total) данного столбца нужно оставить элемент Группировка (Group by) и установить флажок Вывод на экран (Show).
- Введите слово Германия в ячейку Условие отбора (Criteria) первого столбца "Страна" (того, который не выводится на экран).
- Выберите команду Вид, Режим SQL (View, SQL View) или щелкните по стрелке на кнопке Вид (View) и выберите значение Режим SQL (SQL View) для вывода инструкции SQL. Она будет выглядеть следующим образом:
SELECT
Клиенты.Название, Count(Заказы.КодЗаказа)
AS
[CountOf КодЗаказа],
Sum([Сведения о заказах].ОтпускнаяЦена)
AS
[SumOf ОтпускнаяЦена],
Клиенты.Страна, Клиенты.Страна
FROM
Клиенты
INNER
JOIN
([Сведения о заказах]
INNER
JOIN
Заказы
ON
[Сведения о заказах].КодЗаказа = Заказы.КодЗаказа)
ON
Клиенты.КодКлиента = Заказы.КодКлиента
WHERE
(((Клиенты.Страна) =
"Германия"
))
GROUP
BY
Клиенты.Название, Клиенты.Страна;
В ней используются две статистические функции– Count () и Sum () – и предложение WHERE, содержащее условие отбора записей.
Рис. 8.23. Задание условия отбора записей в запросе "Итоги по клиентам"
Рис. 8.24. Сообщение об ошибке при попытке отобразить поле, для которого задано условие - Измените это предложение, заменив названия полей, в которых ведутся расчеты: AS [Число заказов] вместо AS [CountOfКодЗаказа], AS [Общая сумма] вместо AS [Sum()£ОтпускнаяЦена].
- Нажмите на панели инструментов кнопку Запуск (Run) для вывода результата. Результирующий набор записей представлен на рис. 8.25.