Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Laboratornye_raboty_042.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
2.58 Mб
Скачать

1.2. Определение порядка сортировки результатов запроса

Access выводит результирующее множество, записи которого упорядочены по значению первичного ключа. Если первичный ключ включает несколь­ко полей, то записи в динамическом наборе сортируются в порядке указа­ния полей первичного ключа в бланке запроса, где поля, стоящие левее, имеют больший приоритет. Так как поле "Название" является крайним левым ключевым полем, заказы некоторой компании упорядочиваются по номеру заказа. Кроме того, можно явно указать порядок сортировки. На­пример, если требуется вывести первыми заказы, размещенные последни­ми с упорядочением записей по убывающей дате заказа:

Нажмите кнопку "Конструктор" (Design View) для возврата в режим конструктора запроса.

  1. Установите курсор в поле "Сортировка" столбца "ДатаРазмещения", а затем нажмите клавишу <F4> для вывода содержимого списка.

  2. Выделите элемент "по убыванию", чтобы определить сортировку запи­сей в динамическом наборе по убывающей дате заказа (см. рис. 5).

  3. Нажмите кнопку "Запуск" либо кнопку "Режим таблицы" для вывода нового результирующего множества запроса (см. рис. 6).

1.3. Создание запросов на выборку данных из таблиц с косвенными связями

Запросы можно использовать для вывода косвенно связанных записей, например для отображения категорий товаров, закупленных некоторым клиентом. В запрос следует включить каждую таблицу, которая служит звеном в цепочке соединений. Для рассматриваемого примера необходимо включить все промежуточные таблицы, соединяющие таблицу "Клиенты" с таблицей "Типы". Тогда в цепочку входят следующие таблицы: "Клиенты", "Заказы", "Заказано", "Товары" и "Типы". Однако добавлять поля этих таб­лиц в бланк запроса не требуется — достаточно полей "Название" и "Категория".

Чтобы вывести в запросе данные косвенно связанных записей:

  1. Удалите в режиме конструктора запроса все столбцы, исключая "Название", щелкнув по области выделения столбца над строкой "Поле" и нажав клавишу <Delete>.

  2. Нажмите кнопку "Добавить таблицу" на панели инструментов либо вы­берите команду "Запрос, Добавить таблицу" и добавьте в запрос таблицы "Заказы", "Заказано", "Товары" и "Типы", а затем нажмите кнопку "Закрыть" диалогового окна "Добавление таблицы". Access автоматиче­ски связывает таблицы "Заказы" и "Типы", соединяя промежуточные таблицы с помощью поля первичного ключа в одной таблице и поля внешнего ключа с идентичным именем в другой (рис. 7).

Добавленные таблицы появляются в верхней части окна запроса. Одна­ко, если список полей таблицы не виден, воспользуйтесь вертикальной полосой прокрутки для вывода "скрытых" таблиц. Списки полей можно перетащить наверх, расположив их требуемым образом (рис. 7).

  1. Перетащите поле "Категория" из списка полей таблицы "Типы" на строку "Поле" второго столбца бланка запроса. Можно добавить на­звание поля в первую свободную ячейку строки "Поле", дважды щелк­нув по имени поля.

  2. Чтобы вывести эквивалентную созданному запросу инструкцию SQL, выберите команду "Вид, Режим SQL" (View, SQL) (рис. 8). Соеди­нения таблиц задаются операцией inner join.. .on. . .. Косвенные соединения реализуются на основе выражения inner join. . .on. . .on. .

  3. Нажмите кнопку "Конструктор" для закрытия окна SQL, а затем кнопку "Запуск" на панели инструментов. Результирующее множество показано на рис 9.

  4. Закройте запрос, нажав кнопку "Закрыть". Данный запрос лишь пример, поэтому сохранение не требуется.

Запросы, соединяющие косвенно связанные записи, используются часто, особенно при анализе данных с помощью статистических функции SQL или перекрестных запросов Access.