Задвоение сумм в запросе #393991


#0 by Свирепый Дятел
Запрос следующего вида: ПО В запросе идет соединение с временной таблицей другого запроса по остаткам. Далее - процедура, которая выводит данные запроса на печать: Суть проблемы в том, что при выводе данных в печ. форму происходит задвоение и даже затроение сумм оборотов. При периодичности от декады и больше все нормально. Вопрос: кто-нибудь знает, как избавиться от такой хрени?
#1 by ТелепатБот
#2 by los_hooliganos
Условие соединения скорее всего задваивает.
#3 by НЕА123
в соединении ПО надо укрепить. пожещще условия должны быть. наверно.
#4 by 73
При ПравомСоединении здесь могут быть NULL:
#5 by Свирепый Дятел
КорСчет во всех строках есть... смотрел в отладчике через РезультатОбороты.Выгрузить.ВыбратьСтроку Разрезы да, там есть строки типа NULL, но это потому, что по субконто в этих строках оборотов за период не было. Но такие значения субконто тоже надо выводить в таблицу.
#6 by 73
Проблему отсекал? Запрос виноват или процедура?
#7 by Свирепый Дятел
В запросе суммы уже утроенные...
#8 by 73
Периодичность? Что имеется ввиду? Период &Нач - &Кон?
#9 by Свирепый Дятел
Период как во всех типовых отчетах. Периодичность - документ. В запросе же ясно сказано.
#10 by selenat
почитай подробнее про левое/правое соединения. Разберешься в чем их смысл - все прояснится...
#11 by 73
Вот это смущает: <При периодичности от декады и больше все нормально>
#12 by 73
+ Значит ли, что ошибка появляется, когда ты указываешь параметр Регистратор в Вирт табл?
#13 by НЕА123
#14 by Свирепый Дятел
А я, по-твоему, бездумно указал именно правое соединение? Если периодичность день или неделя, то тоже в суммах оборотов колбасня. Тогда они удваиваются. заранее неизвестно. М.б. много, счет выбирается в диалоге юзером
#15 by selenat
не знаю, думно, или бездумно, но факт в том, что проблема наверняка именно в этом. У тебя для каждой строки одной таблицы может быть несколько строк другой таблицы, которые попадают в результат запроса отдельными строками. При сложении в одном поле сумма правильная, в другом может быть и задвоение, и затроение и т.д.
#16 by Свирепый Дятел
Это и так понятно. Вот я и спрашиваю решение этой проблемы, потому что, в конечном итоге данные нужно вывести из обеих таблиц.
#17 by 73
Поля Временной по остаткам? Или текст покажи.
#18 by Всеяд
Во временной таблице, скорее всего, сводные данные или фиксированная периодичность, которая не совпадает с периодичностью приведённого текста запроса. И на каждую сводную строчку ВТ выводится N строчек запроса, в зависимости от периодичности.
#19 by selenat
твой текст смотреть мне влом, но обычно это решается либо правильной периодичностью для вирт. таблиц, либо подзапросом с группировкой данных в нем...
#20 by Свирепый Дятел
"ВЫБРАТЬ РАЗЛИЧНЫЕ РАЗРЕШЕННЫЕ    ХозрасчетныйОстОб.СуммаНачальныйОстатокДт КАК СальдоНачальноеДт,    ХозрасчетныйОстОб.СуммаНачальныйОстатокКт КАК СальдоНачальноеКт,
#21 by Новичок
#22 by Свирепый Дятел
Периодичность у обоих запросов одинаковая
#23 by selenat
ДвиженияИГраницыПериода - это дополнительные строки в результате запроса, если память не изменяет....
#24 by Свирепый Дятел
Да. "Управляет включением в отчет периодов, не имеющих обороты, но имеющих остатки" (с) Радченко и др.
#25 by Всеяд
Вижу. Теперь очевидно, что ответ в и . Если нужны регистраторы - добавь условие связи по ним. Если не нужны - группируй.
#26 by Свирепый Дятел
Регистраторы в запросе остатков не нужны, (сейчас просто уберу их из текста), поскольку в запросе по остаткам надо получить те субконто, по которым были именно остатки... а оборотов по ним может и не быть. А что группировать?
#27 by Всеяд
Я щас перечитал запросы - если я правильно понял, что ты хочешь получить, то так у тебя не получится. В таблице оборотов у тебя заведомо будет больше записей, удовлетворяющих условию связи, чем в таблице остатков. Либо способ решения нужно пересмотреть, либо попытаться привести запрос к левому соединению таблицы остатков к таблице оборотов. А недостающие остатки добавить, например, объединением. Может, конечно, рассуждения и мимо - если неправильно понял задачу.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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