Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Корр_Запросы на языке SQL и на базовом.doc
Скачиваний:
1
Добавлен:
17.11.2019
Размер:
539.14 Кб
Скачать

Запрос 2: запрос по точному несовпадению значения одного поля

В таблице Poshk дать фамилии и города поставщиков, не проживающих в городе Киев.

См. запрос 1. Все так же + поставить флажок в зоне Not: Poshk.gord not = “Киев”.

Query2.qpr:

SELECT Poshk.nomp, Poshk.famp, Poshk.gord;

FROM ;

data1!poshk;

WHERE Poshk.gord <> ( "КИЕВ" )

Запрос 3: запрос по неточному совпадению значения одного поля

Скопировать POSHK в POSHK_K. В файле POSHK_K создать дополнительные поля: firstname, lastname. Дополнить записи. Запрос: выбрать поставщиков, имена которых начинаются на "ИВА" или "Ива".

Query3.qpr:

SELECT Poshk_k.famp, Poshk_k.name, Poshk_k.lastname;

FROM ;

data1!poshk_k;

WHERE Poshk_k.famp = ( "ИВА" );

OR Poshk_k.famp = ( "Ива" )

Запрос 4: запрос с вычисляемым полем

Из таблицы poshk_k выбрать: номер поставщика, его ФИО, объединив ФИО в один столбец с именем "ФИО". Уникальное условие запроса: ALLTRIM при объединении удаляет лишние концевые пробелы значения поля.

На вкладке Fields выбрать поле nomp и добавить его в зону Selected Fields. На вкладке Fields в строке Functions and Expressions ввести выражение:

(Alltrim(famp)+” “+ Alltrim(firstname)+” “ +Alltrim(lastname)).

Нажать Add для добавления выражения в зону Selected Fields.

Query4.qpr:

SELECT Poshk_k.nomp,;

ALLTRIM(Poshk_k.famp)+" "+ALLTRIM(Poshk_k.firstname)+" "+ALLTRIM(Poshk_k.lastname) AS фио;

FROM ;

data1!poshk_k

Query5.qpr:

Из ТБД POSKI: выдать информацию за дату 18/09/01.

SELECT *;

FROM ;

data1!poski;

WHERE Poski.data = CTOD("18/09/01")

Query6.qpr:

Из ТБД POSKI: выдать информацию о NOMP, NOMD, NOMR при количестве поставленных деталей >=400 деталей за дату 18/09/01.

SELECT *;

FROM ;

data1!poski;

WHERE Poski.kolw >= ( 400 );

AND Poski.data = CTOD("18/09/01")

Query7.qpr:

Из таблицы poski:

  1. выбрать nomr, nomd;

  2. сохранить результат запроса в области ОП cursor под именем nomrd;

  3. вывести результат запроса из ОП на экран.

SELECT Poski.nomr, Poski.nomd;

FROM ;

data1!poski;

ORDER BY Poski.nomr, Poski.nomd;

Into cursor Nomrd

*Способы сохранения результата выборки не на экране:

*1) Команда ГМ: Query - Query destination

*2) Правой кнопкой мыши щелкнуть на пустом месте бланка запроса и выполнить команду Output Settings

browse

Query8.qpr:

Выдать из таблицы poshk_k поставщиков с фамилией, начинающейся на "И".

SELECT Poshk_k.nomp, Poshk_k.famp, Poshk_k.name, Poshk_k.lastname,;

Poshk_k.gord, Poshk_k.stat;

FROM ;

data1!poshk_k;

WHERE Poshk_k.famp = ( "И" )

Query9.qpr:

Из POSKI подсчитать: общее количество записей, сумму, среднее, максимальное и минимальное значения по полю количество и дата поставок - подсчитать. Информацию сохранить в области ОП "difficult".

SELECT COUNT(*), SUM(Poski.kolw), AVG(Poski.kolw), MAX(Poski.kolw),;

MIN(Poski.kolw), MAX(Poski.data), MIN(Poski.data);

FROM ;

data1!poski;

Into cursor difficult

Browse

Многотабличные запросы

query10.qpr:

Выдать номера поставщиков, их ФИО, номера и наименование деталей, номера разработчиков, количество и даты поставок при условии:

  1. nomd <= "Д3";

  2. диапазон дат от 09/12/01 до 09/20/01;

  3. порядок выдачи результата: nomp, nomd, nomr;

  4. результат сохранить в файле mnt_pr;

  5. вывести результат из файла на экран.

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