Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

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




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

SELECT orderyear, COUNT(DISTINCT custid) AS numcusts

FROM (SELECT YEAR(orderdate), custid

FROM Sales.Orders) AS D(orderyear, custid)

GROUP BY orderyear;

GO

Результат:

В запросе, определяющем производную таблицу, можно ссылаться на аргументы. Аргументы могут быть локальными переменными и входными параметрами подпрограммы, такой как хранимая процедура или функция (будут рассматриваться далее).

Пример: запрос, применяемый для определения производной таблицы D, ссылается на локальную переменную в элементе where.

SELECT orderyear, COUNT(DISTINCT custid) AS numcusts

FROM (SELECT YEAR(orderdate) AS orderyear, custid

FROM Sales.Orders

WHERE empid = @empid) AS D

GROUP BY orderyear;

GO

Возможно использование вложенных таблиц. Если нужно задать производную таблицу, используя запрос, который сам ссылается на производную таблицу, это приведет к вложению производных таблиц. Вложение производ­ных таблиц есть результат того, что производная таблица определяется в элементе from внешнего запроса, а не отдельно.

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

 

SELECT orderyear, numcusts

FROM (SELECT orderyear, COUNT(DISTINCT custid) AS numcusts

FROM

(SELECT YEAR(orderdate) AS orderyear, custid

FROM Sales.Orders) AS D1

GROUP BY orderyear) AS D2

WHERE numcusts > 70;

Задача самой внутренней производной таблицы, Dl, - присвоить псевдоним столбца orderyear (год заказа) выражению year (orderdate). Запрос к D2 ссылается на orderyear в элементах GROUP BY и SELECT и присваивает псевдоним столбца numcusts (количество клиентов) выражению COUNT(DISTINCT custid).

Запрос к Dl используется для задания производной таблицы D2. Запрос к D2 ссылается на numcusts в элементе WHERE для того, чтобы выбрать годы, в которых более 70 клиентов сделали заказы в течение года.

 

Вложение порождает проблемы программирования, т. к. ведет к усложнению программного кода и затрудняет его чтение.

Поделиться:





Читайте также:

A) обоснованная, оправданная свобода или возможность поведения, которая признается в обществе
C) частица не может быть обнаружена в середине потенциальной ямы
D - Уважительные причины, при которых можно не посещать мечеть
D. Возможности клинического применения вегетативного индекса
E) тело, размерами которого можно пренебречь в условиях данной задачи
Fel-x: Дату пока не скажу. В столицу и, возможно, к вам в городе. Детали скажу позже. Но ты должна знать: я очень хочу с тобой встретиться еще раз. 1 страница
Fel-x: Дату пока не скажу. В столицу и, возможно, к вам в городе. Детали скажу позже. Но ты должна знать: я очень хочу с тобой встретиться еще раз. 10 страница
Fel-x: Дату пока не скажу. В столицу и, возможно, к вам в городе. Детали скажу позже. Но ты должна знать: я очень хочу с тобой встретиться еще раз. 10 страница
Fel-x: Дату пока не скажу. В столицу и, возможно, к вам в городе. Детали скажу позже. Но ты должна знать: я очень хочу с тобой встретиться еще раз. 11 страница
Fel-x: Дату пока не скажу. В столицу и, возможно, к вам в городе. Детали скажу позже. Но ты должна знать: я очень хочу с тобой встретиться еще раз. 11 страница






Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...