Объединение запросов
В языке запросов имеется возможность объединять несколько запросов; при этом записи, полученные с помощью каждого из объединяемых запросов, будут собраны в один результат запроса.
При объединении каждый запрос собирает данные независимо, а такие операции, как дополнение результатов, упорядочивание результатов и расчет итогов выполняются уже над результатом объединения запросов.
Поля результата запроса будут называться так, как описано в списке полей выборки первого из объединяемых запросов. Поля выборки остальных запросов сопоставляются с полями результата в соответствии с порядком их следования в списке полей выборки. Объединяемые запросы должны иметь одинаковое количество полей в списке полей выборки.
Если поля выборки объединяемых запросов имеют разный тип, то поля результата запроса будут иметь составной тип.
Объединение запросов описывается по следующему правилу:
ОБЪЕДИНИТЬ [ВСЕ] <Описание запроса>
[<Объединение запросов>]
Объединение запросов начинается с обязательного ключевого слова ОБЪЕДИНИТЬ, после которого следует описание присоединяемого запроса. Далее может присоединяться еще один запрос и т.д.
По умолчанию при объединении запросов полностью одинаковые строки в результате запроса, сформированные разными запросами, заменяются одной. Если требуется, чтобы были оставлены разные строки, необходимо указать ключевое слово ВСЕ.
Пример:
Выбрать
Накладная.Контрагент,
Накладная.Номенклатура,
Сумма(Накладная.Количество) Как Приход,
Сумма(0) Как Расход
Из
Документ.ПриходнаяНакладная.Состав Накладная
Сгруппировать По
Контрагент,
Номенклатура
Объединить Все
Выбрать
Накладная.Контрагент,
Накладная.Номенклатура,
Сумма (0) ,
Сумма (Накладная.Количество)
Из
Документ.РасходнаяНакладная.Состав Накладная
Сгруппировать По
Контрагент,
Номенклатура
Упорядочить По
Контрагент,
Номенклатура
Итоги По
Контрагент
Итоги Общие
Результат запроса:
Контрагент | Номенклатура | Приход | Расход |
1 943 | 151 | ||
Трикотажная фабрика «Заря» | 443 | 4 | |
Трикотажная фабрика «Заря» | Брюки детские | 3 | |
Трикотажная фабрика «Заря» | Брюки детские | 100 | |
Трикотажная фабрика «Заря» | Рубашка «Ковбойка» | 200 | |
Трикотажная фабрика «Заря» | Джинсы женские | 1 | |
Трикотажная фабрика «Заря» | Джинсы женские | 80 | |
Трикотажная фабрика «Заря» | Свитер детский | 60 | |
Трикотажная фабрика «Заря» | Кухонный комбайн Крупc | 3 | |
Ярмарка одежды | 42 | ||
Ярмарка одежды | 20 | ||
Ярмарка одежды | 20 | ||
Ярмарка одежды | 2 | ||
Торговый дом «Буденовский» | 53 | ||
Торговый дом «Буденовский» | Брюки детские | 10 | |
Торговый дом «Буденовский» | Рубашка «Ковбойка» | 5 | |
Торговый дом «Буденовский» | Джинсы женские | 12 | |
Торговый дом «Буденовский» | Свитер детский | 1 | |
Торговый дом «Буденовский» | Раковина «Лилия» | 8 | |
Торговый дом «Буденовский» | Мойдодыр «Аквариум» | 5 | |
Торговый дом «Буденовский» | Смеситель «Ультра» | 10 | |
Торговый дом «Буденовский» | Кухонный комбайн Крупc | 2 | |
Павильон 45 на оптовом рынке | 44 | ||
Павильон 45 на оптовом рынке | Рубашка «Ковбойка» | 5 | |
Павильон 45 на оптовом рынке | Джинсы женские | 9 | |
Павильон 45 на оптовом рынке | Раковина «Лилия» | 10 | |
Павильон 45 на оптовом рынке | Мойдодыр «Аквариум» | 20 | |
Бавария-фарфор | 1 500 | 8 | |
Бавария-фарфор | Брюки детские | 7 | |
Бавария-фарфор | Джинсы женские | 1 | |
Бавария-фарфор | Раковина «Лилия» | 270 | |
Бавария-фарфор | Мойдодыр «Аквариум» | 230 | |
Бавария-фарфор | Смеситель «Ультра» | 1 000 |