Студопедия

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


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

Порталы:

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



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




Примеры запросов. 1. Вывести список покупателей только в том случае, если хотя бы один покупатель проживает в городе San Jose SELECT cnum

1. Вывести список покупателей только в том случае, если хотя бы один покупатель проживает в городе San Jose
SELECT cnum, cname, city FROM Customers WHERE EXISTS
(SELECT * FROM Customers WHERE city='San Jose');

2. Вывести список продавцов, которые имеют несколько покупателей (связанные запросы)
SELECT DISTINCT snum FROM Customers out WHERE EXISTS
(SELECT * FROM Customers inn WHERE
inn.snum=out.snum AND inn.cnum<>out.cnum);

3. Пример комбинации EXISTS и соединения таблиц (join)
SELECT DISTINCT T1.snum, T1.sname, T1.city
FROM Salespeople T1, Customers T2 WHERE EXISTS
(SELECT * FROM Customers T3 WHERE
T2.snum=T3.snum AND T2.cnum<>T3.cnum AND T1.snum=T2.snum);

4. Найти продавцов, обслуживающих только одного покупателя
SELECT DISTINCT snum FROM Customers out WHERE NOT EXISTS
(SELECT * FROM Customers inn WHERE
inn.snum=out.snum AND inn.cnum<>out.cnum);

5. Вывод списка продавцов, имеющих покупателей, сделавших более одного заказа
SELECT * FROM Salespeople T1 WHERE EXISTS
(SELECT * FROM Customers T2 WHERE T1.snum=T2.snum AND 1<
(SELECT COUNT(*) FROM Orders WHERE Orders.cnum=T2.cnum));

Вопросы

1. Напишите запрос с EXISTS для того, чтобы извлечь всех продавцов, имеющих покупателей с рейтингом, превышающем 300.

2. Решите эту же проблему применяя соединение таблиц.

3. Напишите запрос с EXISTS , выбирающий всех проживающих в одном городе продавцов, а также покупателей, которых эти продавцы не обслуживают.

 

1. SELECT * FROM Salespeople first WHERE EXISTS (SELECT * FROM Customers second WHERE first.snum = second.snum AND rating = 300); 2. SELECT a.snum, sname, a.city, comm FROM Salespeople a, Customers b WHERE a.snum = b.snum AND b.rating = 300; 3. SELECT * FROM Salespeople a WHERE EXISTS (SELECT * FROM Customers b WHERE b.city = a.city AND a.snum < > b.snum); 4. SELECT * FROM Customers a WHERE EXISTS (SELECT * FROM Orders b WHERE a.snum = b.snum AND a.cnum < > b.cnum)

<== предыдущая страница | следующая страница ==>
Примеры запросов | Примеры запросов. 1. Найти всех продавцов, имеющих покупателей, имена которых следуют в алфавитном порядке за именем продавца SELECT * FROM Salespeople WHERE sname < ANY

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




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