- •Лабораторная работа №7
- •7.1. Типы запросов данных в sql
- •7.2. Формирование запросов из тбд командным способом
- •Указание результатов выборки и источников данных
- •Указание объекта, куда пересылается выборка
- •Критерий отбора данных
- •Группирование данных
- •7.2.1.2. Сложные однотабличные и многотабличные запросы (несколько условий отбора)
- •7.3.1. Характеристика до «Конструктор запросов»
- •7.3.2. Файлы запросов на языке sql и результаты их выполнения
- •7.3.2.1. Однотабличные запросы Запрос 1: запрос по точному совпадению значения одного поля
- •7.3.Оператор select, формируемый интерактивным способом с помощью метода построения запроса qbe
- •Внимание !
- •1.Предъявляемые ниже тексты всех остальных запросов служат для проверки правильности настройки конкретного бланка запроса.
- •Запрос 3: запрос по неточному совпадению значения одного поля
- •Запрос 4: запрос с вычисляемым полем
- •Запрос 5: запрос поиск по точному совпадению значения даты
- •Самостоятельная работа
- •7.2.1.2. Многотабличные запросы
- •Сложные запросы.
- •Вложенные запросы.
- •Values (‘п6’, ‘Быков’, ‘Москва’, 30, ‘Иван’, ‘Борисович’)
- •7.6 Арифметические операции в опции where
Самостоятельная работа
Запрос 7_1: выполнить запрос 7 с переоформлением заголовка и переименованием полей в результатной таблице с помощью опций команды BROWSE. Результат сохранить в Курсоре с произвольным именем.
Название нового заголовка:
"Ctrl+N - вставка Ctrl+W - Выход Ctrl+T - удаление"
Названия полям присвоить самостоятельно.
Запрос 7_2: выполнить запрос 7 с переименованием полей в результатной таблице с помощью опций команды BROWSE. Результат сохранить в Курсоре с произвольным именем.
Названия заголовку и полям присвоить самостоятельно.
7.2.1.2. Многотабличные запросы
query10.qpr:
Выдать номера поставщиков, их ФИО, номера и наименование деталей, номера разработчиков, количество и даты поставок при условии:
nomd <= "Д3";
диапазон дат от 09/12/01 до 09/20/01;
порядок выдачи результата: nomp, nomd, nomr;
результат сохранить в файле mnt_pr;
вывести результат из файла на экран.
SELECT Poshk.nomp, Poshk.famp, Detl.nomd, Detl.naim, Poski.nomr, Poski.kolw,;
Poski.data;
FROM ;
data1!poshk ;
INNER JOIN data1!poski ;
ON Poshk.nomp = Poski.nomp ;
INNER JOIN data1!detl ;
ON Poski.nomd = Detl.nomd;
WHERE Detl.nomd <= ( "Д3" );
AND Poski.data BETWEEN CTOD("09/12/01") AND CTOD("09/20/01");
ORDER BY Poshk.nomp, Detl.nomd, Poski.nomr;
INTO TABLE mnt_pr.dbf
USE mnt_pr
BROWSE
query11.qpr:
Продолжение многотабличных запросов mnt_pr, proek, выдать то же + наименование проекта.
SELECT Mnt_pr.nomp, Mnt_pr.famp, Mnt_pr.nomd, Mnt_pr.naim, Mnt_pr.nomr,;
Proek.npro, Mnt_pr.kolw, Mnt_pr.data;
FROM ;
data1!mnt_pr ;
INNER JOIN data1!proek ;
ON Mnt_pr.nomr = Proek.nomr;
ORDER BY Mnt_pr.nomp, Mnt_pr.nomd, Mnt_pr.nomr;
INTO CURSOR Ask
BROWSE
query12.qpr:
Выбранные записи упорядочить по фамилии и имени разработчика. Информацию сохранить в области ОП "Z11".
SELECT Poshk.famp, Poski.nomp, SUM(Poski.kolw), COUNT(*) AS p1;
FROM ;
data1!poshk ;
INNER JOIN data1!poski ;
ON Poshk.nomp = Poski.nomp;
GROUP BY Poshk.famp, Poski.nomp;
INTO CURSOR Z11
BROWSE
Сложные запросы.
mnt.prg:
SELECT Poshk.nomp, Poshk.famp, Detl.nomd, Detl.naim, Poski.nomr, Poski.kolw,;
Poski.data;
FROM ;
data1!poshk ;
INNER JOIN data1!poski ;
ON Poshk.nomp = Poski.nomp ;
INNER JOIN data1!detl ;
ON Poski.nomd = Detl.nomd;
WHERE Detl.nomd <= ( "Д3" );
AND Poski.data BETWEEN CTOD("09/12/01") AND CTOD("09/20/01");
ORDER BY Poshk.nomp, Detl.nomd, Poski.nomr;
INTO TABLE mnt_pr.dbf
USE mnt_pr
BROWSE
SELECT Mnt_pr.nomp, Mnt_pr.famp, Mnt_pr.nomd, Mnt_pr.naim, Mnt_pr.nomr,;
Proek.npro, Mnt_pr.kolw, Mnt_pr.data;
FROM ;
data1!mnt_pr ;
INNER JOIN data1!proek ;
ON Mnt_pr.nomr = Proek.nomr;
ORDER BY Mnt_pr.nomp, Mnt_pr.nomd, Mnt_pr.nomr;
INTO CURSOR Ask
BROWSE
nomr_nomd.prg:
Оформление заголовков в шапке запроса
SELECT Poski.nomr, Poski.nomd;
FROM data1!poski;
ORDER BY Poski.nomr, Poski.nomd;
INTO CURSOR Nomrd
BROWSE;
title "Ctrl+N - вставка Ctrl+W - Выход Ctrl+T - удаление";
fields Nomr: H = "Номер разработчика": 27,;
Nomd: H = "Номер детали": 20
zap_k_vosm1.prg:
SELECT *;
FROM vozm;
WHERE vozm.nomp = "П5";
ORDER BY vozm.nomd
zap_k_vosm2.prg:
SELECT *;
FROM vozm;
WHERE vozm.nomd = "Д6";
ORDER BY vozm.nomp
