Рис. 25. Результат работы запроса 9
Найти долю дешевого товара (чья стоимость меньше заданной), поступившего от заданного поставщика и в целом.
Рис. 26. Форма для выполнения десятого задания
Текст запроса:
IF thisform.Optiongroup1.Option1.Value=1 &&от заданного поставщика
SELECT COUNT(pro.naimenovanie) as prodan;
FROM pro,pos;
WHERE pro.id_postav = pos.id_pos;
AND pos.psevdonim = thisform.Combo1.Value;
AND pro.cena <= VAL(thisform.Text1.Value);
into cursor vrem
select count(pro.naimenovanie) as vse;
from pro;
into cursor vrem2
thisform.Text2.value=(STR(100*(vrem.prodan/vrem2.vse))+"%")
ENDIF
IF thisform.Optiongroup1.Option2.Value=1 && в целом
SELECT COUNT(pro.naimenovanie) as prodan;
FROM pro;
WHERE pro.cena <= VAL(thisform.Text1.Value);
into cursor vrem
select count(pro.naimenovanie) as vse;
from pro;
into cursor vrem2
thisform.Text2.value=(STR(100*(vrem.prodan/vrem2.vse))+"%")
ENDIF
Рис. 27. Результат работы запроса 10
Найти среднюю стоимость товара, проданного за определенный промежуток времени.
Рис. 28. Форма для выполнения одиннадцатого задания
Текст запроса:
SELECT AVG(pro.cena) as цена;
from pro;
WHERE pro.data_prodaghi => CTOD(thisform.Text1.value);
AND pro.data_prodaghi <= CTOD(thisform.Text2.value);
into cursor vr
thisform.Text3.Value=STR(vr.цена)
Рис. 29. Результат работы запроса 11
Найти весь товар, чья стоимость выше, чем средняя стоимость товара заданного автора.
Рис. 30. Форма для выполнения двенадцатого задания
Текст запроса:
SELECT tip.tip as тип,;
pro.naimenovanie as товар,;
pro.avtor as автор,;
pro.cena as стоимость;
FROM tip,pro;
WHERE pro.id_tip = tip.id_t;
AND pro.cena => (;
SELECT AVG(pro.cena);
FROM pro;
WHERE pro.avtor = thisform.Text1.Value)
Рис. 31. Результат работы запроса 12
Найти товар, который лучше всего раскупают, указать параметры.
Рис. 32. Форма для выполнения тринадцатого задания
Текст запроса:
CLOSE tables
use "G:\bd\irkrgr\irgr\pro"
Dimension mas(5)
GO top
COUNT ALL FOR pro.id_tip=1 TO mas(1)
COUNT ALL FOR pro.id_tip=2 TO mas(2)
COUNT all FOR pro.id_tip=3 TO mas(3)
COUNT ALL FOR pro.id_tip=4 TO mas(4)
COUNT ALL FOR pro.id_tip=5 TO mas(5)
ma = MAX (mas(1),mas(2),mas(3),mas(4),mas(5))
if ma = mas(1)
fin = "иконы"
endif
if ma = mas(2)
fin = "марки"
endif
if ma = mas(3)
fin = "значки"
endif
if ma = mas(4)
fin = "книги"
endif
if ma=mas(5)
fin="журналы"
ENDIF
select tip.tip, pro.naimenovanie, pro.cena, pro.avtor;
from pro,tip;
where pro.id_tip=tip.id_t;
and tip.tip = fin
Рис. 33. Результат работы запроса 13
В ходе данной расчетно-графической работы было проведено создание базы данных, аналогичной той, которая могла бы быть использована в реальной жизни. Для работы с таблицами созданы формы со множеством элементов управления, построены всевозможные запросы к базе данных; закреплены знания по программированию в среде FoxPro, а также освоены новые возможности среды программирования Visual FoxPro, ранее не применявшиеся в лабораторных работах (функция Count, цикл for и прочие операторы).
1. Мейер Д. Теория реляционных баз данных. – М.: Мир, 1987. – 215 с.
2. Бадиян, Менахен. Использование Visual FoxPro 6.0. – М.: Мир, 2000. – 421 с.
3. Каратыгин, Тихонов, Тихонова. Visual FoxPro 6.0. – М.: Мир, 1999. – 231 с.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.