Программирование в среде FoxPro. Создание базы данных "Антиквариат", страница 4

Рис. 25. Результат работы запроса 9

Задание 10

Найти долю дешевого товара (чья стоимость меньше заданной), поступившего от заданного поставщика и в целом.

Рис. 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

Задание 11

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

Рис. 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

Задание 12

Найти весь товар, чья стоимость выше, чем средняя стоимость товара заданного автора.

Рис. 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

Задание 13

Найти товар, который лучше всего раскупают, указать параметры.

Рис. 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 с.