Foreversoft.ru

IT Справочник
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Как сделать перекрестный запрос в access

Работе в программе в Microsoft Access

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

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

  • В появившемся окне Crosstab Query Wizard(Создание перекрестного запроса) нужно выбрать таблицу (Töötaja), которая будет служить источником данных для создаваемого запроса.

  • Нажать кнопку Next(Далее).
  • В следующем окне нужно выбрать значения какого поля будут использоваться в заголовках строк. Мы выбираем поле Ameti_kood (код должности) и с помощью стрелки переносим в список Selected Fields.

  • Нажать кнопку Next (Далее).
  • Затем укажите поля, которые станут заголовками столбцов. В данном случае выбираем поле Sugu

  • Нажать кнопку Next(Далее).
  • В следующем окне Мастера предстоит ответить еще на один вопрос: What number do you want calculated for each column and row intersection? (Что вы хотите вычислить для каждой ячейки, расположенной на пересечении строки и столбца?)
  • В нашем случае, мы выбираем поле Staaz (Cтаж) и будем высчитывать средний (Avg) стаж для каждого работника каждой специальности. Т.е .Avg(Staaz)

  • Нажать кнопку Next(Далее).
  • Следующее диалоговое окно будет последним. В нем нужно ввести имя создаваемого запроса в поле What do you want to name your query? (Задайте имя запроса) и выбрать дальнейшие действия:
    View the query(Открыть запрос для просмотра данных) или
    Modify the design(Изменить макет запроса).

  • Нажать кнопку Finish (Готово).
  • Для просмотра откроется запрос, в котором можно увидеть средний стаж работы по каждой специальности, в том числе отдельно для мужчин и женщин.

Перекрестный запрос

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

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

Построение перекрестного запроса с использованием мастера

Задача, для решения которой потребуется перекрестный запрос, формулируется так: необходимо выяснить, сколько аварий (чрезвычайных ситуаций) определенных видов произошло на территории разных субъектов Российской Федерации (краев и областей). Источником информации послужит таблица Fiie1.

Формирование перекрестного запроса лучше всего начать с помощью мастера запросов. Открыв вкладку Запросы окна базы данных, с помощью кнопки

выйдите в окно Новый запрос и в нем выберите опцию Мастер перекрестных запросов (рис. 11.64). На этом этапе надо выбрать запрос, который содержит поля, используемые в перекрестном запросе. В нашем случае следует выбрать таблицу Fiie1. Если в какой-либо ситуации одной таблицы будет мало, то сформируйте запрос, содержащий все нужные вам поля, а затем используйте его как основу для создания перекрестного запроса.

Когда вы сделаете выбор, на экране появится следующее окно мастера перекрестных запросов (см. рис. 11.65), где вам следует решить, значения каких полей вы хотите оформить в виде заголовков строк. Всего можно указать не более трех полей. Для нашей конкретной задачи в качестве заголовков строк послужат значения поля Регион. Щелкните по кнопке Далее, а затем укажите поля (не больше трех), значения которых станут заголовками столбцов. В данном случае будет выбрано поле Наименование ЧС. После этого вы окажетесь в следующем окне мастера (см. рис. 11.66), где предстоит определить, что же вы хотите вычислить для каждой ячейки, расположенной на пересечении столбца и строки. Вы уже использовали два поля: Название области – для заголовков строк, а Наименование ЧС – для заголовков столбцов.

Читать еще:  Базой данных ms access называют

Теперь понадобится третья переменная, значения которой можно подсчитывать, причем они должны соответствовать значениям первых двух полей. Главное, чтобы это третье указанное поле не имело пропусков, то есть нулевых значений. Следовательно, лучше всего подойдет поле Номер. В качестве функции для подсчета числа значений выберите Число (одна из функций групповой обработки данных). Иначе говоря, в конце концов будет определено количество значений поля Номер для каждой ячейки, которая находится на пересечении столбца (ЧС определенного вида) и строки (того или иного региона Российской Федерации) – рис. 11.66. Теперь, когда вы подготовили все необходимое для создания запроса, щелкните по кнопке Далее.

В результате на экране появится окно (см. рис. 11.67), где в формируемый запрос нужно внести последние уточнения. Во-первых, его надо назвать. В принципе это ваше дело, но мы бы посоветовали принять имя, которое по умолчанию предлагает Access 2002: File1-Перекрестный. Затем надо определить, чего вы хотите: выполнить запрос или изменить его оформление. Выберите соответствующую позицию переключателя. Если вы собираетесь выполнить запрос и дизайн вас не интересует, откажитесь от следующего предложения мастера: вывести инструкцию по работе с запросом. Теперь остается только щелкнуть по кнопке Далее, и запрос будет запущен на выполнение. А вот дальше в нашем размеренном сюжете возникает неожиданная интрига – сообщение В перекрестном запросе слишком много заголовков столбцов – 507. Это означает, что последующее выполнение запроса невозможно (см. рис. 11.68). Озабоченность Access вполне понятна.

Фактически вы объявили заголовками столбцов или полей все наименования ЧС в таблице, кроме их дубликатов, которые система не пропустит (вместе с повторяющимися именами таких заголовков было бы не 507, а значительно больше). Действительно, многовато. Объяснение здесь простое: при формировании перекрестного запроса вы не вводили каких-либо критериев отбора. Впрочем, при использовании мастера перекрестных запросов этого сделать все равно нельзя. Если вы хотите задать такие условия, то нужно сформировать обычный запрос.

Ввод условий отбора записей в конструкторе запросов

В окне базы данных на вкладке Запрос откройте ваш перекрестный запрос в режиме конструктора (см. рис. 11.69). Теперь надо задать критерии отбора записей. Будем считать, что нас по-прежнему интересует количество ЧС по регионам, но только если эти ЧС связаны с пожарами.

Поэтому введите в запрос условие *пожар*, как показано на рис. 11.70. Если вы отдадите команду на выполнение запроса, то в результате получите таблицу, фрагмент которой приведен на рис. 11.71.

Предположим, необходимо видоизменить запрос. Нужна справка о числе ЧС по регионам, но теперь нас интересуют аварии, связанные не только с пожарами, но и со взрывами. Кроме условия *пожар* введите еще один критерий отбора – *взрыв*, используя схему «ИЛИ». Иными словами, вы запрашиваете число аварий по регионам, в которых произошли либо пожары, либо взрывы. Если бы вы применили схему «И», система Access 2002 стала бы отбирать сведения из регионов, где произошли и пожары, и… (а это уже совсем другой разговор). Запрос будет выглядеть так, как показано на рис. 11.72.

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

Читать еще:  Создание запросов в access

Итак, в настоящем разделе мы подробно рассмотрели структуру перекрестного запроса и уяснили для себя существенное правило: чтобы обработать группу записей и получить справку по множеству объектов, надо сначала четко определить само множество. В данном конкретном примере нам необходимо суммарное число ЧС определенного вида по разным российским регионам. Значит, в первую очередь надо получить такие сведения по каждому из этих регионов. В ряде случаев для решения указанной задачи придется создать запрос на выборку.

Данный текст является ознакомительным фрагментом.

Как сделать перекрестный запрос в access

На этом шаге будут рассмотрены перекрестные запросы.

В Access имеется возможность создания запросов, в которых используются групповые операции, в виде электронных таблиц, т.е. в качестве названий строк и столбцов такой «таблицы» используются те или иные поля таблиц, а в ее «ячейках» будут отображаться вычисляемые значения, которые соответствуют значениям, указанным в названии строки и столбца. Например, в качестве примера подобной электронной таблицы можно рассмотреть набор оценок, которые получил каждый студент по всем предметам. Другими словами, заголовками строк такой таблицы будут фамилии студентов, заголовками столбцов — названия предметов, а на пересечении строк и столбцов будет отображаться оценка того или иного студента по данному предмету, аналогично расположению данных в рабочих листах Excel.

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

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

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

  • Заголовки строк — выбирается для поля запроса, значения которого нужно использовать в качестве заголовков строк. В качестве заголовков строк необходимо определить хотя бы одно поле, при этом в строке Групповые операции необходимо выбрать значение Группировка, одну из итоговых функций или Выражение.
  • Заголовки столбцов — выбирается для поля запроса, значения которого нужно использовать в качестве заголовков столбцов. С этой целью используется только одно поле, требования к которому аналогичны требованиям к полю, в котором установлено значение Заголовки Строк.
  • Значение — выбирается для поля запроса, в котором вычисляется итоговое значение, отображаемое в «ячейках» перекрестного запроса. Такое поле должно быть единственным, при этом в строке Групповые операции для него необходимо выбрать одну из итоговых функций или задать выражение, в котором используются итоговые функции.
  • (не отображается) — выбирается для того поля, значения которого не должны отображаться в перекрестном запросе.

В первом столбце запроса нужно выбрать поле Фамилия таблицы Студенты, при этом следует задать для него значение Группировка в поле Групповая операция, а также Заголовки строк в поле Перекрестная таблица. Также можно выбрать направление сортировки по возрастанию.

Для второго столбца запроса необходимо выбрать поле Название таблицы Предметы и установить для него значение Группировка в поле Групповая операция и Заголовки столбцов в поле Перекрестная таблица.

В третьем столбце запроса нужно выбрать поле Оценка таблицы Успеваемость и задать для него функцию Sum в поле Групповая операция, а также Значение в поле Перекрестная таблица.

Созданный запрос можно сохранить под именем ОценкиПоПредметам (рис. 1).

Читать еще:  Где находится мастер подстановок в access


Рис. 1. Макет перекрестного запроса ОценкиПоПредметам

В результате выполнения перекрестного запроса ОценкиПоПредметам будет получена электронная таблица, содержащая оценки студентов по всем предметам (рис. 2). Данный запрос может быть использован, например, в отчете, который должен отображать итоги прошедшей сессии.


Рис. 2. Результат выполнения запроса ОценкиПоПредметам

Создание перекрестного запроса можно увидеть здесь, а взять клип здесь.

На следующем шаге вы узнаете о запросах на изменение.

Предыдущий шаг Содержание Следующий шаг

Перекрестные SQL запросы в СУБД Access

Перекрестные SQL запросы в СУБД Access 2003 и 2007

В данной статье рассмотрим перекрестные SQL запросы на выборку данных из таблиц БД Access. Для создания перекрестного SQL запроса откроем базу данных sql_training_st1_param.mdb.

Перекрестные запросы применяются в том случае если нужно упорядочить информацию из базы данных по двум или более параметрам. Cоздать перекрестный запрос в СУБД Access 2003 — 2007 можно используя, Мастер создания перекрестных запросов, конструктор запросов и режим SQL. Например, в результате выполнения обычного запроса на выборку получим несгруппированные по фамилиям и дисциплинам данные (рис.1).

Для группировки данных по фамилиям и дисциплинам можно использовать перекрестный запрос. В этом случае дисциплины можно сгруппировать по горизонтали, фамилии — по вертикали, а на пересечениях дисциплин и фамилий студентов будут помещены оценки. На рис. 2 представлена таблица с результатами выполнения перекрестного запроса на выборку данных.

Как следует из таблиц рис. 1 и 2, в таблице рис. 2 представлена сгруппированная информация, т.е. представлена более упорядоченная информация по сравнению с представленной информацией в таблице рис. 1.

Для создания перекрестного SQL запроса или инструкции SQL (рис. 2) необходимо в открытой БД sql_training_st1_param.mdb на вкладке «Создание» выбрать команду «Конструктор запросов». Откроется активное окно диалога «Добавление таблицы» на фоне неактивного окна «Запрос1», далее надо закрыть окно диалога «Добавление таблицы». Затем на контекстной вкладке «Конструктор» выбрать режим SQL, выполнив команду SQL, в результате в окне редактирования будет отображаться оператор SELECT.

Удалим оператор SELECT, и введем с клавиатуры следующую инструкцию SQL:
TRANSFORM Min(Успеваемость.Оценка) AS [Min-Оценка]
SELECT Студенты.Фамилия, Студенты.Имя
FROM Студенты INNER JOIN (Дисциплины INNER JOIN Успеваемость ON Дисциплины.КодДисциплины = Успеваемость.КодДисциплины) ON Студенты.КодСтудента = Успеваемость.КодСтудента
GROUP BY Студенты.Фамилия, Студенты.Имя
PIVOT Дисциплины.Название;

Эта инструкция состоит из пяти предложений «TRANSFORM. «, «SELECT. . .», «FROM. . .», «GROUP BY. » и «PIVOT. «.
Первое предложение содержит оператор TRANSFORM, который является необязательным. Но если его включить, то его надо включить первым оператором в инструкцию SQL. За этим оператором была включена агрегатная функция «Min(Успеваемость.Оценка) AS [Min-Оценка]».

Второе предложение содержит оператор SELECT и идентификатор «Студенты.Фамилия, Студенты.Имя». Выбор данных осуществляется из двух полей «Фамилия» и «Имя» одной таблицы «Студенты». Оператор SELECT указывает поля, которые используются как заголовки строк в таблице результатов перекрестного запроса.

Третье предложение содержит оператор FROM и идентификатор «Студенты INNER JOIN (Дисциплины INNER JOIN Успеваемость ON Дисциплины.КодДисциплины = Успеваемость.КодДисциплины) ON Студенты.КодСтудента = Успеваемость.КодСтудента». FROM — определяет таблицы «Студенты», «Дисциплины» и «Успеваемость», которые содержат поля, и обеспечивает взаимосвязи таблиц через ключевые поля таблиц с помощью конструкции INNER JOIN . ON.

Оператор GROUP BY используется для определения групп «Студенты.Фамилия, Студенты.Имя», к которым применяется агрегатная функция Min.

В операторе PIVOT перечислены столбцы для вывода информации о дисциплинах.

В результате выполнения команды «Сохранить» в «Области переходов» появится объект — «Запросы: cros-tab_sql». После сохранения перекрестного SQL запроса на выборку данных необходимо выполнить этот запрос, щелкая на пиктограмме «Выполнить» (рис.3).

Результаты выполнения команды «Выполнить» представлены на рис. 4.

Ссылка на основную публикацию
Adblock
detector