LOCAL cntpost(kol,2)
SELECT typ.type_, avg(press.price);
FROM pressa!press inner join pressa!typ;
ON press.id_type=typ.id_type;
group by typ.id_type;
INTO ARRAY cntpost
LOCAL maxi
maxi=cntpost(2)
FOR gnCount=1 TO kol STEP 1
IF (cntpost(gnCount*2)>maxi)
maxi=cntpost(gnCount*2)
ENDIF
ENDFOR
LOCAL sentence
sentence="Самый дорогой вид продукции: "
FOR gnCount = 1 TO kol STEP 1
IF (cntpost(gnCount*2)=maxi)
sentence=sentence+cntpost(gnCount*2-1)
ENDIF
ENDFOR
MessageBox(alltrim(sentence))
Обработка кнопки «Самое дешевое издание»:
LOCAL kol(1)
SELECT count(typ.type_);
FROM pressa!typ;
INTO ARRAY kol
LOCAL cntpost(kol,2)
SELECT typ.type_, avg(press.price);
FROM pressa!press inner join pressa!typ;
ON press.id_type=typ.id_type;
group by typ.id_type;
INTO ARRAY cntpost
LOCAL minn
minn=cntpost(2)
FOR gnCount=1 TO kol STEP 1
IF (cntpost(gnCount*2)<minn)
minn=cntpost(gnCount*2)
ENDIF
ENDFOR
LOCAL sentence
sentence="Самый дешевый вид продукции: "
FOR gnCount = 1 TO kol STEP 1
IF (cntpost(gnCount*2)=minn)
sentence=sentence+cntpost(gnCount*2-1)
ENDIF
ENDFOR
MessageBox(alltrim(sentence))
Обработка кнопки «Средняя стоимость в целом»:
SELECT typ.type_, AVG(press.price);
FROM pressa!press INNER JOIN pressa!typ;
ON press.id_type==typ.id_type;
group by typ.id_type
Обработка кнопки «Средняя стоимость с учетом вида прессы»:
SELECT typ.type_ as Type_of_press, AVG(press.price) as Average_price;
FROM pressa!press inner join pressa!typ;
ON press.id_type=typ.id_type;
WHERE press.id_type=(SELECT typ.id_type FROM pressa!typ WHERE typ.Type_=thisform.combo1.value)
Результаты работы запроса:
Рис.13.Результаты работы формы “form_02.scx”
Form_03.scx
Найти прессу с ценой выше 5р. (и любая другая сумма, т.е. предусмотреть ввод цены с клавиатуры) для каждого вида издания и в целом
Рис.14. Форма “form_03.scx”
Обработка кнопки «Найти в целом»:
select press.name_press, press.price;
from pressa!press;
where press.price > ThisForm.Text1.Value;
ORDER BY press.price
Обработка кнопки «Найти по виду»:
SELECT press.name_press, press.price;
FROM pressa!press INNER JOIN pressa!typ;
ON press.id_type==typ.id_type;
WHERE press.price > Thisform.Text1.value;
AND press.id_type=(select typ.id_type FROM pressa!typ WHERE typ.type_=thisform.combo1.value)
Результаты работы запроса:
Рис.15.Результаты работы формы “form_03.scx”
Form_04.scx
Найти все издания, чей тираж попадает в заданные пределы (ввод интервала)
Рис.16. Форма “form_04.scx”
Обработка кнопки «Найти»:
select press.name_press, press.circulation;
FROM pressa!press;
where press.circulation between ThisForm.Text1.Value and ThisForm.Text2.Value;
ORDER BY press.circulation
Результаты работы запроса:
Рис.17.Результаты работы формы “form_04.scx”
Form_05.scx
Для заданного издательства (выбор) найти все виды газетной продукции
Рис.18. Форма “form_05.scx”
Обработка кнопки «Найти»:
SELECT Press.name_press, Publisher.publisher_, Typ.type_ ;
FROM pressa!publisher FULL JOIN pressa!press;
FULL JOIN pressa!typ ;
ON Typ.id_type = Press.id_type ;
ON Publisher.id_publisher = Press.id_publisher;
where publisher.id_publisher=(SELECT publisher.id_publisher FROM pressa!publisher WHERE publisher.publisher_=ThisForm.Combo1.Value)
Результат работы запроса:
Рис.19.Результаты работы формы “form_05.scx”
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.