Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Перевод заказов в режим ожидания

Поиск

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

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

■ поле ID применяется для поиска записей заказов, которые вы хотите откорректировать;

■ поле OnHoId меняется на Да для перевода заказа в режим ожидания.

Вы уже знаете достаточно для того, чтобы добавить оба поля в запрос и заполнить свойство Обновление поля OnHold (значением Да). Труднее всего найти нужные записи. Ясно, что не­обходимо найти заказы, содержащие одно из значений ID, которые вы отыскали в запросе OrdersWithOutOfStockltems. Но как использовать этот запрос в запросе на обновление?

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

In (14,15,16)

Это условие фильтрации отбирает любые записи с кодами 14,15 или 16-

Ясно, что вводить вручную все значения ID очень трудоемко. Гораздо разумнее еще раз выполнить работу, проделанную во время создания запроса OrdersWithOutOfStockltems.

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

Подзапрос — это запрос, встроенный внутрь другого запроса. При написании подзапроса вам придется использовать язык SQL, с которым вы познакомились в главе 6. Начать следует


 
 

со слова SELECT, затем перечислить поля, которые вы хотите получить, за ними вставить слово FROM и завершить все именем таблицы или запроса, которые используются. Далее приведена команда на SQL для запроса на выборку, извлекающего все ID (коды) заказов из запроса OrdersWithOutOfStockltems:

SELECT OrderID FROM OrdersWithOutOfStockltems

Теперь, когда у вас есть оба нужных вам компонента, следует соединить их вместе в од­ном суперэлегантном условии отбора. Далее приведено окончательное выражение:

In (SELECT OrderID FROM OrdersWithOutOfStockltems)

Поместите это условие отбора в поле ID. Оно получит все коды (ID) проблемных зака­зов с помощью запроса OrdersWithOutOfStockltems и затем сравнит их с полным набором записей в таблице Orders. Окончательный запрос на изменение показан на рис. 8.10.

 

Рис. 8.10. Этот запрос на обновление (PutOutOfStockOrdersOnHold (перевод заказов отсутствующими продуктами а режим ожидания)) гарантирует, что клиенты компании Boutique Fudge будут довольны в будущем. Он выбирает заказы с отсутствующими на складе продуктами и изменяет поле OnHold. Теперь вам достаточно убедиться в том, что представители отдела обслуживания клиентов вежливы

 

 

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


Глава 9

Анализ данных с помощью перекрестных запросов и сводных таблиц

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

Вы уже познакомились с одним методом анализа больших объемов информации с по­мощью итогового запроса (см. разд. "Итоговые данные" главы 7). Применяя итоговый за­прос, можно взять огромную подборку строк и сократить ее для нескольких искусно сгруп­пированных промежуточных итогов. В этой главе вы познакомитесь с двумя более специализированными вариантами обработки чисел: перекрестными запросами и сводными таблицами.

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

 

 

Примечание

Для опробования перекрестных запросов и сводных таблиц вам нужны данные — большой объем данных. В БД, используемых в качестве примеров в предыдущих главах, нет достаточ­ного количества исходных данных. В примерах этой главы используются некоторые таблицы огромной БД AdventureWorks — примера, предлагаемого корпорацией Microsoft и содержащего каталог товаров и сведения о продажах вымышленного производителя велосипедов. Найдите Web-страницу "Missing CD" для данной книги (на сайте www.missingmanuals.com) для загруз­ки нужной вам информации.

 

 

О перекрестных запросах

Перекрестный запрос — это мощное средство подведения итогов, исследующее большие объемы данных и применяющее их для вычисления промежуточных итогов и средних зна­чений. Это определение может показаться знакомым, поскольку вы уже именно для этой цели использовали итоговые запросы в главе 7.

Как и итоговые запросы, перекрестные применяют два основных компонента: группи­ровку и функции подведения итога. Группировка применяется для объединения строк в


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

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

 
 

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

 

Рис. 9.1. Вверху: в итоговом запросе каждая группа занимает отдельную строку, отображая объемы продаж отдельной категории товаров в одной стране. В общем получается 24 группы, и в результате формируется длинный узкий список. Внизу: в перекрестном запросе программа Access применяет первый уровень группировки (в данном случае страну) для разделения данных на строки и следующий уровень (категорию товара) для распределения каждой строки по столбцам. Числа, которые вы видите, те же самые, что и на верхнем рисунке, но теперь у вас всего 6 строк с четырьмя категориями товаров в каждой


Другое отличие перекрестных запросов от итоговых заключается в способе представле­ния программой Access результатов. Итоговый запрос создает отдельную строку для каждой группы. Например, если вы анализируете продажи в разных странах различных категорий товаров, итоговый запрос выведет строку для каждой комбинации страны и категории това­ров, как показано в верхней части рис. 9.1. Перекрестный запрос действует несколько иначе; он использует ту же информацию, но располагает ее в отдельных столбцах, создавая более сжатое представление (нижняя часть рис. 9.1).

 
 

На рис. 9.1 внизу показано, как выглядят данные с двумя уровнями группировки: страны и товары. Но если хотите, в перекрестных запросах можно применять и больше уровней. (Большее число уровней группировки полезно для выполнения более детального анализа — например, для определения, какие товары особенно популярны в конкретных странах, шта­тах и городах.) В этом случае последний уровень группировки используется для разделения строки на столбцы. Все остальные уровни применяются для разбиения результатов на большее число строк. Если создать перекрестный запрос, группирующий объемы продаж по категориям товаров, названиям товаров и странам, вы увидите результат, показанный на рис. 9.2.

 

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

 

 

Примечание

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


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

 

 

Часто задаваемый вопрос.



Поделиться:


Последнее изменение этой страницы: 2016-08-14; просмотров: 173; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.226.186.109 (0.01 с.)