Сразу говорю - этот способ добавления регистраторов неправильный, таблица остатков при соединении с ними будет для каждой позиции повторена столько раз, сколько различных документов-регистраторов там было. Применять можно только для случая, когда регистратор всегда только один!
Правильно будет использовать таблицу РегистрНакопления.ТоварыНаКонсигнации.ОстаткиИОбороты.
И все же, если править именно этот запрос, получим примерно такое (добавлены скобки для правильного вложенного запроса, убрано лишнее условие из ГДЕ, которое и так в ЛЕВОМ СОЕДИНЕНИИ стоит):
ВЫБРАТЬ РАЗЛИЧНЫЕ
ТоварыНаКонсигнацииОстатки.Организация,
ТоварыНаКонсигнацииОстатки.Консигнатор,
ТоварыНаКонсигнации.Регистратор,
ТоварыНаКонсигнацииОстатки.Номенклатура,
ТоварыНаКонсигнацииОстатки.ХарактеристикаНоменклатуры,
ТоварыНаКонсигнацииОстатки.СерияНоменклатуры,
ТоварыНаКонсигнацииОстатки.Качество,
ТоварыНаКонсигнацииОстатки.Склад,
ТоварыНаКонсигнацииОстатки.КоличествоОстаток,
ТоварыПереданныеОстатки.СуммаВзаиморасчетовОстаток
ИЗ
РегистрНакопления.ТоварыНаКонсигнации.Остатки КАК ТоварыНаКонсигнацииОстатки,
РегистрНакопления.ТоварыПереданные.Остатки КАК ТоварыПереданныеОстатки
ЛЕВОЕ СОЕДИНЕНИЕ
(
ВЫБРАТЬ
ТоварыНаКонсигнации.Номенклатура КАК Номенклатура1,
ТоварыНаКонсигнации.Регистратор
ИЗ
РегистрНакопления.ТоварыНаКонсигнации
) КАК ТоварыНаКонсигнации
ПО ТоварыНаКонсигнации.Номенклатура = ТоварыНаКонсигнацииОстатки.Номенклатура
ГДЕ
ТоварыПереданныеОстатки.Номенклатура = ТоварыНаКонсигнацииОстатки.Номенклатура
Заодно я поле Регистратор добавил в итоговый список полей (а иначе зачем было его получать?).
По поводу странного соединения - вот такой способ (две таблицы через запятую, условия в ГДЕ) дает результат, аналогичный внутреннему соединению.
Сообщение отредактировал yuritch - 31.10.12, 12:39