Разность таблиц в запросе по двум полям #710939


#0 by Chum
Вводная: УПП Есть регистр накопления "Реестр", где измерения "Заказ" и "Договор". Есть документ "Заявка на расходование средств" с табличной частью "РасшифровкаПлатежа", где есть реквизиты "Ссылка" (aka Заказ) и "ДоговорКонтрагента". Нужно получить таблицу с полями Заказ|Договор, куда войдут все документы Заказ, которые не фигурируют в регистре. Нацарапал черновик запроса, а как поставить условие по двум параметрам?
#1 by Крошка Ру
Левое соединение "Расшифровка платежа" с "Реестром" по заказу и договору, где Реестр.заказ EСТЬNULL
#2 by Chum
Спасибо, но можно ли пример? В запросах нуб, поэтому даже особо не понимаю нужны ли здесь временные таблицы
#3 by Ёпрст
выбрать * ИЗ ЗаявкиВРеестре как ЗаявкиВРеестре внутреннее соединение Документ.ЗаявкаНаРасходованиеСредств.РасшифровкаПлатежа КАК ЗаявкаНаРасходованиеСредствРасшифровкаПлатежа
#4 by Крошка Ру
Не внутреннее. Так выберет те заказы, которые есть в реестре
#5 by Крошка Ру
+ вернее вообще пустой вернет, т.к. условие "<>"
#6 by Chum
?         "ВЫБРАТЬ
#7 by Ёпрст
да, наеборот надо, копи-пасте же :) выбрать * ИЗ Документ.ЗаявкаНаРасходованиеСредств.РасшифровкаПлатежа КАК ЗаявкаНаРасходованиеСредствРасшифровкаПлатежа внутреннее соединение ЗаявкиВРеестре как ЗаявкиВРеестре
#8 by Крошка Ру
Да. Только последнее условие можно убрать.
#9 by Крошка Ру
Прочитай внимательнее
#10 by Chum
ок. спасибо.
#11 by Ёпрст
и ?
#12 by Ёпрст
а ну да, туплю
#13 by Ёпрст
Хотя нет, заморочил мне голову..
#14 by Крошка Ру
Нужны те заказы, которых нет в Реестре, у тебя - те заказы которые есть или там, или там (при этом соединение по договору)
#15 by Ёпрст
и ? не равно по договору еще.. делов то, твой лефт джоин - тот-же иннер
#16 by Крошка Ру
Не равно по договору в условии соединения?
#17 by Ёпрст
да и по ссылке
#18 by Крошка Ру
То есть запрос вытащит все заказы из регистра "Реестр", договоры по которым не встречаются в ТЧ "Расшифровка"?
#19 by Ёпрст
Наеборот, вытащит все документы, которых нет на остатке, что и нужно в
#20 by Крошка Ру
Да ты сам подумай)) Нужно вытащить все данные из одной таблицы и убрать из них те, которые есть в другой. А у тебя внутреннее (то есть симметричное) соединение. Как запрос сообразит из какой таблицы брать данные, а из какой отбрасывать?
#21 by Ёпрст
см , есть такое, там кросс джоин выйдет :)))
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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