Создание базы данных, в которой удобно и быстро вести учет финансовой деятельности фирмы, занимающийся покупкой/продажей антиквариатов, страница 7

count1 = 0

SELECT count(anticvariat.íàèìåíîâàíèå );

FROM  myrgr!anticvariat;

WHERE  anticvariat.äàòà_ïðîäàæè_ôèðìîé BETWEEN thisform.pageframe1.page4.text1.value AND thisform.pageframe1.page4.text2.value;

INTO ARRAY count1

SELECT count(anticvariat.íàèìåíîâàíèå);

FROM myrgr!anticvariat;

INTO ARRAY count2;

result = count1/count2*100

thisform.pageframe1.page4.text3.value = count1

thisform.pageframe1.page4.text4.value = count2

thisform.pageframe1.page4.text5.value = ALLTRIM(STR(result))+"%"

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


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

Код запроса:

SELECT AVG(anticvariat.цена_руб);

FROM myrgr!anticvariat;

WHERE anticvariat.id_тип_антиквариата ==;

(SELECT id_тип_антиквариата FROM myrgr!type_anticvariata;

WHERE тип_антиквариата = this.parent.ComboTypeAntic.value);

AND место_издания = this.parent.Combo2.value;

INTO CURSOR cur4

SELECT type_anticvariata.тип_антиквариата, anticvariat.наименование, anticvariat.цена_руб, anticvariat.место_издания,;

anticvariat.id_продавца;

FROM myrgr!anticvariat INNER JOIN myrgr!type_anticvariata;

ON  anticvariat.id_тип_антиквариата = type_anticvariata.id_тип_антиквариата;

WHERE id_продавца == (SELECT id_продавца FROM myrgr!seller;

WHERE фамилия_продавца == thisform.pageframe1.page4.combo1.value);

AND цена_руб > cur4.AVG_цена_руб;

ORDER BY наименование;

INTO CURSOR cur5

SELECT cur5.тип_антиквариата, cur5.наименование, cur5.цена_руб, cur5.место_издания, seller.фамилия_продавца;

FROM cur5 INNER JOIN myrgr!seller;

ON  cur5.id_продавца = seller.id_продавца

Рис.26 Запрос седьмой.

Рис.27 Результат запроса.

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

Код запроса:

SELECT anticvariat.наименование, anticvariat.цена_руб, anticvariat.id_тип_антиквариата,;

seller.фамилия_продавца;

FROM myrgr!anticvariat INNER JOIN myrgr!seller;

ON anticvariat.id_продавца = seller.id_продавца;

WHERE цена_руб < thisform.pageframe1.page4.text7.value;

INTO CURSOR cur6

SELECT type_anticvariata.Тип_антиквариата, cur6.Наименование, cur6.Цена_руб;

FROM myrgr!type_anticvariata INNER JOIN cur6;

ON  type_anticvariata.id_тип_антиквариата = cur6.id_тип_антиквариата;

ORDER BY цена_руб

Код подсчета доли антиквариатов (см. рис.28).

LOCAL count1[1]

LOCAL count2[1]

LOCAL count3[1]

LOCAL count4[1]

count1 = 0

SELECT count(anticvariat.наименование );

FROM  myrgr!anticvariat;

WHERE  anticvariat.цена_руб < thisform.pageframe1.page4.text7.value;

AND id_продавца ==;

              (SELECT id_продавца FROM myrgr!seller;

                            WHERE фамилия_продавца == thisform.pageframe1.page4.combo3.value);

INTO ARRAY count1

SELECT count(anticvariat.наименование);

FROM myrgr!anticvariat;

WHERE id_продавца ==;

              (SELECT id_продавца FROM myrgr!seller;

                            WHERE фамилия_продавца == thisform.pageframe1.page4.combo3.value);

INTO ARRAY count2;

SELECT count(anticvariat.наименование);

FROM myrgr!anticvariat;

WHERE цена_руб < thisform.pageframe1.page4.text7.value;

INTO ARRAY count3;

SELECT count(anticvariat.наименование);

FROM myrgr!anticvariat;

WHERE цена_руб < (SELECT MAX(цена_руб);

FROM myrgr!anticvariat);

INTO ARRAY count4;

result1 = count1/count2*100

result2 = count3/count4*100

thisform.pageframe1.page4.text8.value = count1

thisform.pageframe1.page4.text9.value = count2

thisform.pageframe1.page4.text10.value = ALLTRIM(STR(result1))+"%"

thisform.pageframe1.page4.text11.value = count3

thisform.pageframe1.page4.text12.value = count4

thisform.pageframe1.page4.text13.value = ALLTRIM(STR(result2))+"%"