Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Как создать запрос-выборку

Читайте также:
  1. КАК СОЗДАТЬ ТЕРРИТОРИАЛЬНОЕ ОБЩЕСТВЕННОЕ САМОУПРАВЛЕНИЕ
  2. Нужно создать схему данных со связями.
  3. Создайте запрос-выборку из таблицы Группа, содержащую сведения о группах, количество студентов в которых превышает 30.
  4. Создать запрос на выборку.
  5. СОЗДАТЬ ИСКУССТВО ВОСПИТАНИЯ ЗАНОВО
  6. Создать новую таблицу базы данных

В общем случае для создания произвольного запроса используется универсальный язык SQL, о котором мы упоминали в п. 10.13.2. В предложении этого языка (SELECT - Выбрать) можно описать все четыре базовые операции: какие поля и откуда выбрать, какие вычислить, как их сгруппировать (просуммировать, пересчитать, найти среднее и т. п.) и при каких условиях включить записи в выборку. Однако в реальности пользоваться этим языком могут только специалисты (или очень грамотные пользователи). А для обычных людей разработчики придумали упрощенный механизм создания запроса, называемый QBE (Query By Example - Запрос по образцу). Вам предлагают бланк QBE - некую модель, заготовку запроса, и на этом бланке, пользуясь определенными соглашениями, вы сообщаете системе о своих планах: помечаете поля, вводите выражения, значения и т. п. На основании заполненного вами бланка система сама создает соответствующее предложение SELECT и сама выполняет его.

Идею создания запроса рассмотрим на простейшем примере:

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

Сначала надо выполнить стандартные операции:

1) выбрать в окне базы данных вкладку Запрос (рис.110.3);

2) нажать кнопку Создать (рис. 10.3);

3) выбрать исходные таблицы для запроса (рис. 10.15).

! Обратите внимание, что запрос - это единственный объект в MS Access, для которого можно указать несколько исходных таблиц и (или) запросов.

Для нашего примера мы выбрали все три исходные таблицы - заказы, клиенты и продукты. На экране появляется окно документа <3апрос-выборка> в режиме конструктора (рис. 10.18).

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

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

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

Для вычисляемого поля в строке Поле:надо набрать формулу;

<Имя поля>:<Выражение>

Например:

Стоимость: [Количество]*[Цена]

Именно эту формулу мы набрали в третьем столбце (в строке Поле: - рис. 10-18).

Если вы собираетесь проводить в запросе групповые операции (т. е. объединять записи в группы), необходимо включить флажок «Групповые операции» - появляется строка Групповая операция:. После щелчка на любом поле этой строки появится список типов групповых операций: Группировка, Sum, Avg, Count, Выражение и др.

Для названия продукта 'мы выбрали тип Группировка - это означает, что записи с одинаковым названием продукта (например, конфеты «Южная ночь») будут объединены в одну запись. Для поля количество мы указали тип Sum - это означает, что значения поля количество в данной группе записей будут просуммированы. Тот же тип мы указали для поля Стоимость, однако система перенесла префикс Sum в выражение (см. рис. 10.18), а в строку Групповая операция: поместила другой тип - Выражение (разумеется, то же самое вы могли бы сделать и сами).

Примечание. Вероятно, вы уже догадались, что если в качестве типа групповой операции в столбце количество указать Avg (Average - Среднее) или, скажем. Count (Сосчитать), то вместо суммы в данной группе (т.е. в группе записей с одинаковым названием продукта) мы получим среднее значение количества или количество записей в этой группе.

В строке Сортировка: можно указать порядок вывода на экран записей (по возрастанию, по убыванию).

В поле Вывод на экран: находятся флажки, - установив или сбросив флажок, мы разрешим или запретим вывод данного столбца на экран-

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

Если вы хотите увидеть предложение SQL, описывающее ваш запрос, выберите команду [Вид-Режим SQL] или щелкните на кнопке «Режим SQL» в панели инструментов-

Сформировав запрос, мы сохранили его в БД TOVAR под именем общий. Затем мы открыли его (т. е. выдали его окно в режиме таблицы) и получили результаты, показанные на рис. 10.19.

Обратите внимание на появление подписи Общ. колич. в столбце количество. Откуда она взялась?

Дело в том, что после формирования некоторых запросов приходится подправлять свойства того или иного столбца. В нашем примере, находясь в окне конструктора, мы последовательно выделили столбцы количество и СТОИМОСТЬ и, выбрав команду [Вид-Свойства...] (можно нажать кнопку на панели инструментов), исправили:

1)для столбца количество - подпись поля (Общ. колич.) и формат вывода числа: фиксированный, два знака после точки;

2) для столбца Стоимость - формат вывода числа.

Таким образом, в нашем примере мы рассмотрели все базовые операции формирования запроса, кроме четвертой - описания условий отбора.

Эту операцию выможете испытать, например, на такой задаче: включить в наш запрос только клиентов с кодами 40 и 60. Для этого:

1) откройтеокно запроса общий в режиме конструктора;

2) справа от, столбца СТОИМОСТЬ включите столбец КОД КЛИЕНТА;

3) в ячейке Групповая операция: укажитетип Условие;

4) выключите флажок «Вывод на экран» (и этот столбец не будет появляться на экране);

5) в ячейке Условие отбора: наберите выражение:

40 Or 60;

6) сохраните запрос под каким-нибудь другим именем и проверьте его работу.

! Как уже говорилось, MS Access довольно «либеральна» к нарушениям синтаксиса выражений. В данном случае возможны и такие, формулировки:

[Код клиента] = 40 Or [Код клиента]»

или

=40 Or =60

Наконец, попробуйте включить в запрос записи с определенной, датой или в диапазоне дат.

Обратите внимание на следующие соглашения, предусмотренные в Access.

1. Условные выражения, набранные в разных столбцах строки Условие отбора: (рис. 10.18), по умолчанию соединяются между собой знаком And. Например, если соседние столбцы имеют имена балде и КОД и вы набрали в них = 5 и >=18, то тем самым вы формулировали логическое выражение:

[Балл]=5Аnd [Код]>=18

 

1. Условные выражения, набранные в соседних строках одного и того же столбца, соединяются между собой знаком Оr. Например, если соседние столбец имеет имя балщ и вы набрали в строке Условие отбора: = 8, а в строке или: = 12, то тем самым вы сформулировали логическое выражение:

[Балл]=8 Or [Балл]=2.


Дата добавления: 2015-10-29; просмотров: 108 | Нарушение авторских прав


Читайте в этой же книге: Окно приложения MS Access и окно базы данных | Как создавать объекты в MS Access | Создание и модификация макета таблицы |
<== предыдущая страница | следующая страница ==>
Работа с таблицей| Запрос с параметром

mybiblioteka.su - 2015-2024 год. (0.008 сек.)