Главная страница
Навигация по странице:

  • Часто задаваемый вопрос. Итоговый проигрыш; итоговый запрос против перекрестного

  • Р ис. 9.3

  • Создание перекрестных запросов

  • Для тех, кто понимает. Создание запроса с объединением для лучшей группировки

  • OrderedItems

  • SalesOr derDetails )

  • Products , Store и ShipMethod .

  • Создание → Другие → Мастер запросов

  • Запросы

  • Р ис. 9.4

  • Orderedltems

  • StateProvince

  • OrderQty . Рис. 9.7

  • SalesOrderID На профессиональном уровне. Правильный выбор групп

  • Краткое содержание 29 Об этих стрелках 30 о сочетаниях клавиш 32 о щелчках кнопкой мыши 33 Примеры 33


    Скачать 19.64 Mb.
    НазваниеКраткое содержание 29 Об этих стрелках 30 о сочетаниях клавиш 32 о щелчках кнопкой мыши 33 Примеры 33
    АнкорAccess_2007.doc
    Дата16.03.2017
    Размер19.64 Mb.
    Формат файлаdoc
    Имя файлаAccess_2007.doc
    ТипКраткое содержание
    #3862
    страница26 из 65
    1   ...   22   23   24   25   26   27   28   29   ...   65
    Глава 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 ра­ботает, потому что следует этому правилу (группировка по категории, товару и затем стране). Если эти же данные сгруппировать иначе (например, по категории, стране и товару), результат будет далеко не так хорош.

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

    Итоговый проигрыш; итоговый запрос против перекрестного
    Что лучше: итоговый или перекрестный запрос?

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

    • Если вы хотите сгруппировать в зависимости от одного поля (как показано, например, на верхнем рис. 9.1), используйте итоговый запрос. У перекрестных запросов всегда, по меньшей мере, два уровня группировки.

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

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

    • Если ваши условия группировки в результате приводят к большому числу групп, подумайте о применении итогового запроса. Перекрестный запрос может читаться с трудом, если в него включено много столбцов. (Другая возможность — использование фильтрации для сокращения числа групп.)

    • Если применяются два независимых уровня группировки, используйте перекрестный запрос. Например, категория товаров и страна клиента — полностью независимые критерии отбора. Вы не можете узнать, любят ли в конкретных странах определенные категории, пока не пороетесь в числах. Для подобной организации информации очень подходит перекрестный запрос. С другой стороны, категория товаров и название изделия связаны друг с другом. Каждый товар попадает в заданную категорию и ни один не может оказаться в нескольких категориях. Если такой способ группировки применить в перекрестном запросе, пропадет много свободного пространства, как показано на рис. 9.3.

    Во многих ситуациях можно попробовать оба подхода — создать и итоговый запрос, и перекрестный — а затем сравнить их, чтобы понять, какое представление информации вам больше нравится.
    Р
    ис. 9.3
    . Считайте это предостережением: не применяйте для группировки в перекрестном запросе связанные поля. В данном примере строки сгруппированы по названию товара, а столбцы по категории товаров. Проблема состоит в том, что каждый товар включен только в одну категорию, поэтому в каждой строке данные есть лишь в одном столбце — столбце с категорией данного товара. Для решения проблемы и формирования более наглядной сводки можно использовать три уровня группировки, как показано на рис. 9.2

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

    В следующих разделах вы попробуете силы в приготовлении перекрестного запроса обо­ими способами.

    Для тех, кто понимает.

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

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

    В этом новом запросе используются операции объединения (см. разд. "Запросы и свя­занные таблицы" главы 6) для соединения всех таблиц с необходимыми данными. Затем можно использовать этот запрос для построения сводного. Такой подход особенно поле­зен в случае перекрестных запросов, поскольку мастер создания перекрестного запроса способен использовать только одну таблицу или запрос. Он самостоятельно не может объединить таблицы.

    В БД AdventureWorks есть запрос OrderedItems, который формирует основу для всех перекрестных запросов, которые вы видели до сих пор. Запрос OrderedItems получает все товары, приобретенные во всех когда-либо сделанных заказах (из таблицы SalesOrderDetails), и затем использует объединения для извлечения дополнительной инфор­мации из таблиц SalesOrderHeader (представляющей заказ целиком), Customers, Products, Store и ShipMethod. Вам придется выполнить несколько переходов для полу­чения данных об адресе клиента, которые позволят проследить, как объемы продаж рас­пределены в разных городах, штатах и странах. (Этот запрос можно изучить, загрузив БД AdventureWorks со страницы "Missing CD" Web-сайта www.missingmanuals.com.)

    Создание перекрестного запроса с помощью мастера
    Легче всего построить перекрестный запрос с помощью мастера создания перекрестного запроса. Если вы хотите сделать это самостоятельно, выполните следующие действия, поль­зуясь БД AdventureWorks.

    1. Если нужно собрать информацию из связанных таблиц, начните с создания запроса с объединением (join query).

    В данном примере используется уже созданный запрос Orderedltem с объединением таблиц, заимствующий массу данных о компонентах заказов, соответствующих товарах, клиентах, месте их проживания и т. д. Дополнительные сведения, необходимые для са­мостоятельного создания запроса с объединением, см. в разд. "Запросы и связанные таб­лицы" главы 6.

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

    2. Выберите на ленте Создание Другие Мастер запросов (Create Other Query Wizard).

    Теперь начинает действовать чудесный мастер. На экране появляется окно Создание за­проса (New Query) со списком запросов разных типов, которые может создать мастер.

    3. Выберите Перекрестный запрос (Crosstab Query Wizard) и щелкните мышью кнопку ОК.

    Сначала мастер попросит выбрать таблицу или запрос (рис. 9.4). Выберите один из пере­ключателей в области Показать (View).

    4. Выберите нужную таблицу. Если хотите выбрать запрос, щелкните кнопкой мыши переключатель Запросы, а затем выберите ваш запрос. Щелкните мышью кнопку Далее.

    В данном примере следует щелкнуть мышью переключатель Запросы и затем выбрать запрос OrderedItems.

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





    Р
    ис.
    9.4. Для просмотра таблиц вашей БД щелкните кнопкой мыши переключатель Таблицы, а для просмотра запросов — Запросы
    Рис. 9.5. Для применения поля в качестве заголовка строки выберите его в списке Доступные поля и затем щелкните мышью забавную кнопку > для переноса поля в список Выбранные поля

    Если создается простой двухуровневый перекрестный запрос, выберите один критерий для строк и один для столбцов (на следующем шаге). Но есть возможность задать до трех уровней группировки строк. Этот вариант больше всего подходит для разных уровней, связанных между собой. Например, вы можете выбрать группировку по стране прожива­ния клиента, в каждой стране подгруппу для городов и в каждом городе подгруппу на ос­нове идентификационного номера (ГО) клиента. Пример хорошо сгруппированного пе­рекрестного запроса см. на рис. 9.2.

    5. Включите поля, которые хотите использовать, в список Выбранные поля и затем щелк­ните мышью кнопку Далее.

    В
    примере с запросом Orderedltems строки группируются по полю State Province. После того как вы опробуете свой запрос, группировку можно легко изменить в окне Конструктора. Например, если хотите, можно поменять поле StateProvince на поле Country. Как изменить перекрестный запрос, рассказывается в разд. "Создание перекрестного за­проса с нуля " далее в этой главе.

    Теперь следует задать критерий группировки, применяемый для разделения ваших строк на столбцы (рис. 9.6). В этот момент можно выбрать одно поле.
    Рис. 9.6. По мере выполнения мастера программа Access выводит в нижней части его окна мини-окно предварительного просмотра структуры вашего находящегося в процессе создания перекрестного запроса. В данном примере строки группируются по полю StateProvince, а столбцы — по полю ProductCategory

    6. Выберите поле для группировки столбцов и щелкните мышью кнопку Далее. В данном примере это поле ProductCategory.

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

    В
    ыберите поле для вычисления и затем функцию для подсчета сводных данных (рис. 9.7). Например, можно найти самую дешевую продажу, заказ с наибольшим числом продан­ных товаров, среднюю цену товара и т. д. В данном примере для подсчета количества проданных товаров используется поле OrderQty.
    Рис. 9.7. В этом примере функция Sum суммирует значения поля OrderQty из всех записей. Например, данный запрос сообщает о том, что вы продали в целом 53 товара из категории Bike (велосипеды) клиентам из Алабамы. Если нужно посчитать, сколько заказов сделали ваши клиенты (вместо количества доставленных товаров), необходим немного другой запрос — в этом случае следует использовать функцию Count для подсчета различных значений поля SalesOrderID

    На профессиональном уровне.

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

    Например, если группировать по названию товара и стране, можно биться об заклад, что вы в результате получите больше групп товаров, чем стран. (У вас могут быть клиенты в восьми разных странах, а каталог товаров с 480 видами товаров.) Итак, примените груп­пировку по товарам для строк, а по странам — для столбцов.

    8. Если нужно показать промежуточный итог для каждой строки, установите флажок Вычислить итоговое значение для каждой строки? Да (Yes, include row sums).

    П
    ромежуточный итог по строке отображается в самом первом столбце. Например, если установлен этот флажок в запросе со штатами и категориями товаров, общие объемы продаж для каждого штата отображаются в первом столбце, за которым следует разбие­ние продаж по категориям (рис. 9.8).
    1   ...   22   23   24   25   26   27   28   29   ...   65


    написать администратору сайта