Создание базы данных “Коммивояжер”, страница 3

Рис. 11. Общий вид формы Запросов

Все запросы реализованы на одной форме для экономии места на экране и удобства работы. Каждый (или почти каждый) запрос выполнен на отдельной вкладке.

4. Запросы и их результаты

Буду приводить вид формы, из которой запускается запрос, а заетм результаты, на конкретных данных, указанных на рисунке.

1.  Для каждого торгового агента указать сведения о нем (ФИО, год рождения, заработок, товар продажи, стоимость товара, дата продажи и т.п.).

Рис. 11. Вывод сведений об агенте.

                                     Рис. 12. Результат выполнения запроса.

Код:

select agent.Фамилия, agent.имя, agent.отчество, agent.год,;

goods.наименование, producer.производитель, country.страна,;

supplier.поставщик, goods.вес, goods.стоимость, goods.дата_продажи;

FROM   dataagent!agent, dataagent!goods,dataagent!country,;

dataagent!producer, dataagent!supplier;

where   agent.id=goods.id_агента and producer.id = goods.производитель;

and country.id = goods.страна and supplier.id = goods.поставщик and;

agent.фамилия = thisform.pageframe1.page1.combo1.value;

2.  Для каждого торгового агента выдать список, отсортированный:

n по дате продажи,

n в алфавитном порядке по товару продажи,

n по стоимости товара.

Рис. 13. Виды  сортировки для агента.

а)

б)

в)

Рис. 14. Результат сортировки:  а) по дате продажи; б) по товару продажи (а алфавитном порядке); в) по стоимости товара

Код:

do case

case thisform.pageframe1.page2.optiongroup1.option1.value=1

select agent.фамилия,agent.имя,agent.отчество,goods.наименование,goods.вес, producer.производитель,;

country.страна, supplier.поставщик, goods.стоимость, goods.дата_продажи;

FROM   dataagent!agent,  dataagent!goods,  dataagent!country,;

  dataagent!producer,  dataagent!supplier;

where  agent.id = goods.id_агента and country.id = goods.страна;

and producer.id = goods.производитель and supplier.id = goods.поставщик and;

agent.фамилия = thisform.pageframe1.page2.combo2.value;

ORDER BY goods.дата_продажи

case thisform.pageframe1.page2.optiongroup1.option2.value=1

select agent.фамилия,agent.имя,agent.отчество,goods.наименование,goods.вес, producer.производитель,;

country.страна, supplier.поставщик, goods.стоимость, goods.дата_продажи;

FROM   dataagent!agent,  dataagent!goods,  dataagent!country,;

  dataagent!producer,  dataagent!supplier;

where  agent.id = goods.id_агента and country.id = goods.страна;

and producer.id = goods.производитель and supplier.id = goods.поставщик and;

agent.фамилия = thisform.pageframe1.page2.combo2.value;

ORDER BY goods.наименование

case thisform.pageframe1.page2.optiongroup1.option3.value=1

select agent.фамилия,agent.имя,agent.отчество,goods.наименование,goods.вес, producer.производитель,;

country.страна, supplier.поставщик, goods.стоимость, goods.дата_продажи;

FROM   dataagent!agent,  dataagent!goods,  dataagent!country,;

  dataagent!producer,  dataagent!supplier;

where  agent.id = goods.id_агента and country.id = goods.страна;

and producer.id = goods.производитель and supplier.id = goods.поставщик and;

agent.фамилия = thisform.pageframe1.page2.combo2.value;

ORDER BY goods.стоимость

endcase

3. Найти заработок торгового агента (ввод агента) за последний месяц. 

Рис. 15. Зарплата агента за последний месяц

Последним месяцем считается ноябрь, так как это последний ПОЛНЫЙ месяц. Следует учесть, что не у всех агентов существуют заработки за последний месяц.

Зарплата исчисляется суммой проданных товаров за месяц.

Вот результат запроса, для агента «Тузикова»

                                                 

                                    Рис. 16. Зарплата Тузиковой за ноябрь

Код:

select sum(goods.стоимость);

from dataagent!agent, dataagent!goods,dataagent!country,;

dataagent!producer, dataagent!supplier;

where agent.id=goods.id_агента and producer.id = goods.производитель;

and country.id = goods.страна and supplier.id = goods.поставщик;

        AND agent.фамилия=thisform.pageframe1.page3.combo3.value;

     AND  month(goods.дата_продажи)=month(date())-1;

     AND  year(goods.дата_продажи)=year(date())

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