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

              Рис.28 Запрос восьмой.

Рис.29 Результат запроса.


Пятая вкладка Поиск по БД 3, представленная на рис.30.

Рис.30 Главная форма. Пятая вкладка.

Данная вкладка позволяет пользователю выполнять различные запросы, такие как:

9) Найти среднюю стоимость антиквариатов, проданных за определенный промежуток времени.

Код запроса:

SELECT AVG(цена_руб);

FROM myrgr!anticvariat;

WHERE  дата_продажи_фирмой BETWEEN thisform.pageframe1.page5.text1.value AND thisform.pageframe1.page5.text2.value;

INTO ARRAY result

if result == 0

              MessageBox ("За этот период нет продаж")

else

              thisform.pageframe1.page5.text3.value = result

endif

Рис.31 Результат запроса.

10) Найти все антиквариаты, чья стоимость выше, чем средняя стоимость антиквариатов произведенных в заданной стране.

Код запроса:

SELECT type_anticvariata.Тип_антиквариата, anticvariat.Наименование, anticvariat.Цена_руб, anticvariat.место_издания;

FROM myrgr!type_anticvariata INNER JOIN myrgr!anticvariat;

ON  type_anticvariata.id_тип_антиквариата = anticvariat.id_тип_антиквариата;

WHERE цена_руб > (SELECT AVG(цена_руб);

FROM myrgr!anticvariat;

WHERE место_издания = thisform.pageframe1.page5.combo1.value);

ORDER BY цена_руб

Рис.32 Запрос десятый.

Рис.33 Результат запроса.

11) Найти антиквариаты, которые лучше всего раскупают (по умолчанию выставлен промежуток времени - пол года).

Код запроса:

SELECT type_anticvariata.id_тип_антиквариата, type_anticvariata.тип_антиквариата, COUNT(anticvariat.дата_продажи_фирмой);

FROM myrgr!type_anticvariata INNER JOIN myrgr!anticvariat;

ON type_anticvariata.id_тип_антиквариата = anticvariat.id_тип_антиквариата;

WHERE month(anticvariat.дата_продажи_фирмой) between (month(DATE()) - 6) and month(DATE());

AND year(anticvariat.дата_продажи_фирмой) == year(DATE());

GROUP BY anticvariat.id_тип_антиквариата;

INTO CURSOR curtemp

SELECT curtemp.тип_антиквариата, curtemp.cnt_дата_продажи_фирмой;

FROM curtemp;

WHERE curtemp.cnt_дата_продажи_фирмой ==;

 (SELECT MAX(curtemp.cnt_дата_продажи_фирмой) FROM curtemp)

Рис.34 Результат запроса.

Последняя вкладка INFO содержит информацию о наименовании расчетно-графической работы и её исполнителя рис.35.

Рис.35 Вкладка INFO.

Для активизации основного меню создана функция, вызываемая при инициализации основной формы Activate Event: do menurgr.mpr.

Возврат к стандартному меню происходит по средствам функции, вызываемой при уничтожении формы Destroy Event:  set sysmenu to default.

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

Рис.36 Меню, используемое в РГР.


6.  Выводы

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

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

Для работы с данными создана единая форма, в которой имеются средства для редактирования базы и формирования различных запросов к ней.

Использование SQL – процедур позволяет создавать сложные многоуровневые запросы к базе данных, и организовывать вывод найденных записей в форме, удобной для пользователя.

7.  Список используемой литературы

1.  Трошина Г.В. Методические указания к лабораторному практикуму. – НГТУ 2004.

2.  Электронный учебник по Visual FoxPro.