Запросы на выборку в СУБД MS Access (вычисления по горизонтали и вертикали, группирование записей)
Наиболее важными дополнительными возможностями запросов на выборку являются:
• расширение списка полей (вычисления по горизонтали);
• группирование записей;
• вычисления по вертикали.
Расширение списка полей(или просто расширение) - это специальная операция, позволяющая добавить к списку полей запроса любое поле, которого нет в таблицах-источниках запроса. В общем случае это поле должно представлять собой любое выражение, построенное с использованием встроенных элементов Access: знаков операций, функций, полей из любых таблиц или запросов БД, элементов управления любых объектов БД (например, форм). Для более быстрого и правильного построения выражения можно воспользоваться услугами построителя выражений (контекстное меню/пункт Построить или специальная пиктограмма с тремя точками внизу). При этом открывается окно Построитель выражений (рис. 3.15).
На рис. 3.15 показан пример вычисления по полям Стоимость и Количество значений в новом поле Общая стоимость. Отметим, что при вызове окна Построитель выражений курсор должен находиться в строке Поле в новом столбце Общая стоимость, стоящем правее за столбцом «Количество» (в запросе указать все столбцы (поля) исходной таблицы).
Рис. 3.15. Окно Построитель выражений с примером вычисления значений в новом поле Общая стоимость
На рис. 3.16 показан результат выполнения этого запроса.
Группирование - это специальная операция, применяемая к результирующему множеству записей запроса на выборку. Она заключается в том, что все записи делятся на группы с одинаковыми значениями поля группирования, далее для каждой группы формируемся одна-единственная запись, которая и будет включена в окончательный результат запроса.
Например, требуется узнать, какие цвета товары представлены в нашей базе. Чтобы реализовать такой запрос, необходимо, как обычно, открыть диалог конструктора запроса. Затем добавить в него таблицу-источник требующихся данных (таблица TYPE)и отобрать из нее поле Цвет. Далее следует установить операцию группирования, для этого выбрать в меню Вид пункт Групповые операции. При этом в нижней половине окна конструктора (QBE) появляется
Рис. 3.16. Результат выполнения запроса, показанного на рис. 3.15
строка Групповая операция, а в столбцах устанавливается значение Группировка. В результате при запуске запроса мы получаем столько записей, сколько различных цветов есть в таблице TYPE (рис. 3.17).
Рис. 3.17. Результат выполнения запроса на группирование
Вычисления по вертикали - это такая возможность конструктора запросов, которая тесно связана с операциями группирования и расширения (вычисления по горизонтали), рассмотренными выше. Предположим, что в предыдущем примере необходимо не просто получить список цветов, но и вычислить количество видов товара каждого цвета. Чтобы осуществить такое вычисление, необходимо расширить список полей еще одним полем Количество видов товара, в котором и будет реализовано нужное вычисление.
Чтобы задать имя добавляемому полю запроса, необходимо ввести его в начале этого столбца в строке Поле и поставить разделитель двоеточие перед основным именем поля, например: Количество видов товара : Цвет. Здесь Количество видов товара - это имя нового поля в запросе.
Затем в строке Групповая операция в поле Количество видов товара щелкнуть левой кнопкой мыши и в развернувшемся списке выбрать агрегатную функцию Count (рис. 3.18). Данная функция подсчитывает количество строк в группе (при выполнении группировки) или количество строк результата запроса.
Рис. 3.18. Окно построителя запроса на выборку (количества видов товара
каждого цвета)
Результат выполнения запроса показан на (рис. 3.19). При вычислениях по вертикали, как видно из списка, возможен и ряд других функций, например: наибольший (Мах), первый (First), Avg (среднее), Sum (сумма) и т. д.
Рис. 3.19. Результат выполнения запроса на выборку, представленного
на рис. 3.18
Дата добавления: 2015-08-20; просмотров: 4383;