Студопедия

Главная страница Случайная лекция


Мы поможем в написании ваших работ!

Порталы:

БиологияВойнаГеографияИнформатикаИскусствоИсторияКультураЛингвистикаМатематикаМедицинаОхрана трудаПолитикаПравоПсихологияРелигияТехникаФизикаФилософияЭкономика



Мы поможем в написании ваших работ!




Примеры запросов. 1. Добавить в таблицу SJpeople всех продавцов, имеющих покупателей в San Jose INSERT INTO Sjpeople SELECT * FROM Salespeople WHERE snum = ANY (SELECT snum

1. Добавить в таблицу SJpeople всех продавцов, имеющих покупателей в San Jose
INSERT INTO Sjpeople SELECT * FROM Salespeople WHERE snum = ANY
(SELECT snum FROM Customers WHERE city = 'San Jose');

2. Добавить в таблицу Samecity продавцов, имеющих покупателей в их же городах
INSERT INTO Samecity
SELECT * FROM Salespeople out WHERE city IN
(SELECT city FROM Customers inn WHERE inn.snum=out.snum);

3. Добавить в таблицу Bonus продавцов, имеющих каждый день наибольшую сумму заказов
INSERT INTO Bonus
SELECT snum, odate, amt FROM Orders A WHERE amt =
(SELECT MAX(amt) FROM Orders B WHERE A.odate=B.odate);

4. Создать Access-таблицу Bonus продавцов из п.3.
SELECT snum, odate, amt INTO Bonus FROM Orders A WHERE amt =
(SELECT MAX(amt) FROM Orders B WHERE A.odate=B.odate);

5. Удалить всех покупателей, которых обслуживают продавцы из города London
DELETE FROM Customers WHERE snum=ANY
(SELECT snum FROM Salespeople WHERE city = 'London');

6. Удалить всех продавцов, которые имеют хотя бы одного покупателя с рейтингом 100
DELETE FROM Salespeople S WHERE EXISTS
(SELECT * FROM Customers C WHERE rating=100 AND S.snum=C.snum);

7. Увеличить комиссионные продавцов, обслуживающих более одного покупателя
UPDATE Salespeople T1 SET comm=comm+0.1 WHERE 2 <=
(SELECT COUNT(cnum) FROM Customers T2 WHERE T1.snum=T2.snum);

8. Уменьшить комиссионные продавцов, получивших минимальные заказы
UPDATE Salespeople SET comm=comm-0.1 WHERE snum IN
(SELECT snum FROM Orders A WHERE amt=
(SELECT MIN(amt) FROM Orders B WHERE A.odate=B.odate));

Вопросы

1. Напишите команду, добавляющую в таблицу Multicast всех продавцов, имеющих более одного покупателя. Схема таблицы Multicust такая же, как у Salespeople.

2. Напишите команду, которая удаляет всех покупателей, не имеющих в настоящее время заказов.

3. Напишите команду, увеличивающую на 20% комиссионные всех продавцов, общая сумма заказов которых превышает 3000.

 

1. INSERT INTO Multicust SELECT * FROM Salespeople WHERE 1 < (SELECT COUNT (*) FROM Customers WHERE Customers.snum = Salespeople.snum); 2. DELETE FROM Customers WHERE NOT EXISTS (SELECT * FROM Orders WHERE cnum = Customers.cnum); 3. UPDATE Salespeople SET comm = comm + (comm * .2) WHERE 3000 < (SELECT SUM (amt) FROM Orders WHERE snum = Salespeople.snum);

 

UPDATE Salespeople SET comm = comm + (comm * .2) WHERE 3000 < (SELECT SUM (amt) FROM Orders WHERE snum = Salespeople.snum) AND comm + (comm * .2) < 1.0;

 

 


<== предыдущая страница | следующая страница ==>
Примеры запросов. 1. Различные примеры добавления строк в таблицы INSERT INTO Salespeople VALUES (1101, 'Ivanov', 'Kherson' | Теоретические сведения. 1. Ядро языка определения данных DDL (Data Definition Language) составляют три оператора SQL: CREATE (создать)

Дата добавления: 2015-06-30; просмотров: 197; Нарушение авторских прав




Мы поможем в написании ваших работ!
lektsiopedia.org - Лекциопедия - 2013 год. | Страница сгенерирована за: 0.003 сек.