Пусть мы хотим иметь список реализованных продуктов с указанием названия продукта, общего количества и на какую сумму реализован данный продукт. По существу, мы хотим получить сведения, которые можно представить следующей таблицей
Название продукта | Общее количество | Стоимость |
Часть этих сведений можно почерпнуть из таблиц, а стоимость можно вычислить по данным, имеющимся в таблицах.
Для создания этого запроса необходимо сделать следующее.
1. Щелкнуть по объекту «Запросы», щелкнуть по кнопке «Создать», выбрать способ создания «Конструктор» и нажать на кнопку ОК. В появившемся окне щелкнуть по закладке «Таблицы», выделить все три таблицы и нажать кнопку «Добавить», а затем кнопку «Закрыть».
2. Появится окно, в котором в верхней части изображена схема данных, а снизу бланк, представляющий собой макет запроса (таблицы). Если среди строк макета нет строки с названием «Групповые операции», её необходимо добавить, щелкнув по кнопке с изображением знака суммы в панели инструментов.
3. Теперь необходимо указать, как будут называться столбцы в запросе и откуда брать соответствующие данные.
3.1. В строке «Поле» указываются имена столбцов создаваемого запроса, причем существующее имя можно выбрать из раскрывающегося списка.
Первый столбец нашего запроса будет называться «Название продукта», а данные в этот столбец должны браться из таблицы «Продукты» из поля «название». Сначала в строке макета «Имя таблицы» выберем из списка имя таблицы «Продукты», а затем в строке «Поле» из списка выбрать «Название».
3.2. Поскольку в таблице «Заказы» может быть несколько записей с одним и тем же продуктом, необходимо объединить их в одну запись, так как нас интересуют суммарные данные. Для этого в строке «Групповая операция» выбрать из списка операцию, которая называется «Группировка».
3.3. В строке «Вывод на экран» должна быть поставлена галочка, так как мы хотим видеть на экране данные в этом столбце запроса.
4. Для второго столбца данные будем брать из таблицы «Заказы» из поля «Количество». В строчке «Групповая операция» выберем операцию Sum, что означает суммирование данных, и поставим галочку в строке «Вывод на экран».
5. Готовых данных для третьего столбца нашего запроса нет, поэтому их необходимо вычислить как произведение количества реализованного продукта на цену продукта. В том случае, когда столбец в запросе должен иметь вычисляемое поле, в строке «Поле» необходимо набрать не имя столбца, а формулу, по которой будет вычисляться значение этого столбца. Формула вводится в следующем формате: <Имя поля>:<Выражение>. В нашем случае необходимо набрать следующую формулу:
Стоимость:[Количество]*[Цена]
Слова «Количество» и «Цена» должны быть набраны в формуле точно так же, как они набраны в таблицах (если с большой буквы начинаются так с большой, а с маленькой – так с маленькой). Схема данных сверху и дается для того, чтобы было видно, как именуются поля в таблицах. Никаких пробелов при наборе формулы не допускается.
После набора формулы в строке «Групповая операция» надо выбрать операцию Sum.
Другие строки не трогать.
6. Закрыть форму запроса, подтвердив сохранение и задав какое-либо имя запроса, например, «Общий».
7. После этого выделить в окне базы данных запрос «Общий» и нажать на кнопку «Открыть».
Проделав эту операцию, мы обнаружим следующие недостатки полученной таблицы: первый столбец называется «название», а нам хотелось, чтобы он назывался «название продукта», второй столбец называется «Sum_количество» и данные во втором и третьем столбцах имеют очень много десятичных знаков. Чтобы исправить эти недостатки закроем запрос и нажмем на кнопку «Конструктор».
7.1. Поместить указатель мыши в первый столбец макета запроса, щелкнуть правой кнопкой и выбрать пункт «Свойства». На закладке «Общие» в поле «Подпись» набрать: «Название продукта» (без кавычек). Закрыть окошко.
7.2. Щелкнуть правой кнопкой во втором столбце макета. На закладке «Общие» выбрать формат поля «Фиксированный», число десятичных знаков 2, а в строке «подпись» ввести название столбца «Общее количество (кг)». Закрыть окно «Свойства поля».
7.3. Аналогично для третьего столбца формат поля выберем фиксированный, а в строке «Подпись» набрать «Стоимость (руб.)».
7.4. Закрыть макет запроса, подтвердив сохранение.
7.5. Открыть получившийся запрос и убедиться, что все выглядит как надо.
Создание запроса с условием
Составляя макет запроса «Общий», мы нечего не указывали в строчках «Сортировка» и «Условие отбора», а они играют очень важную роль при работе с базой данных.
В строке «Сортировка» можно указать порядок вывода на экран записей (по возрастанию или по убыванию).
В строках «Условие отбора» и «или» можно указать условные или логические выражения, которые позволят отобрать для запроса только записи, удовлетворяющие заданному условию.
Рассмотрим задачу получения тех же сведений, что и в запросе «Общий», но только для клиента с кодом 40. Т.е. нам надо, чтобы из таблицы «Заказы» были отобраны только те записи, для которых код клиента равняется 40.
Чтобы не создавать запрос заново, модифицируем запрос «Общий».
· Выделим запрос «Общий» и нажмем кнопку «Конструктор».
· Надо добавить еще один столбец, поэтому щелкнуть левой кнопкой в строке «Имя таблицы» в следующем столбце, за столбцом «Стоимость» и выбрать из списка таблицу «Заказы».
· В строке «Поле» этого же столбца выбрать из списка «Код клиента».
· В строке «Групповая операция» выбрать из списка «Условие».
· Убрать галочку в строке «Вывод на экран».
· В строке «Условие отбора» набрать 40.
· Меню «Файл/Сохранить как» и набрать новое имя запроса «Клиент 40».
· Макет закрыть и сохранить.
Открыть запрос «Клиент 40» и убедиться, что всё работает правильно.
Дата: 2018-11-18, просмотров: 428.