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

Рис. 27. Есть только один такой товар. Молоко.

Код:

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

supplier.поставщик, 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;

 goods.дата_выпуска = thisform.pageframe1.page10.date1.value

11. Найти долю товара, поступившего от заданного поставщика (ввод поставщика) из заданной страны (ввод страны) от общего числа поставщиков

Рис. 28. Запрос 11 автоматически отображает результат на экране.

Код:

select count(goods.наименование) as koltov;

from dataagent!goods, dataagent!supplier, dataagent!country;

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

goods.поставщик = VAL(thisform.pageframe1.page11.combo1.value) and;

goods.страна = VAL(thisform.pageframe1.page11.combo2.value);

into cursor qq NOCONSOLE;

select count(goods.поставщик) as kolpost;

from dataagent!goods, dataagent!supplier;

where supplier.id = goods.поставщик;

into cursor qqq

thisform.pageframe1.page11.Text1.value = (qq.koltov/qqq.kolpost)*100

12. Найти весь товар с заданным весом (ввод веса), чья стоимость находится в заданных пределах (ввод пределов).

Код:

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

supplier.поставщик, goods.вес, 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;

goods.стоимость between thisform.pageframe1.page12.Text1.value and;

thisform.pageframe1.page12.Text2.value and;

goods.вес = thisform.pageframe1.page12.Text3.value

Рис. 29. Ввод интервала стоимости и значения веса для искомого товара

Рис. 30. Наёдено 4 товара, с весом 1 кг и ценой от 0 до 1500 рублей.

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

Код:

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

supplier.поставщик, goods.вес, 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;

supplier.поставщик=;

thisform.pageframe1.page13.combo1.value and;

goods.стоимость > thisform.pageframe1.page13.text1.value

Рис. 31. Обработка запроса номер 13

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

Как можно видеть на рис. 32, отобразились только те товары, чья стоимость превышает 5000 р.

14.  Найти весь товар заданного производителя (выбор)

Код:

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

supplier.поставщик, goods.вес, 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;

producer.производитель =;

thisform.pageframe1.page14.producer.value

Рис. 33. Выбор производителя.

Рис. 34. Creative производит, как оказалось, CD-ROM, материнские платы и звуковые платы

15.  Найти долю товара, проданного за определённый период времени (ввод периода) от общего времени продажи

Код:

close all

use goods.dbf

calculate sum(goods.кол_во_продаж) to s1

calculate sum(goods.кол_во_продаж) for between(goods.дата_продажи,thisform.pageframe1.page15.Text1.value,thisform.pageframe1.page15.Text2.value) to s2

clear

thisform.pageframe1.page15.Text3.value=ROUND((s2/s1)*100,2)

use producer.dbf

use country.dbf

use supplier.dbf

use agent.dbf

Рис. 35. Автоматически считается доля

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