ВУЗ:
Составители:
Рубрика:
– 93 –
Это можно сделать с помощью запроса, использующего агрегатную функ-
цию
SUM:
SELECTSUM(QUOTA)
FROMSLUZHASCHIE
WHEREID_OFC=22
А теперь объединим эти запросы путем замены знаков ??? на второй запрос
и получим следующий структурированный запрос
SELECTCITY
FROMOFFISY
WHERETARGET>(SELECTSUM(QUOTA)
FROMSLUZHASCHIE
WHERESLUZHASCHIE.ID_OFC=OFFISY.ID_OFC)
В приведенном запросе вложенный (внутренний) запрос выполняет для каж-
дого офиса вычисление суммы плановых продаж всех служащих, работающих в
данном офисе. Главный (внешний) запрос сравнивает плановый объем продаж
офиса с вычисленной суммой и, в зависимости от результата сравнения, либо до-
бавляет текущую запись в результирующую, либо нет. В результате такой согла
-
сованной работы главный и вложенный запросы извлекают из базы данных тре-
буемую информацию и формируют результирующую таблицу.
4.4.1. О
ПРЕДЕЛЕНИЕ ПОДЧИНЕННЫХ ЗАПРОСОВ
Вложенные запросы всегда входят в предложение WHERE или HAVING и за-
ключаются в круглые скобки. В предложении
WHERE они отбирают из таблицы
отдельные строки, а в предложении
HAVING группы строк. Подчиненные за-
просы имеют ту же структуру, что и инструкция
SELECT, содержащая предло-
жение
FROM и необязательные предложения WHERE, GROUPBY и HAVING. Однако
между вложенным запросом и инструкцией
SELECT имеются отличия:
– таблица результатов вложенного запроса всегда состоит из одного столбца,
поэтому в предложении
SELECT вложенного запроса всегда следует указывать
только один возвращаемый столбец;
– во вложенный запрос не может входить предложение ORDERBY, так как ре-
зультаты вложенного запроса используются только внутри главного запроса и для
пользователя остаются невидимыми. Поэтому нет смысла их сортировать.
Чаще всего вложенные запросы используются в предложении
WHERE и уча-
ствуют в процессе отбора строк. В простейшем случае вложенный запрос воз-
вращает значение, позволяющее проверить истинность или ложность условия
отбора.
Рассмотрим следующий пример:
вывести список служащих, чей плановый
объем продаж составляет менее 10% от планового объема продаж всей ком-
пании
.
SELECTNAME
FROMSLUZHASCHIE
WHEREQUOTA<(0.1*(SELECTSUM(TARGET)
FROMOFFISY))
Страницы
- « первая
- ‹ предыдущая
- …
- 91
- 92
- 93
- 94
- 95
- …
- следующая ›
- последняя »
