Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛАБОРАТОРНАЯ РАБОТА 6.doc
Скачиваний:
37
Добавлен:
13.02.2016
Размер:
121.34 Кб
Скачать

Инструкция transform Создает перекрестный запрос.

TRANSFORM статФункцияинструкцияSelectPIVOTполе[IN (значение_1[,значение_2[, ...]])]

Ниже перечислены аргументы инструкции TRANSFORM:

Элемент

Описание

статФункция

Статистическая функция SQL,обрабатывающая указанные данные.

инструкцияSelect

Инструкция SELECT.

поле

Поле или выражение, которое содержит заголовки столбцов для результирующего набора.

значение_1,значение_2

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

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

Инструкция TRANSFORM является необязательной, но если она присутствует, то должна быть первой инструкцией в строке SQL. Она должна находиться впереди инструкции SELECT, которая указывает поля, содержащие заголовки строк, и предложения GROUP BY, которое задает группировку по строкам. При желании можно включить и другие предложения, например WHERE, для описания дополнительных условий отбора и сортировки. Кроме того, можно использовать подчиненные запросыкак предикаты в перекрестном запросе, особенно в предложении WHERE.

Значения, возвращенные аргументом поле, используются в качестве заголовков столбцов в результирующем наборе запроса. Например, продажи по месяцам в перекрестном запросе образуют результирующую таблицу из 12 столбцов. Аргументполеможно ограничить, чтобы создать заголовки из фиксированных значений (значение_1,значение_2), перечисленных в необязательном предложении IN. Кроме того, фиксированные заголовки, которым не соответствуют реальные данные, можно использовать для создания дополнительных столбцов. В приведенном примере определяется максимальная сумма заказов клиентов на основе запросаСуммаПоЗаказам.

TRANSFORM Max([СуммаПоЗаказам].[ПолнаяСтоимостьСДоставкой]) AS [Max-ПолнаяСтоимостьСДоставкой]

SELECT [СуммаПоЗаказам].[Название]

FROM СуммаПоЗаказам

GROUP BY [СуммаПоЗаказам].[Название]

PIVOT [СуммаПоЗаказам].[КодЗаказа];

Операция union

Создает запрос на объединение,который объединяет результаты нескольких независимых запросов или таблиц.

Синтаксис

[TABLE] запрос_1 UNION [ALL] [TABLE] запрос_2 [UNION [ALL] [TABLE] запрос_n [ ... ]]

Ниже перечислены аргументы операции UNION:

Элемент

Описание

запрос_1-n

Инструкция SELECT, имя сохраненного запроса или имя сохраненной таблицы, перед которым стоит зарезервированное слово TABLE.

Простой запрос на объединение

Следующий запрос на объединение содержит две инструкции SQL SELECT, определяющие возвращение из таблиц «Поставщики» и «Клиенты» названий организаций и городов, находящихся в указанной стране.

Возврат в начало

Сортировка в запросе на объединение

В следующем запросе на объединение отбираются все названия организаций и городов из таблиц «Поставщики» и «Клиенты» и выполняется сортировка по названием городов:

SELECT [Название], [Город]

FROM [Поставщики]

UNION SELECT [Название], [Город]

FROM [Клиенты]

ORDER BY [Город];

Переименование полей в запросе на объединение

В следующем запросе на объединение поле «Название» получает при выводе результатов имя «Поставщик/Клиент»:

SELECT [Название] AS [Поставщик/Клиент], [Город]

FROM [Поставщики]

UNION SELECT [Название] AS [Поставщик/Клиент], [Город]

FROM [Клиенты];

Дополнительные сведения

В одной операции UNION можно объединить в любом наборе результаты нескольких запросов, таблиц и инструкций SELECT. В следующем примере объединяется существующая таблица «Новые счета» и инструкции SELECT:

TABLE [Новые счета] UNION ALL

SELECT *

FROM Клиенты

WHERE СуммаЗаказа > 1000;

По умолчанию повторяющиеся записи не возвращаются при использовании операции UNION, однако в нее можно добавить предикат ALL, чтобы гарантировать возврат всех записей. Кроме того, такие запросы выполняются быстрее.

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

Используйте псевдонимы только в первом предложении SELECT, потому что в остальных они пропускаются. В предложении ORDER BY ссылайтесь на поля по их названиям в первом предложении SELECT.

Примечания

  • В каждом аргументе запросадопускается использование предложения GROUP BY или HAVING для группировки возвращаемых данных.

  • В конец последнего аргумента запросаможно включить предложение ORDER BY, чтобы отсортировать возвращенные данные.