Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
информатика отчет.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
241 Кб
Скачать
☆

Void main()

{

int i;

int mas1[10]; // Определяем целочисленный массив

double mas2[10]; // Определяем массив чисел с плавающей точкой

srand(time(NULL));// Инициализация генератора случайных чисел

// Заполняем массивы случайными числами

for (i = 0; i < 10; i++)

{ mas1[i] = rand()%10;

mas2[i] = rand()%10 * 0.01;

}

cout << "\t\t\tsortirovka with method insert\n\n";

// Сортировка целых чисел

insert(mas1, 10);

cout << "Result sortirovki int chisla :\n";

for (i = 0; i < 10; i++)

cout << mas1[i] << " ";

// Cортировка чисел с плавающей точкой

insert(mas2, 10);

cout << "\n\nResult sortirovki chisla with double point:\n";

for (i = 0; i < 10; i++)

cout << mas2[i] << " ";

SymStr mas3[5] = {"alik", "alat", "diana", "renat", "lena"};

// Cортировка символьных строк

insert(mas3, 5);

cout << "\n\nResult sortirovki bitovich strok:\n";

for (i = 0; i < 5; i++)

cout << mas3[i] << " ";

getch();

}

Отчет по SQL

Входный файлы

Таблиц «Продавцы»

Salespeople

Snum

Sname

City

Comm

1

2

3

4

5

1001

1002

1004

1007

1003

Peel

Serres

Motika

Rifkin

Axelrod

London

San Jose

London

Barcelona

New York

0,12

0,13

0,11

0,15

0,10

Таблица «Заказы»

Orders

Onum

Amt

Odate

Cnum

Snum

1

2

3

4

5

6

7

8

9

10

3001

3003

3002

3005

3006

3009

3007

3008

3010

3011

18,69

767,19

1 900,10

5 160,45

1 098,16

1 713,23

75,75

4 723,00

1 309,95

9 891,88

03.10.1990

03.10.1990

03.10.1990

03.10.1990

03.10.1990

04.10.1990

04.10.1990

05.10.1990

06.10.1990

06.10.1990

2008

2001

2007

2003

2008

2002

2004

2006

2004

2006

1007

1001

1004

1002

1007

1003

1002

1001

1002

1001

Таблица «Покупатели»

Customers

Cnum

Cname

City

Rating

Snum

1

2

3

4

5

6

7

2001

2002

2003

2004

2006

2008

2007

Hoffman

Giovanni

Liu

Grass

Clemens

Cisneros

Pereira

London

Rome

SanJose

Berlin

London

SanJose

Rome

100

200

200

300

100

300

100

1001

1003

1002

1002

1001

1007

1004

3(1)/* 1. Напишите команду SELECT которая бы вывела номер порядка,

сумму, и дату для всех строк из таблицы Порядков. */

/*SELECT onum, amt, odate

FROM Orders; */

/* 2. Напишите команду SELECT, которая бы вывела номер Заказчика,

город и рейтинг для всех строк из таблицы Заказчиков. */

SELECT cnum, city, rating

FROM Customers;

3(2)

/* 1. Напишите запрос который вывел бы все строки из

таблицы Заказчиков для которых номер продавца = 1001. */

SELECT *

FROM Customers

WHERE snum = 1001; /

/* 2. Напишите запрос, который вывел бы все строки из

таблицы Заказов, для которых номер продавца = 1001. */

SELECT *

FROM Orders

WHERE snum = 1001;

3(3)

/* 1 Напишите запрос который вывел бы таблицу

со столбцами в следующем порядке: city, sname, snum, comm. */

SELECT city, sname, snum, comm

FROM Salespeople;

/* 2. Напишите запрос, который вывел бы таблицу Заказчиков

со столбцами в порядке: city, snum, cname, cnum, rating. */

SELECT city, snum, cname, cnum, rating

FROM Customers;

3(4)

/* 1. Напишите команду SELECT которая вывела бы оценку(rating),

сопровождаемую именем каждого заказчика в SanJose. */

SELECT rating, cname

FROM Customers

WHERE city = 'SanJose';

/* 2. Напишите команду SELECT которая вывела бы имя и

комиссионные каждого продавца из города London. */

SELECT sname, comm

FROM Salespeople

WHERE city = 'London';

3(5)

/* 1. Напишите запрос который вывел бы значения snum

всех продавцов в текущем порядке из таблицы Порядков

без каких бы то ни было повторений. */

SELECT DISTINCT snum

FROM Orders;

/* 2. Напишите запрос, который вывел бы значения cnum

всех заказчиков из таблицы Заказов без каких бы то ни было

повторений. */

SELECT DISTINCT cnum

FROM Orders;

4(1)

/*1. Напишите запрос который может дать вам все порядки

со значениями суммы выше чем $1,000. */

SELECT *

FROM Orders WHERE amt > 1000;

/* 2. Напишите запрос, который дает всех заказчиков

с рейтингом выше чем 150. */

SELECT * FROM Customers WHERE rating > 150;

4(2)

/* 1. Напишите запрос который может выдать вам поля sname и city

для всех продавцов в Лондоне с комиссионными выше .10 . */

SELECT sname, city

FROM Salespeople

WHERE city = 'London'

AND comm > .10;

/* 2. Напишите запрос, который может выдать вам поля cname и city

для всех заказчиков из города SanJose с рейтингом выше 150. */

SELECT cname, city

FROM Customers

WHERE city = 'SanJose'

AND rating > 150;

4(3)

/* 1. Напишите запрос к таблице Заказчиков чей вывод

может включить всех заказчиков с оценкой =< 100,

если они не находятся в Риме. */

SELECT *

FROM Customers

WHERE rating > 100

OR city = 'Rome';

или

SELECT *

FROM Customers

WHERE NOT rating < = 100

OR city = 'Rome';

или

SELECT *

FROM Customers

WHERE NOT (rating < = 100

AND city < > 'Rome');

/* 1. А) Напишите запрос к таблице Продавцов, который дает

всех Продавцов за исключением Продавцов из города London,

имеющих комиссионные выше 0.11.

Б) Напишите запрос к таблице Продавцов, который дает

всех Продавцов таких что, если он из города London,

то его комиссионные не выше 0.11, а иначе - выше 0.13. */

  1. SELECT *

FROM Salespeople

WHERE NOT (city ='London'

AND comm <= 0.11 );

Б) SELECT *

FROM Salespeople

WHERE (city ='London'

AND comm <= 0.11 )

OR comm >0.13;

5(1)

/* 1. Напишите два запроса которые могли бы вывести все порядки

на 3 или 4 Октября 1990 */

/* Даты задаются в апострофах

в формате, определенном в Панели управления - Язык и стандарты. */

SELECT *

FROM Orders

WHERE odate IN('03.10.1990' ,'04.10.1990');

SELECT *

FROM Orders

WHERE odate BETWEEN '03.10.1990' AND '04.10.1990';

/* 2. А) Напишите запрос, который дает все заказы

на 3 и 6 Октября 1990.

Б) Напишите запрос, который дает все заказы,

выполняемые продавцами 1001, 1003, 1007. */

А) SELECT *

FROM Orders

WHERE odate IN ('03.10.1990', '06.10.1990');

Б) SELECT *

FROM Orders

WHERE snum IN('1001','1003','1007');

5(3)

/* 1. Напишите запрос, который может вывести всех заказчиков

чьи имена начинаются с буквы попадающей в диапазон от A до G. */

SELECT *

FROM Customers

WHERE cname BETWEEN 'A' AND 'H';

/*ПРИМЕЧАНИЕ: В ASCII базовой системе Hoffman не буде выведен

из-за конечных пробелов после H. По той же самой причине

воторая граница не может быть G, поскольку она не выведет

имена Giovanni и Grass. G может использоваться в сопровождении

с Z, так чтобы следовать за другими символами в алфавитном

порядке, а не предшествовать им, как это делают пробелы. */

/* 2. Напишите запрос, который может вывести всех продавцов,

чьи имена начинаются с буквы попадающей в диапазон от M до R. */

SELECT *

FROM Customers

WHERE cname BETWEEN 'M' AND 'S';

5(4)

/* 1. Напишите запрос который выберет всех пользователей

чьи имена начинаются с буквы C. */

SELECT *

FROM Customers

WHERE cname LIKE 'C%';

/* 2. Напишите запрос, который выберет всех продавцов,

чьи имена начинаются с буквы S. */

SELECT *

FROM Customers

WHERE cname LIKE 'S%';

6(1)

/* 1. Напишите запрос который сосчитал бы все суммы

приобретений на 3 Октября. */

SELECT COUNT(*)

FROM Orders

WHERE odate = '03.10.1990';

/* 2. Напишите запрос, который сосчитал бы

общую сумму заказов покупателя 2004. */

SELECT COUNT(*)

FROM Orders

WHERE cnum='2004';

6(2)

/* 1. Напишите запрос который сосчитал бы число различных

не-NULL значений поля city в таблице Заказчиков. */

SELECT COUNT (DISTINCT city)

FROM Customers;

/* 2. Напишите запрос, который сосчитал бы число различных

не-NULL значений поля city в таблице Продавцов. */

SELECT COUNT (DISTINCT city)

FROM Salespeople;

6(3)

/* 1. Напишите запрос который выбрал бы нименьшую сумму

для каждого заказчика. */

SELECT cnum, MIN (amt)

FROM Orders

GROUP BY cnum;

/* 2. Напишите запрос, который выбрал бы наибольшую

дату заказа для каждого заказчика. */

SELECT cnum, MAX (odate)

FROM Orders

GROUP BY cnum;

6(4)

/* 4. Напишите запрос который бы выбирал заказчиков

в алфавитном порядке, чьи имена начинаются с буквы G. */

SELECT MIN (cname)

FROM Customers

WHERE cname LIKE 'G%';

/* 4. Напишите запрос, который бы выбрал первого

в алфавитном порядке Продавца среди тех, чьи имена

начинаются с букв от M до R. */

SELECT MIN (sname)

FROM Salespeople

WHERE sname BETWEEN 'M'AND 'S';

6(5)

/* 1. Напишите запрос который выбрал бы высшую оценку

в каждом городе. */

SELECT city,

MAX (rating)

FROM Customers

GROUP BY city;

/* 2. Напишите запрос, который выбрал бы наименьшую сумму

заказа для каждого дня. */

SELECT odate,

MIN (amt)

FROM Orders

GROUP BY odate;

6(6)

/* 1. Напишите запрос который сосчитал бы число заказчиков

регистрирующих каждый день свои порядки.

(Если продавец имел более одного порядка

в данный день, он должен учитываться только один раз.) */

SELECT odate, count (DISTINCT cnum)

FROM Orders

GROUP BY odate;

/* 2. Напишите запрос, который сосчитал бы для каждого дня

количество заказчиков, сделавших заказ в этот день.

(Если заказчик сделал более одного заказа в данный день,

он должен учитываться только один раз.) */

SELECT odate, count (DISTINCT cnum)

FROM Orders

GROUP BY odate;

7(1)

/* 1. Предположим что каждый продавец имеет 12% комиссионных.

Напишите запрос к таблице Порядков который мог бы вывести

номер порядка, номер продавца, и сумму комиссионных продавца

для этого порядка. */

SELECT onum, snum, amt * 0.12

FROM Orders;

/* 2. Предположим, что с каждой продажи необходимо

платить налог в размере 5% от стоимости.

Напишите запрос к таблице Заказов, который мог бы вывести

о каждом заказе: номер заказа, сумму заказа

и сумму заказа за вычетом налога. */

SELECT onum, amt, amt * 0.95

FROM Orders;

7(2)

/* 2. Напишите запрос к таблице Заказчиков который мог бы

найти высшую оценку в каждом городе.

Вывод должен быть в такой форме:

For the city (city), the highest rating is: (rating). */

SELECT 'For the city ', city, ', the highest rating is: ',

MAX (rating)

FROM Customers

GROUP BY city;

/* 2. Напишите запрос к таблице Продавцов, который мог бы

найти наименьшие комиссионные в каждом городе.

Вывод должен быть в такой форме:

В городе <Наименование> наименьшие комиссионные <Значение>. */

SELECT 'or the city ', city, ', the min comm: ',

MIN (comm)

FROM Salespeople

GROUP BY city;

7(3)

/* 1. Напишите запрос который выводил бы список заказчиков

в нисходящем порядке рейтингов. Вывод поля оценки ( rating )

должден сопровождаться именем закзчика и его номером. */

SELECT rating, cname, cnum

FROM Customers

ORDER BY rating DESC;

/* 2. Напишите запрос, который выводил бы список продавцов

в нисходящем порядке комиссионных. Вывод поля комиссионные

(Comm) должен сопровождаться именем продавца и его номером. */

SELECT comm, sname, snum

FROM Salespeople

ORDER BY comm DESC;

7(4)

/* 1. Напишите запрос который бы выводил общие порядки

на каждый день и помещал результаты в нисходящем порядке. */

SELECT odate, SUM (amt)

FROM Orders

GROUP BY odate

ORDER BY 2 DESC;

/* 2. Напишите запрос, который бы выводил общую сумму заказов

для каждого заказчика, и помещал результаты

в нисходящем порядке (по сумме). */

SELECT cnum, SUM (amt)

FROM Orders

GROUP BY cnum

ORDER BY 2 DESC;

8(1)

/* 1. Напишите запрос который бы вывел список номеров порядков

сопровождающихся именем заказчика который создавал эти порядки. */

SELECT onum, cname

FROM Orders, Customers

WHERE Customers.cnum = Orders.cnum;

/* 2. Напишите запрос, который бы вывел список имен заказчиков,

сопровождающихся именем продавца,

который назначен их обслуживать. */

SELECT sname, cname

FROM Salespeople, Customers

WHERE Customers.snum = Salespeople.snum;

8(2)

/* 1. Напишите запрос который бы выдавал имена продавца

и заказчика для каждого порядка после номера порядков. */

SELECT onum, cname, sname

FROM Orders, Customers, Salespeople

WHERE Customers.cnum = Orders.cnum

AND Salespeople.snum = Orders.snum;

/* 2. Напишите запрос, который бы выдавал для каждого заказа:

номер заказа и имена продавца и заказчика. */

SELECT onum, cname, sname

FROM Orders, Customers, Salespeople

WHERE Customers.cnum = Orders.cnum

AND Salespeople.snum = Orders.snum;

8(3)

/* 1. Напишите запрос который бы выводил всех заказчиков

обслуживаемых продавцом с комиссионными выше 12% .

Выведите имя заказчика, имя продавца,

и ставку комиссионных продавца. */

SELECT cname, sname, comm

FROM Salespeople, Customers

WHERE Salespeople.snum = Customers.snum

AND comm > .12;

/* 2. Напишите запрос, который бы выводил все заказы,

обслуживаемые продавцами с комиссионными выше 12%.

Выведите сумму заказа, имя заказчика, имя продавца

и ставку комиссионных продавца. */

SELECT amt, sname,cname, comm

FROM Salespeople, Customers, Orders

WHERE Salespeople.snum = Orders.snum AND Customers.cnum = Orders.cnum

AND comm > .12;

8(4)

/*1. Напишите запрос который вычислил бы сумму комиссионных

продавца для каждого порядка заказчика с оценкой выше 100. */

SELECT onum, comm * amt

FROM Salespeople, Orders, Customers

WHERE rating > 100

AND Orders.cnum = Customers.cnum

AND Orders.snum = Salespeople.snum;

/*2. Напишите запрос, который отбирает заказы заказчиков

из Лондона и выводит:

номер заказа и сумму (заказа + комиссионных). */

SELECT onum, amt + amt * comm.

FROM Orders, Customers, Salespeople

WHERE city = 'London'

AND Orders.cnum = Customers.cnum;

9(1)

/* 1. Напишите запрос который бы вывел все пары продавцов

живущих в одном и том же городе. Исключите комбинации

продавцов с ними же, а также дубликаты строк выводимых

в обратным порядке. */

SELECT first.sname, secondd.sname

FROM Salespeople first, Salespeople secondd

WHERE first.city = secondd.city

AND first.sname < secondd.sname;

/* Псевдонимам нет необходимости иметь именно такие имена. */

/* 2. Напишите запрос, который бы вывел все пары имен заказчиков,

которым назначен один и тот же обслуживающий продавец,

номер продавца тоже включите в выходную строку.

Исключите пары вида (А,А) и повторы вида (А,Б), (Б,А). */

SELECT first.cname, secondd.cname, snum

FROM Customers first, Customers secondd

WHERE first.snum = secondd.snum

AND first.cname < secondd.cname;

9(2)

/* 1. Напишите запрос который вывел бы все пары порядков

по данным заказчикам, именам этих заказчиков,

и исключал дубликаты из вывода, как в предыдущем вопросе. */

SELECT cname, first.onum, secondd.onum

FROM Orders first, Orders secondd, Customers

WHERE first.cnum = secondd.cnum

AND first.cnum = Customers.cnum

AND first.onum < secondd.onum;

/* Ваш вывод может иметь некоторые отличия,

но в вашем ответе все логи-

ческие компоненты должны быть такими же. */

/* 2. Напишите запрос, который бы вывел все пары имен заказчиков,

которые что-либо заказывали в один и тот же день,

дату такого дня тоже включите в выходную строку.

Также как и в предыдущем упражнении исключите вырожденные пары. */

SELECT fi.odate, first.cname, secondd.cname

FROM Orders fi, Orders se, Customers first, Customers secondd

WHERE fi.odate = se.odate

AND first.cnum <> secondd.cnum

AND first.cname > secondd.cname;

9(3)

/* 1. Напишите запрос который вывел бы имена(cname)

и города(city) всех заказчиков с такой же оценкой(rating)

как у Hoffmanа. Напишите запрос использующий поле cnum

Hoffmanа а не его оценку, так чтобы оно могло быть

использовано если его оценка вдруг изменится. */

SELECT a.cname, a.city

FROM Customers a, Customers b

WHERE a.rating = b.rating

AND b.cnum = 2001;

/* 2. Напишите запрос, который вывел бы имена (sname)

и города(city) всех продавцов с комиссионными больше,

чем у Peel. Напишите запрос, использующий номер продавца Peel

(равный 1001), а не его комиссионные,

так чтобы этот запрос можно было использовать даже,

если этот процент комиссионных вдруг изменится. */

SELECT a.sname, a.city

FROM Salespeople a, Salespeople b

WHERE a.comm > b.comm

AND b.snum = 1001;

10(1)

/*1. Напишите запрос, который бы использовал подзапрос для получения

всех заказов заказчика с именем Cisneros. Предположим, что вы

не знаете номера этого заказчика, указываемого в поле cnum.*/

SELECT *

FROM Orders

WHERE cnum =

(SELECT cnum

FROM Customers

WHERE cname = 'Cisneros');

или

SELECT *

FROM Orders

WHERE cnum IN

(SELECT cnum

FROM Customers

WHERE cname = 'Cisneros');

/*2. Напишите запрос, который бы использовал подзапрос для получения

всех заказчиков, которых обслуживают продавцы из города London.*/

SELECT cname

FROM Customers

WHERE snum IN

(SELECT snum

FROM Salespeople

WHERE city = 'London');

10(2)

/*1. Напишите запрос который вывел бы имена и рейтинги тех заказчиков,

у которых есть заказы на сумму выше средней суммы по всем заказам.*/

SELECT DISTINCT cname, rating

FROM Customers, Orders

WHERE amt >

(SELECT AVG (amt)

FROM Orders)

AND Orders.cnum = Customers.cnum;

/*2. Напишите запрос который вывел бы имена и комиссионные тех продавцов,

которые обслуживают хотя бы одного заказчика с рейтингом выше среднего.*/

SELECT DISTINCT sname, comm

FROM Customers, Salespeople

WHERE rating >

(SELECT AVG (rating)

FROM Customers)

AND Salespeople.snum = Customers.snum;

10(3)

/*1. Напишите запрос который бы выбрал общую сумму всех приобретений в

заказах для каждого продавца, у которого эта общая сумма больше

чем наибольшая стоимость заказов в таблице.*/

SELECT snum, SUM (amt)

FROM Orders

GROUP BY snum

HAVING SUM (amt) >

(SELECT MAX (amt)

FROM Orders);

/*2. Напишите запрос, который бы выбрал количество заказов для каждого покупателя,

у которого минимальная стоимость заказов больше средней стоимости по всем заказам.*/

SELECT cnum, MIN (amt)

FROM Orders

GROUP BY cnum

HAVING MIN (amt) >

(SELECT AVG (amt)

FROM Orders);

11(1)

/*1. Напишите команду SELECT использующую соотнесенный подзапрос, кото-

рая выберет имена и номера всех заказчиков с максимальными для их

городов рейтингами.*/

SELECT cnum, cname

FROM Customers Aouter

WHERE rating =

(SELECT MAX (rating)

FROM Customers Ainner

WHERE Ainner.city = Aouter.city);

11(2)

/*1. Напишите два запроса которые выберут всех продавцов (их имя и

номер) которые в своих городах имеют заказчиков которых они не

обслуживают. Один запрос - с использованием соединения и один - с

соотнесенным подзапросом. Которое из решений будет более изящным?

( Подсказка: один из способов это сделать, состоит в том, чтобы на-

ходить всех заказчиков не обслуживаемых данным продавцом и опреде-

лить, находится ли каждый из них в городе продавца. )*/

/* Решение с помощью соотнесенного подзапроса: */

SELECT snum, sname

FROM Salespeople Amain

WHERE city IN

(SELECT city

FROM Customers Ainner

WHERE Ainner.snum <> Amain.snum);

/* Решение с помощью объединения:

SELECT DISTINCT Afirst.snum, sname

FROM Salespeople Afirst, Customers Asecond

WHERE Afirst.city = Asecond.city

AND Afirst.snum <> Asecond.snum;

Соотнесенный подзапрос находит всех заказчиков не обслуживаемых данным

продавцом и выясняет: живет ли кто-нибудь из них в его городе. Решение

с помощью соединения является более простым и более интуитивным. Оно

находит случаи где поля city совпадают, а поля snums нет. Следователь-

но соединение является более изящным решением для этой проблемы, чем

то которое мы исследовали до этого. Имеется еще более изящное решение

с помощью подзапроса, с которым Вы столкнетесь позже.*/

/*

Заказчики, не все заказы которых исполняют продавцы,

назначенные им для обслуживания.

Замечание. Если такие не найдутся в базе данных, то

добавьте подходящий заказ для одного из заказчиков.*/

12(1)

/*1. Напишите запрос который бы использовал оператор EXISTS для извлече-

ния всех продавцов которые имеют заказчиков с оценкой 300.*/

SELECT *

FROM Salespeople first

WHERE EXISTS

(SELECT *

FROM Customers Asecond

WHERE first.snum = Asecond.snum

AND rating = 300);

/*2. Напишите запрос который бы использовал оператор EXISTS для извлече-

ния всех заказчиков, которые имеют заказы стоимостью > 4000.*/

SELECT *

FROM Customers first

WHERE EXISTS

(SELECT *

FROM Orders Asecond

WHERE first.cnum = Asecond.cnum

AND amt > 4000);

12(2)

/*1. Напишите запрос который бы использовал оператор EXISTS для извлече-

ния всех продавцов которые имеют заказчиков с оценкой 300.

2. Как бы вы решили предыдущую проблему используя соединение ?

SELECT a.snum, sname, a.city, comm

FROM Salespeople a, Customers b

WHERE a.snum = b.snum

AND b.rating = 300;

/*1. Напишите запрос который бы использовал оператор EXISTS для извлече-

ния всех заказчиков, которые имеют заказы стоимостью > 4000.

2. Как бы вы решили предыдущую проблему используя соединение ?*/

SELECT *

FROM Customers first

WHERE EXISTS (Select * from Orders sec

WHERE first.cnum = sec.cnum

AND amt > 4000);

12(3)

/*1. Напишите запрос использующий оператор EXISTS который выберет тех

продавцов, которые в своих городах имеют заказчиков которых они

не назначены обслуживать. /*

SELECT *

FROM Salespeople a

WHERE EXISTS

(SELECT *

FROM Customers b

WHERE b.city = a.city

AND a.snum <> b.snum);

/*2. Напишите запрос использующий оператор EXISTS который выберет тех

заказчиков, не все заказы которых исполняют продавцы,

назначенные им для обслуживания.

Замечание. Если такие не найдутся в базе данных, то

добавьте подходящий заказ для одного из заказчиков.*/

SELECT *

FROM Customers a

WHERE EXISTS

(SELECT *

FROM Orders b

WHERE b.cnum = a.cnum

AND a.snum <> b.snum);

12(4)

/*1. Напишите запрос который извлекал бы из таблицы Заказчиков каждого

заказчика назначенного к продавцу который в данный момент имеет по

крайней мере еще одного заказчика ( кроме заказчика которого вы вы-

берете ) с заказами в таблице Заказов ( подсказка: это может быть

похоже на структуру в примере с нашим трех-уровневым подзапросом ).*/

SELECT *

FROM Customers a

WHERE EXISTS

(SELECT *

FROM Orders b

WHERE a.snum = b.snum

AND a.cnum <> b.cnum)

/*2. Напишите запрос который извлекал бы из таблицы Заказов такие заказы,

заказчики которых имеются по крайней мере еще один заказ.*/

SELECT cnum , onum

FROM Orders a, Orders b

WHERE a.cnum = b.cnum

AND a.onum <> b.onum;