Перекрестные запросы являются еще одной специфической разновидностью запросов на выборку. Предназначены они для более глубокого анализа информации, хранящейся в таблицах. Ключевым словом SQL-оператора перекрестного запроса, задающим его тип, является слово TRANSFORM (преобразовать). Это подразумевает, что значения одного из столбцов (полей) выборки, будут преобразованы в названия столбцов итоговой выборки. Результаты перекрестного запроса группируются по двум наборам данных, один из которых расположен в левом столбце (столбцах) таблицы, а второй — в верхней строке. В остальном пространстве таблицы отображаются результаты статистических расчетов (Sum, Count и т.д.), выполненных над данными трансформированного поля.
Рассмотрим пример. На рис. 7.1. изображен перекрестный запрос Квартальные обороты по товарам учебной базы данных Борей, открытый в режиме просмотра. Слева в таблице расположены поля Марка из таблицы Товары, КодКлиента из таблицы Заказы и ГодЗаказа, вычисляемое на основе поля Дата Размещения таблицы Заказы. На основе этого последнего поля вычисляются и значения квартала размещения заказа (Кв 1, Кв 2, Кв 3 или Кв 4). Эти значения и являются заголовками столбцов, в которых приведена суммарная стоимость размещенных заказов по кварталам и по клиентам.
|
|
Рис. 7.1. Перекрестный запрос Квартальные обороты по товарам.
Перекрестные запросы можно создавать как при помощи мастера, так и с нуля, в режиме конструктора запросов.
Следует отметить чрезвычайную медлительность при запуске перекрестных запросов в режиме таблицы. Особенно это заметно, когда они используются в качестве источника данных для форм, отчетов или диаграмм.