MNA(x)=assort.Имя_товара
MTA(x)=assort.Поставщик
x=x+1
SKIP
ENDDO
USE "d:\bd\points.dbf"
DIMENSION OTD(6)
DIMENSION OT(27)
GO top
x=1
nine=0
i=1
&&запись без повторов (отделы)
DO while x<=27
nine=0
FOR i=1 TO x-1
IF points.Отдел=OT(i)
nine=1
ENDIF
ENDFOR
IF nine!=1
OT(x)=points.Отдел
ELSE
OT(x)="111"
ENDIF
x=x+1
SKIP
ENDDO
j=0
y=0
DO WHILE j<=26
j=j+1
IF OT(j)!="111"
y=y+1
OTD(y)=OT(j)
ENDIF
ENDDO
&& Этажи
DIMENSION PP(3)
PP(1)=1
PP(2)=2
PP(3)=3
Результаты работы
Запрос #1
Для каждого поставляемого товара выдать ее характеристику, фирму поставщика (если их несколько - то всех, различия в цене или другие различия), ФИО служащих, которые торгуют этим товаром, отделы и т.д.
Рис. 4. Вкладка для реализации запроса #1
Текст запроса:
SELECT assort.Имя_товара, assort.Поставщик, assort.Цена,;
sluzh.Фамилия, sluzh.Имя, sluzh.Отчество, sluzh.Отдел,;
points.Об_продаж;
FROM assort INNER JOIN points;
ON Assort.имя_товара = Points.имя_товара ;
INNER JOIN sluzh;
ON Points.отдел = Sluzh.отдел order BY 1
Рис.5. Результат работы запроса #1
Запрос #2
Найти число служащих в каждом отделе.
Рис. 6. Вкладка для реализации запроса #2
Текст запроса:
CLOSE TABLES
USE "d:\bd\sluzh.dbf"
COUNT FOR sluzh.отдел="Зоотовары" TO vvv
form1.pageframe1.page2.label7.caption=STR(vvv)
COUNT FOR sluzh.отдел="Спортивный" TO vvv
form1.pageframe1.page2.label8.caption=STR(vvv)
COUNT FOR sluzh.отдел="Канцтовары" TO vvv
form1.pageframe1.page2.label9.caption=STR(vvv)
COUNT FOR sluzh.отдел="Обувной" TO vvv
form1.pageframe1.page2.label10.caption=STR(vvv)
COUNT FOR sluzh.отдел="Одежда" TO vvv
form1.pageframe1.page2.label11.caption=STR(vvv)
COUNT FOR sluzh.отдел="Книжный" TO vvv
form1.pageframe1.page2.label13.caption=STR(vvv)
Рис.6. Результат работы запроса #2
Запрос #3
Найти этажи, на которых продаются товары фирмы АА (выбор из меню любого наименования) или товары фирмы ББ (выбор из меню любого наименования).
Рис. 7. Вкладка для реализации запроса #3
Текст запроса:
SELECT DISTINCT assort.Поставщик, points.Этаж;
FROM assort INNER JOIN points;
ON Assort.имя_товара = Points.имя_товара ;
INNER JOIN sluzh;
ON Points.отдел = Sluzh.отдел;
Where assort.Поставщик=form1.pageframe1.page3.combo1.value;
OR assort.Поставщик=form1.pageframe1.page3.combo2.value;
ORDER BY assort.Поставщик
Рис.8. Результат работы запроса #3
Запрос #4
Найти суммарный объем товаров, проданных отделами второго этажа (выбор), стоимость которых превосходит 25000 руб. (ввод произвольного числа с клавиатуры).
Рис. 9. Вкладка для реализации запроса #4
Текст запроса:
SELECT SUM(points.Об_продаж);
FROM assort INNER JOIN points;
ON Assort.имя_товара = Points.имя_товара ;
INNER JOIN sluzh;
ON Points.отдел = Sluzh.отдел;
where points.Этаж=Evaluate(form1.pageframe1.page4.combo1.value);
AND assort.цена>Evaluate(form1.pageframe1.page4.text2.text)
Рис.10. Результат работы запроса #4
Запрос #5
Найти фамилии служащих, работающих в отделах, торгующих товаром вида ДД (выбор наименования товара).
Рис. 11. Вкладка для реализации запроса #5
Текст запроса:
SELECT DISTINCT sluzh.Фамилия, points.Отдел, assort.Имя_товара;
FROM assort INNER JOIN points;
ON Assort.имя_товара = Points.имя_товара ;
INNER JOIN sluzh;
ON Points.отдел = Sluzh.отдел;
where assort.Имя_товара=form1.pageframe1.page5.combo1.value
Рис.12. Результат работы запроса #5
Запрос #6
Для руководителей, имеющих более 5 подчиненных, найти сумму зарплат их подчиненных, для остальных руководителей - найти их собственную зарплату.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.