Поиск доли старых машин производится с помощью формы form_q3 (рис. 13)
Рис. 13. Форма для поиска доли старых машин
Функция Click кнопки “Найти” (form_q3.ButtonFind):
expl = val(form_q3.TextExpl.text)
select * from cars into cursor cur
n_all = reccount()
select * from cars into cursor cur where exploitation > expl
n_old = reccount()
res = (n_old / n_all)*100
MessageBox("Доля старых машин: " + str(res) + "%")
Результат запроса для срока эксплуатации 10 лет представлен на рис. 14:
Рис. 14. Результат поиска доли старых машин
Поиск машин по ценам производится с помощью формы form_q4 (рис. 15)
Рис. 15. Форма для поиска машин по ценам
В двух следующих запросах используются соотнесенные подзапросы.
Поиск самых дорогих машин по типам (form_q4.ButtonFind1.Click):
select c_first.variety as Марка, c_first.cost as Цена, ct_first.car_type as Тип;
from cars c_first inner join car_types ct_first on c_first.car_type_id = ct_first.car_type_id;
where c_first.cost = ;
(select max(cost) from cars c_second where c_first.car_type_id = c_second.car_type_id)
Результаты запроса представлены на рис. 16.
Рис. 16. Результаты поиска самых дорогих машин по типам
Поиск самых дешевых машин по типам (form_q4.ButtonFind2.Click):
select c_first.variety as Марка, c_first.cost as Цена, ct_first.car_type as Тип;
from cars c_first inner join car_types ct_first on c_first.car_type_id = ct_first.car_type_id;
where c_first.cost = ;
(select min(cost) from cars c_second where c_first.car_type_id = c_second.car_type_id)
Следующий запрос использует группировку по типам машин.
Поиск средней стоимости машин по типам (form_q4.ButtonFind3.Click):
select car_types.car_type as Тип, avg(cars.cost) as Средняя_стоимость;
from cars right join car_types on cars.car_type_id = car_types.car_type_id group by car_types.car_type_id
Результаты запроса представлены на рис. 17.
Рис. 17. Результаты поиска средней стоимости машин по типам
Поиск машин с ценой свыше 50000, или другой суммы в зависимости от положения переключателей (form_q4.ButtonFind4.Click):
cost_lim = 50000
if form_q4.optiongroupSumm.optionSumm2.value = 1
cost_lim = val(form_q4.textSumm.text)
endif
select * from cars inner join car_types on cars.car_type_id = car_types.car_type_id;
where cars.cost > cost_lim
Поиск машин по ценам и странам производится с помощью формы form_q5 (рис. 18)
Рис. 18. Форма для поиска машин по ценам и странам
Функция Click кнопки “Найти” (form_q5.ButtonFind):
select * from cars inner join car_types on cars.car_type_id = car_types.car_type_id;
where cars.speed > val(form_q5.textSpeed.text) and cars.manuf_place = form_q5.textCountry.text
Поиск машин по сроку эксплуатации производится с помощью формы form_q6(рис. 19)
Рис. 19 Форма для поиска машин по сроку эксплуатации
Функция Click кнопки “Найти” (form_q6.ButtonFind):
if form_q6.optiongroup1.optionAllTypes.value = 1
select cnt(car_id) as Количество_машин from cars where exploitation = val(form_q6.textExpl.text)
else
select car_types.car_type as Тип, cnt(cars.car_type_id) as Количество;
from car_types inner join cars on car_types.car_type_id = cars.car_type_id ;
where cars.exploitation = val(form_q6.textExpl.text);
group by cars.car_type_id;
union;
select car_types.car_type as Тип, 0 as Количество;
from car_types inner join cars on car_types.car_type_id = cars.car_type_id ;
where cars.car_type_id not in(select cars.car_type_id from cars where cars.exploitation = val(form_q6.textExpl.text));
group by cars.car_type_id
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.