Представления и подзапросы.

Представления также могут использовать подзапросы, включая связанные подзапросы. Рассмотрим сложный пример: Допустим, что компания платит премию продавцу, который имеет покупателя с наибольшим количеством заказов на заданную дату.

CREATE VIEW EliteS

AS SELECT b.odate, a,snum, a.sname

FROM Sales people a, Orders b

WHERE a.snum = b.snum

AND b.amt = (SELECT MAX (amt)

FROM Orders c

WHERE c.odate = b.odate);

Теперь предположим, что вознаграждение должен получить тот продавец, который имел наибольшее количество заказов, по крайней мере, 10 раз, то информацию можно получить, основываясь на первом представлении:

CREATE VIEW Bonus

AS SELECT DISTINCT snum, sname

FROM EliteS a считает число строк

WHERE 10< = (SELECT COUNT (*)

FROM EliteS B

WHERE a.snum = b.snum);

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

SELECT *

FROM Bonus;

Для того, чтобы извлечь такую информацию с использованием COBOL, потребовалась бы довольно большая программа. В SQL мы использовали 2 сравнительно сложных команды, определяющие представления и один простейший запрос, который и выполняется ежедневно, отражая текущее состояние БД.








Дата добавления: 2015-08-08; просмотров: 767;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.003 сек.