Формирование баз данных "Авиасалон", "Ремонт", страница 4

 INTO TABLE query9_4.dbf

set safety on

Текст запроса query9_5.qpr:

SELECT Reconst.name as вид_ремонта, Asl.type as тип_самолета, Reconst.price as стоимость;

 FROM  asl!asl INNER JOIN asl!reconst ;

   ON  Asl.a_id = Reconst.a_id;

 WHERE Reconst.price = query9_4.max_price

Текст запроса query9_6.qpr:

SELECT Reconst.name as вид_ремонта, Asl.type as тип_самолета, Reconst.price as стоимость_у_е;

 FROM  asl!asl INNER JOIN asl!reconst ;

   ON  Asl.a_id = Reconst.a_id;

 WHERE Reconst.price = query9_4.min_price

Текстзапроса query9_7.qpr:

SELECT AVG(Reconst.price) as средняя_стоимость_у_е;

 FROM asl!reconst

Найти самолёты со стоимостью ремонтных работ в заданных пределах

Рис. 30. самолёты со стоимостью ремонтных работ в заданных пределах

Код метода Click кнопки «Найти»

pr1 = thisform.text1.value

pr2 = thisform.text2.value

do query10.qpr

Текст запроса query10.qpr:

SELECT DISTINCT Asl.type as тип_самолета, Asl.year as год_выпуска, Reconst.a_id as борт_номер, Reconst.price as стоимость_ремонта;

 FROM  asl!asl INNER JOIN asl!reconst ;

   ON  Asl.a_id = Reconst.a_id;

 WHERE Reconst.price BETWEEN pr1 AND pr2;

 ORDER BY Asl.type

Рис. 31. Результат. Стоимость работ до 600.

Количество отремонтированных самолётов

Рис. 32. Количество отремонтированных самолётов

Код метода Click кнопки «Вывести»

m = thisform.spinner1.value

do query11_1.qpr"

Текст запроса query11_1.qpr:

SELECT COUNT(Reconst.a_id)as Количество_самолётов , AVG(Reconst.price)as средняя_стоимость_ремонта ;

 FROM asl!reconst;

 WHERE MONTH(Reconst.date) = m

Рис. 33. Результат за первый месяц

Текст запроса query11_2.qpr:

SELECT COUNT(Reconst.a_id) as Количество_самолётов , AVG(Reconst.price) as средняя_стоимость_ремонта;

 FROM asl!reconst;

 WHERE Reconst.date BETWEEN d1 AND d2

Найти долю дешевых самолётов

Рис. 34. Доля дешевых самолётов

Код метода Click кнопки «Вывести»

prc = thisform.text1.value

do query12.qpr

do query12_1.qpr

do query12_2.qpr

Текст запроса query12.qpr:

set safety off

SELECT Reconst.a_id;

 FROM asl!reconst;

 WHERE Reconst.price < b;

 GROUP BY Reconst.a_id;

 INTO TABLE query12.dbf

set safety on

Текстзапроса query12_1.qpr:

set safety off

SELECT Reconst.a_id;

 FROM asl!reconst;

 GROUP BY Reconst.a_id;

 INTO TABLE query12_1.dbf

set safety on

Текст запроса query12_2.qpr:

SELECT COUNT(Query12.a_id) /  COUNT(Query12_1.a_id) as доля_дешевых_самолётов;

 FROM  query12_1 FULL JOIN query12 ;

   ON  Query12_1.a_id = Query12.a_id

Рис. 35 Доля дешевых самолётов, Менее 1000

Выводы.

В процессе выполнения данной расчётно-графической работы были закреплены знания и навыки, полученные в ходе сдачи лабораторных работ, включающие в себя:

  • Создание меню, облегчающего и ускоряющего доступ к основных функциям.
  • Создание форм, позволяющих получать данные от пользователя, что приводит к возможности создания гибких запросов, результаты которых зависят от заданных пользователями условий.
  • Работа с внутренним языком программирования Visual FoxPro 6.0 — определение переменных, массивов, создание циклов и условий. Все эти возможности значительно увеличивают потенциал использования языка SQL.
  • Создание запросов к базе данных, включающих в себя: объединения таблиц, подзапросы, условия, группировку данных, сортировку данных, управление получателем результата.