Similar presentations:
Соединения. Информатика
1.
СОЕДИНЕНИЯ2.
План занятия1. Соединения в запросах
2. Левое и правое соединение
3. Полное и внутреннее соединение
4. Использование соединений в КЗ.
5. Особенности использования соединений.
6. Итог
7. Домашнее задание
2
3.
Соединения в запросах3
4.
Соединения в запросахСоединения применяются для получения выборки из нескольких
таблиц.
Например, для получения данных по контрагенту и связанной
контактной информации получим результат:
4
5.
Соединения в запросахСуществует четыре типа соединения:
○
Левое;
○
Правое;
○
Внутреннее;
○
Полное.
5
6.
Соединения в запросахОбщий синтаксис в запросе:
… <тип соединения> СОЕДИНЕНИЕ <вторая таблица> ПО
<связанное поле первой таблицы> = <связанное поле второй таблицы>
Тип соединения указывается один из четырех. После ключевого слова
СОЕДИНЕНИЕ указывается вторая таблица, после ПО указываются
связи между таблицами по полям:
6
7.
Соединения в запросахОсобенности соединений:
○
Псевдонимы таблиц должны быть различные;
○
Имена полей не должны пересекаться;
○
Возможно использование нескольких видов соединений в одном
запросе;
○
Для корректного отображения значений используется функция
ЕстьNULL();
○
Условием соединения может быть и “ИСТИНА” (каждая строка
соединяется с каждой строкой второй таблицы). Может вызвать
нехватку памяти на больших источниках или долго выполняться
(зависание).
7
8.
Левое и правое соединение8
9.
Левое и правое соединениеНапример, имеется две таблицы: справочник Контрагенты и регистр
накопления ДвиженияТовара. В результате хотим получить одну
таблицу в которой будет выборка по контрагенту и его общие обороты:
9
10.
Левое и правое соединениеИспользуем левое соединение. При этом:
○
В синтаксисе запроса используется ключевое слово ЛЕВОЕ
СОЕДИНЕНИЕ;
○
Выбираются все записи из левой таблицы и по условию
привязываются записи правой таблицы;
○
Поля правой таблицы, не привязанные по условию, имеют
значение Null;
○
Количество строк больше или равно количеству строк в левой
таблице (условие соединения может вызывать дубли);
10
11.
Левое и правое соединениеДля получения оборотов по контрагенту используется запрос:
В запросе выбираются все данные из справочника Контрагенты и
связанные записи из регистра накопления ДвиженияТовара;
11
12.
Левое и правое соединениеВ результате выполнения запроса мы получим выборку:
Для контрагента “Контрагент без движений” нет записей по оборотам,
поэтому КоличествоОборот = Null
Для корректного отображения значений используется функция
ЕстьNULL();
12
13.
Левое и правое соединениеПри использовании правого соединения:
○
В синтаксисе запроса используется ключевое слово ПРАВОЕ
СОЕДИНЕНИЕ;
○
Аналогично левому соединению. Используются все записи из
второй таблицы;
○
Например, выполнение текста запроса ниже даст такой же
результат как в примере при левом соединении:
13
14.
Полное и внутреннеесоединение
14
15.
Полное и внутреннее соединениеНапример для получения таблицы реализаций и поступлений
используем запрос:
15
16.
Полное и внутреннее соединениеПолучаем результат:
Значение которые равны Null можно обработать функцией ЕстьNULL();
16
17.
Полное и внутреннее соединениеПри полном соединении:
○
В синтаксисе запроса используется ключевое слово ПОЛНОЕ
СОЕДИНЕНИЕ;
○
Число строк равняется количеству совпадающих по связанным
поля строк и все несовпадающие;
○
Это как левое и правое соединение в одном;
17
18.
Полное и внутреннее соединениеПри внутреннем соединении таблиц реализации и поступления
используем запрос:
18
19.
Полное и внутреннее соединениеПолучаем результат:
Выборка на выходе в виде одной таблицы с заполненными полями;
19
20.
Полное и внутреннее соединениеПри внутреннем соединении:
○
В синтаксисе запроса используется ключевое слово ВНУТРЕННЕЕ
СОЕДИНЕНИЕ;
○
Число строк меньше или равно количеству строк таблицы у
которой меньше всего записей;
○
При соединении более двух таблиц - сначала производится первое
соединение, далее с результатом выполняется соединение по
цепочке таблиц.
20
21.
Использование соединенийв КЗ
21
22.
Использование соединений в КЗПри настройке соединений в конструкторе запросов необходимо
выбрать таблицы на вкладке “Таблицы и поля”:
22
23.
Использование соединений в КЗПерейти на вкладку “Связи”:
Для простых таблиц система может самостоятельно определить связи;
Для определения дополнительных связей можно добавлять строки.
23
24.
Использование соединений в КЗВид соединения определяется комбинацией значений флажков “Все”
24
25.
Использование соединений в КЗПри этом возможны варианты:
○
Для левого соединения устанавливается значение “Все” для
первой таблицы;
○
Для правого соединения значение “Все” для второй таблицы;
○
Чтобы получить полное соединение устанавливаются значения
“Все” для двух таблиц;
○
Для внутреннего соединения соответственно снимаются оба
флажка;
25
26.
Использование соединений в КЗУправление значения реквизита “Произвольное” позволяет либо
вручную писать условие связи, либо выбирать поля для для связи из
списка:
26
27.
Особенности использованиясоединений
27
28.
Особенности использования соединенийАнализировать пустые значения при левом или полном соединении;
Может сильно замедлить выборку использование полных соединений
или срезы последних из регистров сведений;
В конструкторе запросов обращать внимание на таблицы и поля на
вкладке “Связи”. Система может не корректно предложить вариант;
Если выбрать две таблицы и не указать связи, то получится неявное
полное соединение(таблицы в запросе перечисляются через запятую).
28
29.
ИтогМы узнали:
○
Что такое соединение в запросе. Какие бывают виды соединений.
Мы научились:
○
Создавать текст запроса с соединениями.
○
Изменять и анализировать текст запроса.
29
30.
Домашнее заданиеЗадача "Информация по контрагенту":
Описание задачи
Создать внешнюю обработку ИнформацияПоКонтрагенту. Обработка формирует и
выводит на экран Табличный документ с информацией по контрагенту. В обработке
выбирается контрагент для формирования информации.
Требования к результату
Прикрепить .epf файл внешней обработки для формирования информации по
контрагенту и .dt выгруженной базы с данными.
*Смотрите сл. слайд
30
31.
Домашнее заданиеЗадача "Информация по контрагенту":
31