Программирование в среде VisualFoxPro. Создание базы данных «Мебель», страница 4

Рис.23. Результаты (для России).

Найти всю мебель с заданной датой выпуска (рис.24):

Код метода Click кнопки «Показать»:

SELECT product.наименован AS "Наименование",vid.вид_мебели,product.дата_выпус;

FROM  mebel!product;

INNER JOIN mebel!vid ON product.id_vid = vid.id;

WHERE product.дата_выпус = thisform.text1.value;

ORDER BY product.наименован

Рис.24. Форма для запроса и результат.

Найти всю мебель, чей вес находится в заданных пределах (ввод интервала) для заданного производителя (выбор) и в целом (рис.25-27):

Рис.25.Форма для запроса.

Код метода Click кнопки «ALL»:

Select  product.наименован,product.цена,product.вес,vid.вид_мебели;

from mebel!product;

Inner join mebel!vid on product.id_vid = vid.id;

where product.вес between thisform.text1.value and thisform.text2.value

Код метода Click кнопки «Показать»:

Select product.наименован,product.цена,product.вес,vid.вид_мебели,strana.страна;

from mebel!product;

Inner join mebel!vid on product.id_vid = vid.id;

Inner join mebel!strana on product.id_strana = strana.id;

where (product.вес between thisform.text1.value and thisform.text2.value) and strana.id =  val(thisform.Combo1.value)

Рис.26. Результат (вес от 100 до 200).

Рис.27. Результат (вес от 100 до 200, Германия).

Найти долю мебели, проданных за определенный период (ввод периода) от общего времени продажи (рис.28):

Код метода Click кнопки «Показать»:

SELECT  (max(product.дата_прода)- min(product.дата_прода)) FROM mebel!product into array tmp

SELECT COUNT(product.id)*100/tmp[1] as "Доля", max(product.дата_прода), min(product.дата_прода);

 FROM  mebel!product ;

 WHERE product.дата_прода between thisform.Text1.value and thisform.Text2.value

Рис.28. Форма и результат для вывода доли изделий.

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

                    

Рис.29. Форма и результат для вывода изделий.                                                    Рис.30.Подзапрос

Код метода Click кнопки «Показать»:

select product.цена ;

from mebel!product;

inner join mebel!strana on product.id_strana  = strana.id;

where product.наименован = (thisform.Text1.value) and strana.id = val(thisform.Combo1.value) and (postav.id = val(thisform.Combo2.value))

select product.наименован,product.цена,postav.поставщик;

from mebel!product;

inner join mebel!postav on product.id_postav  = postav.id;

inner join mebel!strana on product.id_strana  = strana.id;

where (product.цена > (select product.цена ;

from mebel!product;

inner join mebel!strana on product.id_strana  = strana.id;

where product.наименован = thisform.Text1.value and;

strana.id = val(thisform.Combo1.value)) and postav.id = val(thisform.Combo2.value))

Найти долю дешевой мебели (ввод стоимости), поступивших от заданного поставщика и в целом (рис.31, 32):

Код метода Click кнопки «В целом»:

zn = thisform.Text1.value

select * from product into cursor cur

n_all = reccount()

select * from product into cursor cur where цена < zn

n_old = reccount()

res = (n_old / n_all)*100

MessageBox("Доля дешевых изделий: " + str (res) + "%")

Код метода Click кнопки «По поставщику»:

zn = thisform.Text1.value

select * from product into cursor cur

n_all = reccount()

select * from product into cursor cur where (цена < zn) and (id_postav = val(thisform.Combo1.value))

n_old = reccount()

res = (n_old / n_all)*100