- •1)Класс массив. Описывает нулевой единичный вектор, нулевой вектор произвольного размера и вектор произвольного размера с произвольными значениями
- •2) Описать скалярное произведение векторов
- •If(!m_pVec){
- •Void main(){
- •3)Записать обыкновенную дробь
- •4)Сумма комплексных чисел
- •Void main(){
- •5)Множественное наследование. Создать класс, произвольный от нескольких базовых
- •6)Работа с множествами
- •7)Вычислить комплексное число с помощью формулы Эйлера
- •Void main()
- •8)Вычислить время через определенный промежуток времени
- •9)Вычислить сумму, разность, произведение матриц
- •Void main()
- •10)Вычисление суммы, разности, произведения и деление комплексных чисел
- •Void main()
- •11)Вычислить радиус, диаметр, длину окружности, площадь и объем сферы
- •12)Работа с шаблонами
- •13)Банковские операции (чековая и сберегательная книжка)
- •Void display()
- •Void display()
- •14)Вычислить сумму векторов
- •15)Сортировка по возрастанию
- •Void main()
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. */
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;
