select oborot.sumob, hozoper.name1 from hozoper
where ((281474980991941==katsopr.nrec
and katsopr.chozoper ==hozoper.nrec
and oborot.chozoper==hozoper.nrec (noindex)
));
если убираю ---and oborot.chozoper==hozoper.nrec (noindex)---
то выводится одна строчка в результате запроса, иначе выполнение запроса уходит в бесконечность:(
1. Не стоит использовать таблицы без подцепок - поэтому после убирания строки уходите в никуда.
2. oborot.chozoper==hozoper.nrec замените на hozoper.nrec == oborot.chozoper - у вас же компилятор ругается что поле уже подвязано по этому узлу!
правило простое для (()) - значения(в том числе и поля родительских таблиц) условий слева, поля под условия справа, но не наоборот.
3. Не знаю в чем там у вас цель, но правильней отбирать обороты по ключу tidkgal + csoprdoc. Ну или по csoprhoz - а его уже искать по tidkgal + csoprdoc
select oborot.sumob, hozoper.name1 from hozoper
where ((281474980991941==katsopr.nrec
and katsopr.vidsopr == soprhoz.tipdoc
and katsopr.nrec == soprhoz.csoprdoc
and soprhoz.chozoper == hozoper.nrec
and soprhoz.nrec == oborot.csoprhoz
));
проверила этот запрос. практически для всех актов проводки выводятся верно, а для ТХО (ФРО 44сч) почему-то данные задваиваются.. Потому что в таблице oborot так проставлены значения.. Как исключить повторы? distinct нельзя использовать:(
Причин две
1. Проводки в нескольких планах счетов
2. Несколько SoprHoz на документ, и к каждой свои проводки. Если ФРО, то там ищите же по PlPor? Там как раз возможно деление. Учтите. что фильтр по типу документа обязателен - это общая помойка для всех документов для связи с проводками. В модуле хозоперации вы видите именно эту таблицу.