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

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

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

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

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

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

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

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

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

  1. Создайте новый запрос в режиме Конструктора и добавьте в него таблицы «Товары» (Products), «Заказы» (Orders) и «Заказано» (Order Details).
  2. Перетащите поля «КодТовара» (ProductlD) и «Марка» (ProductName) таблицы «Товары», а затем поле «ДатаРазмещения» (OrderedDate) таблицы «Заказы» в первые три столбца бланка запроса.
  3. Выберите команду меню Запрос, Перекрестный (Query, Crosstab Query). Заголовок окна запроса Запрос1:на выборку (Query1:Select Query) изменится на Запрос!перекрестный запрос (Queryl:Crosstab Query). Кроме того, в бланк запроса будут добавлены строки Перекрестная таблица (Crosstab) и Групповая операция (Total), в которую во всех столбцах автоматически вводится операция Группировка (Group By).
  4. Выберите в списке ячейки Перекрестная таблица столбца «КодТовара» значение Заголовки строк (Row Heading). Выполните то же самое для столбца «Марка». Эти столбцы являются требуемыми заголовками строк перекрестной таблицы.
  5. Выберите в списке ячейки Групповая операция столбца «ДатаРазмещения» значение Условие (Where). В ячейке Условие отбора (Criteria) этого столбца введите выражение =#01.01.97# для вывода в перекрестной таблице данных за 1997 год.
  6. Установите курсор в ячейку Поле (Field) следующего (пустого) столбца и введите выражение:

Объем продаж: Sum([Количество]*[Заказано].[Цена])

Это будет поле, значение которого вычисляется с помощью описанного выражения, а название поля — «Объем продаж». В выражении используются поля из таблиц, которые включены в запрос, однако обратите внимание, что сами поля в результат запроса не включены. Это означает, что при создании вычисляемого поля в выражение можно включать ссылки не только на поля самого запроса, но и на поля, которые не включаются в результат запроса. Важно, чтобы они были в исходных таблицах. При ссылке на поле «Цена» в выражении мы указали еще имя таблицы «Заказано», а при ссылке на поле «Количество» не указывали. Указать имя таблицы пришлось потому, что поле с именем «Цена» присутствует и в таблице «Товары» и в таблице «Заказано». Если не указать в выражении имени таблицы, Access не сможет определить, из какой таблицы брать значения, поэтому при выполнении запроса выдаст сообщение об ошибке, как это представлено на рис. 8.13.

Рис. 8.13. Сообщение об ошибке в выражении вычисляемого поля

Выберите в ячейке Групповая операция (Total) того же столбца значение Выражение (Expression), а затем в ячейке Перекрестная таблица — значение Значение (Value). В столбце «Объем продаж» вычисляется общий объем заказов на каждый товар, который будет подставляться в ячейки результирующей таблицы запроса.

  1. Установите курсор в ячейку Поле (Field) следующего (пустого) столбца и введите выражение Format([ДатаРазмещения];»mmm»). Функция Format О в данном случае будет возвращать три первые буквы месяца от значения даты в столбце «ДатаРазмещения». С помощью этой функции мы создали еще одно вычисляемое поле в запросе, причем после окончания ввода этого выражения Access автоматически создает имя этого поля «Выражение!» (Exprl). Так происходит всякий раз, когда мы не определяем имя вычисляемого поля. Выберите из списка в ячейке Перекрестная таблица этого столбца значение Заголовки столбцов (Column Heading) (рис. 8.14). Это означает, что данный столбец запроса будет преобразован в процессе выполнения запроса в строку, содержащую заголовки столбцов результирующей таблицы.

Рис. 8.14. Перекрестный запрос в режиме Конструктора

  1. Нажмите кнопку Запуск (Run). Появится результирующее множество записей, представленное на рис. 8.15.

Рис. 8.15. Результирующее множество перекрестного запроса

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

Источник:
http://www.taurion.ru/access/8/9

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник:
http://it.wikireading.ru/41816

Как создавать запросы в Access: пошаговая инструкция и рекомендации

Приложение СУБД MS Access – это полноценный помощник для создания и ведения баз данных, заключенных в таблицы и массивы. Если база имеет слишком большой объем, быстро найти необходимые значения довольно сложно.

Именно поэтому в Access существует такая функция, как запросы. Рассмотрим, что это такое, как работает, какие имеет особенности.

Создание запросов в Microsoft Access

Чтобы разобраться, как создавать запросы в Access, нужно знать основные положения работы с СУБД.

Существует два способа выполнить данную процедуру:

  • Конструктор запросов.
  • Мастер запросов.

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

Легкий путь для новичков

Знающий человек за несколько кликов мышью выбирает те компоненты, которые потребуются пользователю для выполнения запроса, а затем быстро формирует реестр, в соответствии с собранными ключевыми значениями. Если это первое знакомство с СУБД, и пользователь не представляет, как создавать запросы в Access, то выбирается программа Мастер.

В данном режиме можно ознакомиться и разобраться со следующими типами запросов:

  • Простой.
  • Перекрестный.
  • Записи без подчиненных.
  • Повторяющиеся записи.

Данный выбор осуществляется уже на первом этапе работы с Мастером. А в дальнейшем, следуя четким указаниям, даже начинающий пользователь легко создаст запрос. Познакомимся с его разновидностями.

Простой запрос

Этот инструмент работы с таблицами собирает нужные данные из указанных пользователем полей. Уже по названию видно, что это самый популярный тип запросов для новичков. Его удобство заключается в том, что такая процедура открывается в новой вкладке. Поэтому ответ на вопрос, как создать запрос в Access 2010, становится очевидным уже после открытия первого меню Мастера.

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

Этот тип выборки более сложный. Чтобы разобраться, как создать перекрестный запрос в Access с помощью «Мастера» в данном режиме, нужно кликнуть по этой функции в первом окне.

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

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

На фото показано, что перекрестный запрос создан, и что по заданным параметрам совершены необходимые действия.

Повторяющиеся записи

Как понятно из названия, основное предназначение данного запроса – выборка всех одинаковых строк в таблице по указанным параметрам. Выглядит это так:

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

Чтобы выбрать повторяющиеся записи, нужно раскрыть список запросов и создать там новую папку. Далее в окошке «Новый запрос» выбрать строку «Поиск повторяющихся записей». Далее нужно следовать указаниям Мастера.

Записи без подчиненных

Это последний тип запросов, доступный в режиме «Мастер – Записи без подчиненных».

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

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

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

Функции запросов в MS Access

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

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

Запрос на выборку

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

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

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

В открывшемся окне конструктора заполняется окно «Добавление таблиц». Здесь нужно добавить те таблицы или запросы, из которых нужно вытаскивать исходные значения.

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

Чтобы завершить операцию, нужно нажать на кнопку «Выполнить».

Запрос с параметрами

Это еще одна разновидность сложной процедуры, которая потребует от пользователя определенных навыков работы с базами данных. Одним из главных направлений такого действия является подготовка к созданию отчетов с объемными данными, а также получение сводных результатов. Как создавать запросы в Access 2007 с помощью конструктора, будет рассмотрено ниже.

Начинать данную процедуру по выборке данных нужно с создания простого запроса, чтобы выбрать нужные поля. Далее через режим Конструктора обязательно нужно заполнить поле «Условие отбора» и, уже исходя из внесенного значения, будет осуществляться отбор.

Таким образом, на вопрос о том, как создать запрос с параметром в Access, ответ простой — внести исходные параметры для выборки. Чтобы работать с Конструктором необходимо пользоваться Мастером запросов. Там создается первичные данные для фильтрации, которые служат основой дальнейшей работы.

Расширенный перекрестный запрос

Продолжаем усложнять ситуацию. Еще труднее для понимания является информация о том, как создавать запросы в Access, если присутствует несколько таблиц с данными. Перекрестный запрос уже рассматривался выше, как один из вариантов работы с Мастером. Однако, и в режиме «Конструктора» можно создавать подобный запрос.

Для этого необходимо нажать «Конструктор запросов» — «Перекрестный».

Открывается меню добавления исходных таблиц, а также возможность заполнения выборочных полей. Единственное, на что следует обратить внимание, – пункты «групповая операция» и «перекрестная таблица». Их нужно заполнять правильно, иначе процедура не будет выполнена корректно.

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

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

Конечно, присутствуют и «подводные камни», которые могут помешать в работе. Например, при создании запроса на сортировку базы данных по значению столбцов система выдает ошибку. То есть доступна только сортировка по стандартным пунктам – «возрастание и убывание».

Краткие рекомендации

Подводя итоги, нужно сказать, что решить, как создавать запросы в Access – с помощью Мастера или Конструктора, должен сам пользователь. Хотя, для большинства людей, которые используют СУБД MS Access, больше подойдет первый вариант. Ведь Мастер сам сделает всю работу, оставив для пользователя только несколько кликов мышью, при выборе условий запроса.

Чтобы использовать расширенные настройки, явно необходим опыт работы с базами данных на уровне профессионала. Если в работе задействованы большие базы, лучше всего обратиться к специалистам, дабы избежать нарушения работы СУБД и возможных потерь данных.

Есть один момент, который доступен лишь программистам. Так как основным языком СУБД является SQL, то нужный запрос можно написать в виде программного кода. Чтобы работать в данном режиме, достаточно нажать на строку уже созданного запроса, и в открывшемся контекстном меню выбрать «Режим SQL».

Источник:
http://fb.ru/article/370546/kak-sozdavat-zaprosyi-v-access-poshagovaya-instruktsiya-i-rekomendatsii

Практическая работа. Создание перекрестных запросов в MS Access

Особенности работы со слабоуспевающими и одаренными детьми в школе

свидетельство каждому участнику

скидка на курсы для всех участников онлайн-конференции

13 – 15 октября 2020г 19:00 (МСК)

Практическая работа №5

Тема: «Создание перекрестных запросов»

для студентов 2 курса специальности 10.02.03

Информационная безопасность автоматизированных систем

Цели работы: научиться создавать перекрестные запросы на выборку данных с помощью мастера и конструктора запросов.

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

возможностью обработки значительного объема данных и вывода их в формате, который очень хорошо подходит для автоматического создания графиков и диаграмм;

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

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

Создать запрос с помощью мастера форм: Создание/Мастер запросов

Создать с помощью конструктора: Создание/ Конструктор запросов

Изменить запрос с помощью конструктора: Режим/Конструктор

Задание 1. Создать запрос Выручка по месяцам

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

1. Создать запрос с помощью мастера запросов: Создание/Другие/Мастер запросов/Перекрестный запрос

2. Для создания перекрестного запроса использовать данные таблицы Заказы

3. Выбрать поля, значения которых использовать в качестве заголовков строкСотрудник.

4. Выбрать поля, значения которых использовать в качестве заголовков столбцовДата заказа .

5. Выбрать интервал, с которым необходимо сгруппировать столбец данных типа даты и времени — Месяц

6. Выбрать, какие исчисления необходимо провести для каждой ячейки на пересечении строк и столбцов. Выбрать поле Сумма и применить функцию C УММА.

7. Задать имя перекрестного запроса Выручка по месяцам .

Задание 2. Создать перекрестный запрос «Количество заказов по сотрудникам»

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

1. Создать запрос с помощью конструктора: Создание/Другие/Конструктор запросов

2. Для создания запроса использоватьтаблицы и поля:

таблица Заказы (поля ФИО клиента и Сумма )

таблица Сотрудники (поле ФИО сотрудника ).

3. Чтобы подключить групповые функции , нажать на кнопку

4. Для поля Сумма выбирать из выпадающего списка функцию Count – считать количество записей.

5. Чтобы создать перекрестный запрос, нажать на кнопку .

6. Провести настройку перекрестной таблицы. Использовать:

Поле ФИО сотрудника для заголовков столбцов ,

Поле ФИО клиента для заголовков строк ,

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

5. Для создания запроса нажимаем кнопку Выполнить!

6. Сохраните запрос под именем Количество заказов по сотрудникам .

Источник:
http://infourok.ru/sozdanie-perekrestnih-zaprosov-v-ms-access-4016508.html

Основы создания запросов в Access 2003

Сегодня мы начнем рассматривать такое приложение как — Microsoft Access 2003, которое умеет создавать собственные базы данных (формат mdb), а также создавать клиентские приложения к существующим базам на основе MS SQL Server. Темой сегодняшней статьи будет создание новых запросов из Access, имеется в виду, как простые запросы, так и различные функции, представления и процедуры. Под запросом здесь понимается объекты базы данных.

О Microsoft Access

Microsoft Access – программный продукт компании Microsoft, являющейся реляционной СУБД. Имеет огромные возможности при организации базы данных, создания отдельного приложения, которое может взаимодействовать с множеством других СУБД. Наиболее часто встречающееся решение клиент-сервер, где в качестве клиента выступает приложение, написанное в Access (язык VBA, формы и многое другое), а сервером является СУБД Microsoft SQL Server. Однако Access поддерживает и взаимодействие с другими СУБД, например, такими как: MySql или PostgreSQL. О Access можно разговаривать долго, но цель сегодняшней статьи именно создание запросов (объектов) из Access.

Переходим к практике и начнем с простой базы mdb, т.е. как там создать эти самые запросы.

Создание запросов в Microsoft Access 2003 — база MDB

Для начала открываем базу, затем нажимаем на объекты «Запросы» и жмем кнопку «Создать».

Примечание! Имеется в виду, что база у Вас уже есть.

И перед Вами откроется новое окно выбора типа запроса

Давайте рассмотрим каждый из этих типов запросов подробней.

Типы запросов в Access 2003 — база MDB

Конструктор – это создание запроса на основе конструктора, так сказать в графическом редакторе, но в нем можно перейти в режим sql и написать текст запроса как обычно. Сразу же после запуска у Вас откроется окно выбора нужных таблиц или уже существующих запросов, так как существующие запросы можно также использовать для выборки необходимых данных, это как будто «представление».

Далее Вы просто выбираете нужные поля, ставите условия, сортировку и так далее.

Если не нравится это делать в графическом редакторе, то можете переключиться в режим SQL, для этого нажмите пункт меню «Вид», затем «Режим SQL».

Простой запрос – это, можно сказать, такой же конструктор, только немного другого вида и поменьше возможностей.

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

Повторяющееся записи – это как видно из названия поиск повторяющихся записей.

Записи без подчиненных – это поиск тех записей, которые отсутствуют в той или иной таблице.

С базами mdb достаточно, так как их редко используют на предприятиях, обычно используют следующую схему – пишут отдельный клиент, а все данные хранят на сервере с помощью СУБД в нашем случае — это MS SQL Server, а клиент Access (.adp).

Создание запросов в Microsoft Access 2003 — база MS SQL Server

Давайте рассмотрим создание новых запросов из клиента Access на базе MS SQL Server (подразумевается, что клиент adp и база данных на основе MS SQL Server у Вас уже есть).

Примечание! Данная статья не подразумевает изучение sql, поэтому на момент прочтения этой статьи Вы уже должны понимать основы sql и понятие основных объектов в базе данных таких как: представление, функция, процедура. Если Вы совсем новичок в этом, то сначала, конечно же, рекомендуется освоить SQL, так как многие термины ниже Вам будут не понятны. Рекомендуемые статьи:

Начало все такое же, открывает проект, затем нажимаем на объекты «Запросы» и жмем кнопку «Создать».

И теперь подробней.

Типы запросов в Access 2003 — база MS SQL Server

Конструктор встроенной функции – это, можно сказать, обычное представление, только в нее можно передавать параметры, затем выполняются какие-то запросы на сервере, и возвращается таблица. Это своего рода функция, которая возвращает данные в виде таблицы. К ней обращаются следующим образом (если говорить об sql):

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

Затем если Вы хотите добавить входящие параметры можете просто в условие ставить знак @ и название переменной, например, так:

После на панели в свойствах функции

на вкладке «параметры функции» появится те параметры, которые Вы указали, причем передавать их нужно в том порядке, в котором они здесь указанны.

Конструктор представления – это создание обычного представления, в просто народе «Вьюха».

Конструктор сохраненной процедуры – создание процедуры с помощью конструктора, принцип такой же, как и в вышеупомянутых функциях. Напомню процедура — это набор sql операторов, как на выборку, так и на изменение данных.

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

Ввод скалярной функции – это создание функции, которая возвращает значение. Создается с помощью текстового редактора.

Ввод табличной функции – это создание функции, которая вернет набор записей. Похожа на встроенную функцию.

Для того чтобы в клиенте access их можно было отличать, у них разные иконки, те самые которые Вы видите при создании того или иного объекта.

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

Конечно же, все эти объекты Вы можете создать и на сервере с помощью, например, Enterprise Manager (устарел, сейчас SQL Server Management Studio), но мы сегодня рассматриваем возможность создания этих объектов из access клиента.

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

Заметка! Для профессионального изучения языка T-SQL рекомендую посмотреть мои видеокурсы по T-SQL.

Источник:
http://info-comp.ru/obucheniest/258-access-2003-query.html

Перекрестные 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.

Источник:
http://www.lessons-tva.info/articles/informat/40.html