рубрики: Запросы | Дата: 1 февраля, 2016
Рассмотрим объединение таблиц в запросах 1С8. В этом случае итоговая таблица формируется путем размещенеия записей одной или нескольких таблиц под записями исходной таблицы. Объединение таблиц осуществляется с помощью функции ОБЪЕДИНИТЬ языка запросов 1С.
Эта функция используется в двух вариантах: ОБЪЕДИНИТЬ и ОБЪЕДИНИТЬ ВСЕ. Различие между ними в том, что при использовании ОБЪЕДИНИТЬ ВСЕ в итоговую таблицу добавляются все записи из таблиц, которые мы объединяем, а при использовании ОБЪЕДИНИТЬ в случае если в таблицах есть идентичные строки, то в итоговой таблице будет только одна строка, т.е. дубли строк в этом случае удаляются.
Продемонстрирую это на примере.
Откроем консоль запросов и создадим небольшой запрос, который создаст нам элементарную таблицу из пары колонок и одной строки:
ВЫБРАТЬ
"001" КАК Код,
"professia1c.ru" КАК ИмяСайта
В результате выполнения запроса получаем вот такую таблицу
Код | ИмяСайта |
---|---|
001 | professia1c.ru |
А теперь добавим в нашу таблицу еще пару строк
ВЫБРАТЬ
"001" КАК Код,
"professia1c.ru" КАК ИмяСайта
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"002",
"1c.ru"
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"001" КАК Код,
"professia1c.ru" КАК ИмяСайта
Соответственно результат:
Код | ИмяСайта |
---|---|
001 | professia1c.ru |
002 | 1c.ru |
001 | professia1c.ru |
Здесь мы видим, что первая и третья строка дублируются.
А теперь заменим функцию ОБЪЕДИНИТЬ ВСЕ на ОБЪЕДИНИТЬ перед третьей строкой:
ВЫБРАТЬ
"001" КАК Код,
"professia1c.ru" КАК ИмяСайта
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"002",
"1c.ru"
ОБЪЕДИНИТЬ
ВЫБРАТЬ
"001" КАК Код,
"professia1c.ru" КАК ИмяСайта
В итоге видим, что дубли строк у нас исчезли
Код | ИмяСайта |
---|---|
001 | professia1c.ru |
002 | 1c.ru |
Теперь откроем последний запрос в конструкторе и перейдем на закладку Объединения/Псевдонимы, где как раз и отражается факт использования функции ОБЪЕДИНИТЬ.
В правой табличной части мы как раз видим три строчки с запросами, которые подлежат объединению, а флажок Без дубликатов отвечает за то будет ли при объединении использоваться функция ОБЪЕДИНИТЬ либо ОБЪЕДИНИТЬ ВСЕ.
Объединение таблиц с использованием конструктора запросов рассматривается в отдельной статье.
Добавить комментарий