Страницы

четверг, 3 октября 2013 г.

Простая бд Access - Товарооборот

Задание База данных «Товарооборот» MS Access (13 вариант).
База данных должна содержать следующие элементы:
  • Таблица «Поставщики»: код поставщика; поставщик; адрес; телефон.
  • Таблица «Товары»: код товара; товар; единица измерения; цена.
  • Таблица «Поступление товаров»: дата поступления; код поставщика; код товара; количество.
  • Таблица «Продажа»: дата продажи; код товара; количество
Поле со списком – таблица «Товары», поле «Единица измерения».
Поле подстановки – «Код поставщика» в таблице «Поступление товаров», источник таблица «Поставщики».

Запросы на выборку:
  1. Товары, полученные от поставщика – завода «Монолит».
  2. Товары, проданные летом 2008 г. в количестве от 1000 до 3000 шт.
  3. Товары с наименованием «Миксер», поступившие до 01.02.2008.
Запрос с вычисляемым полем
Доход от продажи товара (таблица «Продажа»).

Групповой запрос:
Количество проданного товара по каждому наименованию (таблица «Товары»).

Запрос с параметром:
Поставки товара поставщиком N

Отчет по товарам, сгруппированный по наименованию поставщика, сортировка по наименованию товара.

Подробное описание, как можно выполнить такое задание, приведено в нулевом и первом вариантах.
Составляем таблицы и логическую схему, описываем типы данных и другие параметры полей данных (все, как сказано в методичке).
Запускаем СУБД MS Access, создаем таблицы, устанавливаем связи.
Схема базы данных в MS Access.


Справочники здесь поставщики и товары. Другие две таблицы содержат информацию о поступлении и продажах товарах. Связи все на схеме указаны. Тип связей «один-ко-многим».
Переходим к запросам.
Первый запрос на выборку:


Выбираем поставщиков, в названии которых содержится слово «Монолит».
Второй запрос на выборку.
Тут немного непонятно по заданию. Нужно выбирать товары, которые продали в таком количестве (1000-3000 штук) за один раз или за все лето? Если за один раз, то это обычный запрос на выборку, вот он на рисунке. 


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


Третий запрос на выбор


Запрос с вычисляемым полем


Групповой запрос


Запрос с параметром


Делаем отчет. Многотабличный запрос


Отчет в режиме конструктора:


Итоги в отчете не рассчитываются. В принципе, можно было бы посчитать количество поступившего, но… А если товар в кг поступил? Со штуками не будешь складывать. Поэтому оставляю как есть.