if sale_period_num = 0
thisform.pageframe1.page3.text6.value = 0
Messagebox("В указанный период ничего не проданно!")
else
thisform.pageframe1.page3.text6.value = sale_period_sum/sale_period_num
endif
endif;
Найти все напитки, чья стоимость выше, чем средняя стоимость напитка заданного производителя.
SELECT drinks_view.cost;
FROM DRINK_DATABASE!DRINKS_VIEW DRINKS_VIEW;
WHERE drinks_view.diller = thisform.pageframe1.page4.text4.value into array avg_cost
SELECT SELECT drinks_view.kind AS "Тип",;
drinks_view.name AS "Наименование",;
YEAR(drinks_view.made_date) AS "Год_выпуска",;
drinks_view.country AS "Страна_изготовитель",;
drinks_view.cap AS "Емкость",;
drinks_view.diller AS "Поставщик",;
drinks_view.cost AS "Цена",;
avg_cost AS "Средняя_цена";
FROM DRINK_DATABASE!DRINKS_VIEW DRINKS_VIEW;
WHERE drinks_view.cost > avg_cost
Найти напитки, которые лучше всего раскупают.
*Подсчет количества записей в таблице продаж
SELECT COUNT(drink_sale.name);
FROM DRINK_DATABASE!DRINK_SALE into array zap_num
*Запись имен в массив
SELECT drink_sale.name;
FROM DRINK_DATABASE!DRINK_SALE into array name_all
*Поиск напитка с максимальным количеством продаж
max_tek = 0
dimension sum_all(zap_num)
FOR i = 1 TO zap_num STEP 1
SELECT SUM(drink_sale.number);
FROM DRINK_DATABASE!DRINK_SALE;
WHERE drink_sale.name = name_all(i) into array sum_tek
IF sum_tek > max_tek
max_tek = sum_tek
ENDIF
*Для каждого напитка запишем сумму его общих продаж
sum_all(i) = sum_tek
ENDFOR
*Стераем из массива имена напитков общие продажи, которых меньше *максимума
FOR i = 1 TO zap_num STEP 1
IF sum_all(i) < max_tek
STORE 'Ne_to' TO name_all(i)
ENDIF
ENDFOR
*Вывод информации о найденных напитках
SELECT drinks_view.kind AS "Тип",;
drinks_view.name AS "Наименование",;
YEAR(drinks_view.made_date) AS "Год_выпуска",;
drinks_view.country AS "Страна_изготовитель",;
drinks_view.cap AS "Емкость",;
drinks_view.weight AS "Вес",;
drinks_view.cost AS "Цена",;
max_tek AS "Продажи";
FROM drink_database!drinks_view;
WHERE ascan(name_all,drinks_view.name) != 0
ENDPROC
Выводы
В результате работы была создана база данных, в которой за счет разделения таблиц по функциональному назначению, удобно и быстро вести учет финансовой деятельности фиры торгующей напитками.
При закупки новых напитков происходит кропотливая работа по заполнению таблицы Drink_info – тип напитка, наименование, производитель, дата производства, цена, емкость и т. д. После того, как вся информация о имеющихся напитков заполнена по мере продажи того или иного напитка происходит заполнение таблицы продаж Drink_Sale - наименование, дата продажи и количество проданных единиц. Таким образом, в процессе продаж нет необходимости повторно заполнять большие объемы информации. А за счет созданных связей всегда можно узнать общие показатели продаж: по емкости, цене и т. д.
Для работы с данными создана форма, в которой имеется средства для редактирования базы и формирования различных запросов к ней.
Использование SQL – процедур позволяет создавать сложные многоуровневые запросы к базе данных, и организовывать вывод найденных записей в форме, удобной для пользователя. Также в работе использовалось средство виртуального объединения таблиц базы в единое целое, предоставленное средой FoxPro – Local_View (локальное представление). Его использование облегчает вывод данных из разных связанных таблиц в Grid_Table и существенно сокращает тексты процедур запросов.
Список используемой литературы
1. Трошина Г.В. Методические указания к лабораторному практикуму. – НГТУ 2004.
2. Электронный учебник по Visual FoxPro.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.