Читайте также:
|
|
Иногда после выполнения запроса несколько строк результирующей таблицы отсутствуют. Вы ожидали увидеть их, но их почему-то нет. Обычно это объясняется неправильным (вернее, неподходящим) типом объединения таблиц в запросе. По умолчанию Access применяет внутреннее объединение. Это означает, что для того, чтобы строка появилась в результирующей таблице, в объединяемых таблицах должны быть записи с одинаковыми значениями связывающего поля. Предположим, запрос подсчитывает количество заказов клиента. Чтобы в результате появилась строка, посвященная некоторому клиенту, в таблице Заказы у него должен быть хотя бы один заказ. Если нужно, чтобы в результирующей таблице были строки клиентов, которые пока что не сделали ни одного заказа, следует применить внешнее объединение.
Чтобы изменить тип объединения, дважды щелкните на линии между таблицами в окне запроса. Активизируется диалоговое окно Параметры объединения (Join Properties). Аккуратно наводите указатель на линию! К сожалению. Access никак не сигнализирует о том, что указатель проходит по линии, поэтому вам придется временно переквалифицироваться в снайпера. В диалоговом окне Параметры объединения внимательно прочитайте инструкции рядом с переключателями 2 и 3. Каждый из них создает внешнее объединение. Выберите переключатель, более подходящий в данной ситуации. Если выбрать переключатель 2, будут выведены все клиенты, даже те, у которых нет заказов. Для них будет выведено количество заказов, равное 0.
Когда в столбец добавлена функция Группировка, Access автоматически сортируй результат по значениям этого столбца. Например, если функция Группировка добавлена в столбец Город, то в результирующей таблице города будут выведены в алфавитном порядке. Чтобы отсортировать результат по значениям другого столбца, поместите в его ячейку Сортировка значение типа сортировки (рис. 11.3). Для этого выполните следующие действия:
1. Щелкните в ячейке Сортировка столбца, по значениям которого нужно отсортировать результат.
2. Щелкните на стрелочке раскрывающегося списка и выберите значение по возрастанию или по убыванию.
Результирующая таблица будет отсортирована по значениям заданного столбца. Обратите внимание на то, что сортировать можно также по значениям обобщающего столбца.
Рис. 11.3. Сортировка результирующей таблицы по количеству проданных продуктов
Суммирование
Функция Sum вычисляет сумму значений, расположенных в числовых столбцах, сот ответственно следующим правилам.
· Если в решетке присутствует только функция Sum, Access суммирует значения всего столбца результирующей таблицы.
· Если в решетке присутствуют несколько (возможно, одна) функций Группировка и одна функция Sum (рис. 11.4), Access суммирует значение столбца по каждой группе, созданной функцией Группировка.
В решетке могут присутствовать несколько функций Группировка инесколько обобщающих функций (например, Sum и Count). Обобщающие функции должны быть расположены в разных столбцах. В каждом столбце будут выведены обобщающие значения по группам, созданным функциями группировка.
Рис. 11.4. Функция Sum вычисляет общее количество товаров по каждой группе, проданных отдельно по каждому городу
Ограничить количество записей, обобщаемых функцией Sum, можно с помощью функции Условие, как описано далее в главе.
Задание 29.
В таблице Заказы БД Борей сгруппируйте все заказы по дате и найдите среднюю цену доставки. (используйте оператор Avg).
Задание 30.
В таблице Сведения о заказе БД Борей произведите группировку заказов по товару и подсчитайте общее количество поступившего товара каждого наименования.
Подсчет
Функция Count используется в запросе для подсчета количества записей в группе. Поскольку функция Count не выполняет математическихопераций над содержимым полей, ее можно использовать для столбцов любого типа.
Когда функция Count присутствует в решетке без группировки, она подсчитывает количество полей столбца во всей таблице. В примере, показанном на рис. 11.5, функция Count возвращает не количество городов (как вы, наверное, подумали), а количество записей в таблице Клиенты. Если же кроме функции Count в решетке присутствует одна или несколько функций Группировка, она подсчитывает количество записей в каждой группе, например, количество клиентов, расположенных в каждом городе.
Рис. 11.5. В данном примере функция Count подсчитывает количество не городов, а клиентов.
Чтобы точно и аккуратно подсчитать количество записей в группе (например, количество клиентов в каждом городе), нужно разместить функции Группировка и Count в одном и том же столбце (рис.11.6). Чтобы несколько записей вошли в одну и ту же группу, у них должны совпадать значения заданных полей. Всегда заранее известно, что группировка выполняется по значениям столбца, который что-либо содержит, поэтому столбец группировки — прекрасный кандидат для добавления в него также функции Count. Чтобы добавить столбец в решетку запроса еще раз, нужно еще раз дважды щелкнуть на его имени в списке столбцов, приведенном на верхней панели окна запроса.
При использовании обобщенных функций столбцам результирующей таблицы по умолчанию присваиваются заголовки на основе названия функции. Например, в примере, показанном на рис. 11.6, второму столбцу будет присвоен заголовок Count_Город. Чтобы присвоить столбцу более понятный заголовок, введите его перед именем столбца в решетке запроса (рис. 11.7), отделив от имени столбца двоеточием. В заголовке столбца результирующей таблицы будет выведен текст, расположенный перед двоеточием.
Задание 31.
В таблице Сведения о заказе БД Борей выясните сколько раз поставлялся тот или иной товар.
Дата добавления: 2015-12-07; просмотров: 100 | Нарушение авторских прав