Рис. 17. Кто заработал за последний месяц сумму, указанную на экране?
Рис. 17. Самые высокооплачиваемы агенты за последний месяц (обратите внимание, что здесь указана агент «Тузикова», имеющая доходы за последний месяц, причём сумма дохода соответствует предыдущему запросу)
Код:
Select agent.фамилия as "fam",agent.имя as "nam",;
agent.отчество as "och",sum(goods.стоимость) as "Kol";
from dataagent!agent, dataagent!goods;
where agent.id = goods.id_агента;
AND month(goods.дата_продажи)=month(date())-1;
AND year(goods.дата_продажи)=year(date());
group by agent.фамилия;
order by Kol DESC;
into cursor cur1
select cur1.fam, cur1.nam, cur1.och, cur1.kol;
from cur1;
where cur1.kol > thisform.pageframe1.page4.text1.value
5. Найти - за какие месяцы заработки торгового агента (выбор агента) превысили 600 р. (ввод суммы, любой).
Рис. 18. Исходные данные для запроса
Рис. 19. Месяцы (и года), за которые мои доходы превышают 2700 рублей.
Обратите внимание, что если проанализировать рис. 5 (сводную таблицу товаров), можно заметить, «я» зарабатывал ещё и 2645 рублей в месяц, но эта сумма и месяц в таблице не указаны, как не удовлетворяющие условию.
Код:
Select month(goods.дата_продажи)as "месяц", year(goods.дата_продажи)as "Год",sum(goods.стоимость) as;
"Зарплата", agent.фамилия as "Фамилия",agent.имя as "Имя", agent.отчество as "Отчество";
from dataagent!agent, dataagent!goods;
where agent.id = goods.id_агента;
AND agent.фамилия = thisform.pageframe1.page5.combo1.value;
group by месяц, год;
order by Зарплата DESC;
into cursor cur1
select cur1.фамилия, cur1.имя,cur1.Отчество,cur1.месяц,cur1.год, cur1.зарплата;
from cur1;
where cur1.зарплата > thisform.pageframe1.page5.Text1.value
6. Для каждого торгового агента определить месяц, когда их заработок превышал 700 р. (ввод суммы, любой)
Рис. 20. По сути запрос 5, но для всех агентов.
Рис. 21. Теперь агентов в таблице – результате запроса много.
Код:
Select month(goods.дата_продажи)as "месяц", sum(goods.стоимость) as;
"Зарплата", agent.фамилия as "Фамилия",agent.имя as "Имя",agent.отчество as "Отчество";
from dataagent!agent, dataagent!goods;
where agent.id = goods.id_агента;
group by месяц, фамилия;
order by Зарплата DESC;
into cursor cur1
select cur1.фамилия, cur1.имя,cur1.Отчество,cur1.месяц, cur1.зарплата;
from cur1;
where cur1.зарплата > thisform.pageframe1.page6.Text1.value;
order by фамилия
7. Найти долю дешевых товаров (меньше заданного, ввод с клавиатуры) от общего числа товаров.
Результат выполнения запроса отображается непосредственно на форме. Подсчитывается общее количество товаров (записей в таблице Goods), и делится на количество записей в таблице Goods, удовлетворяющим условия текстового поля.
Код:
select count(goods.стоимость) as stoim;
from goods;
where goods.стоимость < (thisform.pageframe1.page7.Text1.value);
into cursor qq
select count(goods.наименование) as stoim;
from goods;
into cursor qqq
thisform.pageframe1.page7.Text2.value = (qq.stoim/qqq.stoim)*100
Рис. 22. Доля отображается непосредственно на форме.
8. Найти всех агентов заданного года рождения (ввод даты).
Рис. 23. Вот такой маленький процент товаров, цена которых лежит в промежутке от 500 до 750 рублей.
Код:
close all
use goods.dbf
calculate sum(goods.кол_во_продаж) to s1
calculate sum(goods.кол_во_продаж) for between;
(goods.стоимость,thisform.pageframe1.page8.Text1.value,thisform.pageframe1.page8.Text2.value) to s2
clear
thisform.pageframe1.page8.Text3.value=ROUND((s2/s1)*100,2)
9. Найти долю товаров, чья стоимость находится в заданных пределах (ввод интервала) от общего количества товаров.
Рис. 24 Запрос по дате рождения.
Рис. 25. Уроженцы 1982 года рождения.
Код:
SELECT agent.фамилия, agent.имя, agent.отчество, agent.год;
FROM agent;
where agent.год = thisform.pageframe1.page9.Text1.value
10. Найти все товары с заданной датой выпуска (ввод даты)
Рис. 26. Ввод даты для запроса
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.