vvv.clan.su - главная
Меню сайта

Категории каталога
5-й Курс, 1-й Семестр [35]
5-й Курс, 2-й Семестр [30]

Форма входа
Логин:
Пароль:

Поиск по каталогу

Друзья сайта


Наш опрос
Наиболее тяжелым в универе для меня был:
Всего ответов: 217

Каталог файлов
Вы вошли как Гость

» Файлы » 5-Й КУРС » 5-й Курс, 1-й Семестр

Лабораторная работа №1 по БД
[ Скачать с сервера (3.2 Kb) ]
// 1. Написать запрос, выбирающий заказы за июнь 2007 г. стоимостью более 3400 р.
SELECT * FROM Orders WHERE YEAR( odate ) = '2007' AND MONTH( odate ) = '06' AND amt > 3400;


// 2. Написать запрос, выдающий информацию о покупателях, обслуживаемых продавцами с комиссионными более 0,12.
SELECT c.* FROM Customers AS c, Salespeople AS s WHERE c.snum = s.snum AND s.comm > 0.12;


// 3. Написать запрос, выдающий список покупателей с рейтингом более 100, проживающих не в Нижнем Новгороде.
SELECT cname FROM Customers WHERE rating > 100 AND cname != 'Нижний Новгород';


// 4. Написать запрос, выдающий для каждого покупателя наибольшую стоимость его заказа.
SELECT c.cname, IFNULL( MAX( o.amt ), 0 ) AS max_amt FROM Customers AS c LEFT JOIN Orders AS o ON c.cnum = o.cnum GROUP BY c.cnum;


// 5. Написать запрос, выдающий для каждого покупателя наименьшую стоимость его заказа.
SELECT c.cname, IFNULL( MIN( o.amt ), 0 ) AS min_amt FROM Customers AS c LEFT JOIN Orders AS o ON c.cnum = o.cnum GROUP BY c.cnum;


// 6. Написать запрос, выдающий итоги по сумме заказов на каждый день.
SELECT odate, SUM( amt ) AS summ FROM Orders GROUP BY odate;


// 7. Написать запрос, выдающий даты заказов и максимальную стоимость заказов за этот день.
SELECT odate, MAX( amt ) AS max_amt FROM Orders GROUP BY odate;


// 8. Написать запрос, выдающий даты заказов и количество заказов за этот день.
SELECT odate, COUNT(*) AS count FROM Orders GROUP BY odate;


// 9. Написать запрос, выдающий список городов и максимальный рейтинг покупателей в городе.
SELECT city, MAX( rating ) AS max_rating FROM Customers GROUP BY city;


// 10. Написать запрос, выдающий количество заказов у продавцов.
SELECT s.sname, COUNT( o.onum ) AS count FROM Salespeople AS s LEFT JOIN Orders AS o ON s.snum = o.snum GROUP BY s.snum;


// 11. Написать запрос, выдающий список покупателей с рейтингом выше среднего.
SELECT cname FROM Customers WHERE rating > ( SELECT AVG( rating ) FROM Customers );


// 12. Написать запрос, выдающий покупателей с максимальным рейтингом.
SELECT cname FROM Customers WHERE rating = ( SELECT MAX( rating ) FROM Customers );


// 13. Написать запрос, выдающий список заказов с фамилиями покупателей и продавцов.
SELECT o.odate, o.amt, c.cname, s.sname FROM Orders AS o LEFT JOIN Customers AS c ON o.cnum = c.cnum LEFT JOIN Salespeople AS s ON o.snum = s.snum;


// 14. Написать запрос, выдающий список продавцов, имеющих покупателей с рейтингом более 100.
SELECT s.sname FROM Salespeople AS s, Customers AS c WHERE s.snum = c.snum AND c.rating > 100 GROUP BY s.sname;


// 15. Написать запрос, выдающий фамилии покупателей (и их рейтинги), обслуживаемых продавцами с комиссионными более 0,11 (выдать также фамилии продавцов и их комиссионные).
SELECT c.cname, c.rating, s.sname, s.comm FROM Customers AS c, Salespeople AS s WHERE c.snum = s.snum;


// 16. Написать запрос, выдающий суммы стоимостей заказов по продавцам.
SELECT s.sname, IFNULL( SUM( o.amt ), 0 ) AS max_amt FROM Salespeople AS s LEFT JOIN Orders AS o ON s.snum = o.snum GROUP BY s.snum;


// 17. Написать запрос, выдающий суммы стоимостей заказов по покупателям.
SELECT c.cname, IFNULL( SUM( o.amt ), 0 ) AS max_amt FROM Customers AS c LEFT JOIN Orders AS o ON c.cnum = o.cnum GROUP BY c.cnum;


// 18. Написать запрос, увеличивающий комиссионные на 0,01 всем продавцам, имеющим заказы.
UPDATE Salespeople AS s SET comm = comm + 0.01 WHERE ( SELECT COUNT(*) FROM Orders AS o WHERE s.snum = o.snum );


// 19. Написать запрос, увеличивающий комиссионные на 0,02 всем продавцам в Москве.
UPDATE Salespeople SET comm = comm + 0.02 WHERE city = 'Москва';


// 20. Установить comm=0.1 всем продавцам, не имеющим заказов.
UPDATE Salespeople AS s SET comm = 0.1 WHERE NOT ( SELECT COUNT(*) FROM Orders AS o WHERE s.snum = o.snum );
Категория: 5-й Курс, 1-й Семестр | Добавил: MagAlex
Просмотров: 1432 | Загрузок: 153 | Рейтинг: 4.5

Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]

 

 

Используются технологии uCoz