Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Начало нового описания SQL_QBE .doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
564.22 Кб
Скачать

7.2.1.2. Сложные однотабличные и многотабличные запросы (несколько условий отбора)

1. Дать список поставщиков, имеющих статус 10 И проживающих в Донецке.

SELECT nomp, famp, gord, stat FROM Data1!POSHK;

WHERE stat=10 AND gord=‘ДОНЕЦК

2.Дать список поставщиков, проживающих в городе Киев ИЛИ МОСКВА.

SELECT nomp, famp, gord, stat FROM Data1!POSHK;

WHERE gord=‘КИЕВ’OR gord=‘МОСКВА

Самостоятельная работа: написать объяснение опций, используемых в приведенных примерах.

3. Вывести номера поставщиков, поставляющих количество деталей от 500 до 1200 штук.

SELECT nomp, kolw FROM Data1!POSKI WHERE kolw BETWEEN 500 AND 1200

4.Вывод фамилий всех поставщиков, кроме поставщиков, не проживающих в МОСКВЕ и КИЕВЕ.

SELECT famp, gord FROM Data1!POSHK WHERE gord NOT IN (‘МОСКВА’,‘КИЕВ’)

5.Выборка номеров поставщиков с количествами поставляемых ими деталей без повторений.

SELECT DISTINCT nomp, kolw FROM data1!poski

Самостоятельная работа:

1) выбрать количество деталей и номера поставляющих их поставщиков без повторений;

2) сравнить количество выбранных строк в полученных выборках с количеством строк в исходном файле poski и сделать вывод о работе опции DISTINCT команды SELECT.

6. Вывод из ТБД POSHK.DBF всех поставщиков, имеющих в фамилии сочетания букв "РО", и их города.

SELECT poshk.famp, poshk.gord FROM data1!poshk WHERE poshk.famp LIKE "%РО%"

7. Выбрать все поля соответствующих строк из ТБД poshk, где значение столбца (поля) stat >= 10, а также значения поля famp, находящиеся в промежутке от фамилии Иванов до фамилии Сидоров, или же имеющее значение поля gord, которым является Киев.

SELECT * FROM data!poshk;

WHERE ((STAT>=10); and (FAMP BETWEEN ‘Иванов’ and ‘СИДОРОВ’))

OR GORD Like ‘%Киев%’

8. Выборка всех номеров и наименований деталей файла из DETL.DBF, сцепленных с номерами деталей из ТБД POSKI.DBF, для записей, у которых номера деталей равны значению "Д5".

SELECT detl.nomd, detl.naim, poski.kolw, poski.data;

FROM Data1!detl, Data1!Poski;

Where detl.nomd=”Д5” and poski.nomd=”Д5”.

9.Если мы хотим задать собственные имена колонкам, а не использовать умолчания, нужно воспользоваться опцией AS (в качестве).

Пусть нужно вывести номера поставщиков и их фамилии (поля nomp и famp) по алфавиту, но с другими именами колонок, например, с именами Номер_поставщика и Фамилия_поставщика.

SELECT nomp AS Номер_поставщика, famp AS Фамилия_поставщика FROM Data1!POSHK_K ORDER BY famp

Самостоятельная работа: записать результат запроса в таблицу POSHK_AS, и вывести на экран содержимое таблицы с заголовком 'Переименованные поля таблицы Poshk_k'.

10. Вывод минимального, максимального и среднего значений поля KOLW (среднее значение). Колонки получат исходные имена MIN_KOLW, MAX_KOLW и AVG_KOLW, которые следует переименовать.

SELECT MIN(KOLW),MAX(KOLW),AVG(KOLW) FROM Data1!POSKI

11. Вывод полей nomd и cena из файла DETL, kolw и data из файла POSKI с расчетом суммы за поставки и с расчетом скидки. Присвоение имен Сумма_без_скидки, Скидка и Сумма_со_скидкой вычисленным полям.

SELECT detl.nomd, detl.cena, poski.kolw, poski.data, (poski.kolw * detl.cena) as Сумма_без_скидки, (poski.kolw * detl.cena)*0.2 as Скидка, ((poski.kolw * detl.cena)-(poski.kolw * detl.cena)*0.2) as Сумма_со_скидкой FROM data1!detl, poski

Чтобы увидеть содержимое этой ТБД, можно, например, сразу ввести команду BROWSE.

Самостоятельная работа: записать результат запроса в таблицу Vichisl, и вывести на экран содержимое таблицы с заголовком 'Вычисления в таблицах Poski, Detl'.