Запросы на объединение

Запросы на объединение являются специфической разновидностью запросов на выборку и предназначены для объединения нескольких временных наборов данных в один. Конструктивно запросы на объединение представляют собой несколько запросов на выборку, представленных своими SQL-операторами, которые соединены друг с другом ключевым словом UNION. Все запросы на выборку, входящие в запрос на объединение, должны иметь одинаковое число полей (столбцов), при этом имена полей, объединяемых по вертикали, могут и не совпадать. Именами полей итоговой выборки будут имена полей из первого запроса (SQL-оператора). Типы объединяемых полей должны быть совместимыми, за одним исключением — в одном поле могут быть текстовые и числовые типы значений (числовые значения будут преобразованы к текстовому типу).

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

Поскольку запросы на объединение являются так называемыми запросами SQL, то работать с ними можно только в двух режимах — в режиме таблицы и в режиме SQL-оператора. Режим конструктора для них не доступен. Удобно конструировать запросы на объединение следующим образом:

• на первом шаге в режиме конструктора создаются все необходимые запросы на выборку (т.е. запросы, результаты работы которых должны быть объединены в одну итоговую выборку);

• далее необходимо создать новый запрос и открыть его в режиме SQL-оператора (отказавшись от добавления в макет каких-либо таблиц);

• не закрывая этот запрос, нужно поочередно открывать созданные перед этим запросы на выборку в режиме SQL-оператора, копировать соответствующие строки операторов в буфер, а затем вставлять их в запрос на объединение;

• на последнем этапе разработки между SQL-операторами запроса на объединение необходимо вставить ключевые слова UNION.

Синтаксис запроса на объединение следующий:

Запрос_на_выборку_1

UNION [ALL]

Запрос_на_выборку_2

UNION [ALL]

...

Запрос_на_выборку_n

Запросы на объединение обычно используются совместно с другими запросами (на выборку, на добавление и т.д.). Схема взаимодействия такова: сначала создается запрос на объединение, возвращающий несколько подряд идущих однотипных временных наборов данных. После этого создается, например, запрос на выборку, в качестве источника данных использующий запрос на объединение. Используя в этом запросе группировку и статистические функции (Sum, Count и другие), можно сформировать необходимый набор данных.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: