Пустой результат запроса, если одна из временных таблиц пустая #795779


#0 by poddex
Добрый день, уважаемые специалисты и гости форума! Нужна ваша помощь. Сделал пакетный запрос - 2 запроса во временные таблицы, третий запрос - на основе этих временных таблиц. В чем проблема: если вторая временная таблица пустая (там отбор в ГДЕ по условию, и она может быть пустой), итоговый запрос ничего не возвращает, хотя выбор по полям вроде стоит. Где-то я нанубил, не понимаю, как соединять эти таблицы правильно. До кучи вопрос: если выбирать поля так, как я привел - как логически происходит этот запрос? С соединениями вроде все ясно, а если просто перечислить выбираемые таблицы в разделе ИЗ? Вот текст итогового запроса. ВЫБРАТЬ
#1 by HEKPOH
ИЗ Некошерно так писать...
#2 by Рэйв
Полное Соединение сделай
#3 by Рэйв
Полно Соединение сделай
#4 by Buster007
странное условие. Какой от него смысл?
#5 by МимохожийОднако
это весь запрос?
#6 by dezss
делай левое соединение с той, которая никогда не пустая. При простом перечислении таблиц в "из" делается полное декартово произведение таблиц. Если одна из них пуста, то и результат будет пустой.
#7 by poddex
В первой временной таблице ВТОтветственные отбирается список сотрудников. Во второй временной таблице ВТЗамещаемые отбирается список отсутствующих сотрудников (там условие построено так, что всего один человек выпадает - 1 строка в запросе). В итоговом запросе, который я привел, поля первой временной таблицы "сравниваются" (это я так думаю) со второй, и если текст совпадает (ВЫБОР), берутся поля из второй таблицы. Вот только по-ходу, я неверно понял, как логически работает итоговый запрос, оттого и косяки. Кстати, если в ВТЗамещаемые одна строка, то все работает прекрасно.
#8 by catena
Запись "из тз1,тз2" соединяет каждую строку тз1 с каждой строкой тз2. Если в одной из таблиц строк нет, то и соединять нечего.
#9 by poddex
Действительно, ПОЛНОЕ СОЕДИНЕНИЕ надо было. Не допетрил, что "Декартово произведение" ,в этом случае результат будет пустой, а соединение берет данные из обеих таблиц.
#10 by dezss
полное или левое, тут не принципиально, если только одна из них может быть пустой...
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С