Программирование >>  Исключение дубликатов строк 

1 ... 113 114 115 [ 116 ] 117 118 119 ... 152


Привести список всего персонала и количество лекций у каоюдого преподавателя .

Вывести на экран дисплея все предметы и количество лекций по као/сдому предмету в понедельник .

Показать всех игроков в боулинг и количество сыгранных ими игр .

Вывести на экран игроков в боулинг и самую ваоюную сыгранную ими игру .

Привести список всех видов мяса и число рецептов, в которых появляется каэ/сдый из них .

Показать типы рецептов и количество рецептов в каждом из типов .

Фильтры

Теперь можно реально расширить наш набор инструментов для решения сложных проблем. В этой главе мы исследовали множество интересных способов использования подзапросов как фильтров в условии WHERE. Вот пример задач, которые можно решить, используя этот метод. Многие из этих задач уже были решены в пре-дыдуш,их главах, а теперь мы попробуем решить их альтернативным способом.

Внимание! Ключевое слово (слова), которое можно использовать для решения задачи, стоит в скобках после формулировки запроса.

Привести список клиентов, заказавших велосипеды . (IN)

Вывести на экран дисплея клиентов, заказавших одеоюду или предметы первой необходимости . (= SOME)

Вывести список всех клиентов, заказавших когда-либо велосипедный шлем . (IN)

Найти всех клиентов, заказавших велосипед, но не заказавших шлем . (NOT EXIST)

Какие товары никогда не заказывались? (NOT IN)

Вывести список клиентов, которые подали заявки

на эстрадных артистов, исполняюших музыку в стиле кантри

или кантри-рок . (IN)

Найти эстрадных артистов, отыгравших ангажементы для клиентов Бонниксен или Росалес . (= SOME)

Вывести на экран дисплея агентов, которые не заказывали эстрадных артистов . (NOT IN)

Вывести список эстрадных артистов, отыгравших ангажементы для клиентов Бонниксен или Росалес . (EXIST)



Вывести на экран дисплея студентов, записавшихся на курс лекций во вторник . (IN)

Показать студентов, которые имеют средний балл 85 и выше по курсу Искусство и также имеют средний балл 85 и выше по курсу Вычислительная техника . (EXISTS)

Вывести на экран дисплея студентов, которые никогда не отказывались от курса лекций . (NOT IN)

Привести список предметов, предлагаемых в среду . (IN)

Вывести на экран дисплея капитанов команд с текущим средним количеством очков более высоким, чем у любого из остальных участников их команды . (> ALL)

Показать еще не сыгранные турниры . (NOTIN)

Найти игроков, у которых предварительное количество очков 170 или выше как по Зандербирд Лэцнс, так и по Болеро Лэйнс . (EXISTS)

Привести список всех игроков в боулинг, у которых

текущее среднее количество очков ниже, чем у всех остальных

игроков этой же команды . (< ALL)

Показать рецепты, содержащие говядину и чеснок . (EXISTS)

Вывести на экран дисплея все компоненты рецептов, содержащих морковь . (IN)

Привести список всех компонентов, используемых

в некотором рецепте, где единицы измерения количества

не являются единицами измерения по умолчанию . (о SOME)

Привести список компонентов, не используемых еще ни в одном рецепте . (NOT IN)

Примеры операторов

Ознакомимся теперь с довольно постоянным множеством примеров, все из которых используют один или несколько подзапросов. Они взяты из учебных баз данных и иллюстрируют использование подзапросов либо для формирования столбцов вывода, либо в качестве фильтров.

Сюда также включены примеры наборов результатов, которые должны возвра-ндать эти операции. Мы поместили их сразу после графического описания синтаксиса SQL в виде линии. Имя, которое появляется непосредственно над набором результатов, присвоено каждому запросу в учебной базе данных, которую можно найти на сайте издательства Лори . Каждый запрос сохранен в соответствуюндем примере базы данных, во вложенной папке Chapter И . Чтобы загрузить примеры на свой компьютер и проверить их, следуйте указаниям, приведенным в начале книги.



Внимание! Все имена столбцов и таблиц, используемые в этих примерах, взяты из учебных структур баз данных, представленных в приложении В. Поскольку многие их этих примеров используют сложные соединения, СУБД может выбрать другой способ решения. Поэтому несколько первых строк, которые показаны здесь, могут не совпадать точно с результатом, полученным вами, но обш,ее количество строк должно быть одинаково. Для упрош,ения процесса этапы преобразования и уточнения для всех примеров объединены.

Подзапросы а оыроженийх

Бозо донных зокозов но зокупку

List vendors and а count of the products they sell to us .

(Привести список поставщиков и подсчитать количество товаров,

проданных ими нам .)

Уточнение:

Преобразование/ Select vendor name and also (select the count(*)

of products from the product vendors table for this vendor WHERE vendors vendor ID = product vendors vendor ID) from the vendors table

(Выбрать имя поставш,ика и (Выбрать count(*) из Поставш,ики товаров , где идентификатор поставш,ика из Поставш,ики = идентификатору поставш,ика) из Поставш,ики )

SELECT VendName,

(SELECT COUNT (*)

FROM ProductVendors

WHERE ProductVendors.VendorlD AS VendProductCount FROM Vendors

Vendors Product Count (10 строк)

= Vendors.VendorlD)

лпилошип Щ тсогропцсс!

Viscount

.7 6

Nikoma of Ainenca

ProFormancc

Koiiji, Incorpomied

Big Sky Moyiitain Bikes

Dog Ear

остальные строки



1 ... 113 114 115 [ 116 ] 117 118 119 ... 152

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика