Создание запроса на выборку с вычисляемым полем
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

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

Название продукта Общее количество Стоимость
     

Часть этих сведений можно почерпнуть из таблиц, а стоимость можно вычислить по данным, имеющимся в таблицах.

Для создания этого запроса необходимо сделать следующее.

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, просмотров: 412.