Группировка запроса по РТУ

1. Intercititude 10.07.20 16:25 Сейчас в теме
Доброе время суток всем!
Есть ошибка в следующем куске запроса:

ВЫБРАТЬ
	РТУ.Регистратор,
	СУММА(РТУ.Стоимость) КАК СуммаРТУ,
	РТУ.Регистратор.Сделка КАК Сделка
ПОМЕСТИТЬ ВТ_РТУ
ИЗ
	РегистрНакопления.Продажи КАК РТУ
ГДЕ
	РТУ.Период МЕЖДУ &ДатаНачала И &ДатаОкончания
	И РТУ.Контрагент = &Контрагент
	И РТУ.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг

СГРУППИРОВАТЬ ПО
	РТУ.Регистратор,
	РТУ.Регистратор.Сделка
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	СУММА(Заказы.СуммаВзаиморасчетов) КАК СуммаЗаказов,
	Заказы.ЗаказПокупателя
ПОМЕСТИТЬ ВТ_Заказы
ИЗ
	РегистрНакопления.ЗаказыПокупателей КАК Заказы
ГДЕ
	Заказы.Регистратор ССЫЛКА Документ.ЗаказПокупателя
	И Заказы.Период МЕЖДУ &ДатаНачала И &ДатаОкончания
	И Заказы.ЗаказПокупателя.Контрагент = &Контрагент

СГРУППИРОВАТЬ ПО
	Заказы.ЗаказПокупателя
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ВЫБОР
		КОГДА Заказы.СуммаЗаказов <= ЕСТЬNULL(Реализации.СуммаРТУ, 0)
			ТОГДА ЕСТЬNULL(Реализации.СуммаРТУ, 0)
		ИНАЧЕ Заказы.СуммаЗаказов
	КОНЕЦ КАК СуммаЗаПериод
ПОМЕСТИТЬ ВТ_ИТОГ
ИЗ
	ВТ_РТУ КАК Реализации
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_Заказы КАК Заказы
			ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_СвязьЗаказаСЗакрытием КАК ВТ_СвязьЗаказаСЗакрытием
			ПО (ВТ_СвязьЗаказаСЗакрытием.ЗаказПокупателя = Заказы.ЗаказПокупателя)
		ПО Реализации.Регистратор.Сделка = Заказы.ЗаказПокупателя.Ссылка
Показать


На выходе происходят дубли заказов в том случае если к заказу привязаны несколько разделенных реализации!
Как это исправить ?
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
6. user1058740 10.07.20 17:56 Сейчас в теме +0.5 $m
Убери из первого запроса РТУ.Регистратор и замени Реализации.Регистратор.Сделка на Реализации.Сделка.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. alex-l19041 8 10.07.20 16:31 Сейчас в теме
(1) зачем в первой таблице Регистратор ?
3. Intercititude 10.07.20 16:45 Сейчас в теме
(2)Связь рту с заказом. Последняя строка запроса.
4. alex-l19041 8 10.07.20 16:46 Сейчас в теме
(3) сделка уже есть в таблице
РТУ.Регистратор.Сделка КАК Сделка
user1058740; +1 Ответить
5. Intercititude 10.07.20 16:55 Сейчас в теме
(4) Вот итоговый запрос. Если убрать "Регистратор" из группировки, то лезет ещё больше дублей.

ВЫБРАТЬ
	РТУ.Регистратор,
	СУММА(РТУ.Стоимость) КАК СуммаРТУ,
	РТУ.Регистратор.Сделка КАК Сделка
ПОМЕСТИТЬ ВТ_РТУ
ИЗ
	РегистрНакопления.Продажи КАК РТУ
ГДЕ
	РТУ.Период МЕЖДУ &ДатаНачала И &ДатаОкончания
	И РТУ.Контрагент = &Контрагент
	И РТУ.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг

СГРУППИРОВАТЬ ПО
	РТУ.Регистратор,
	РТУ.Регистратор.Сделка
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	СУММА(Заказы.СуммаВзаиморасчетов) КАК СуммаЗаказов,
	Заказы.ЗаказПокупателя
ПОМЕСТИТЬ ВТ_Заказы
ИЗ
	РегистрНакопления.ЗаказыПокупателей КАК Заказы
ГДЕ
	Заказы.Регистратор ССЫЛКА Документ.ЗаказПокупателя
	И Заказы.Период МЕЖДУ &ДатаНачала И &ДатаОкончания
	И Заказы.ЗаказПокупателя.Контрагент = &Контрагент

СГРУППИРОВАТЬ ПО
	Заказы.ЗаказПокупателя
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ЗаказыЗакрытие.ЗаказПокупателя,
	ЗаказыЗакрытие.СуммаВзаиморасчетов КАК СуммаЗакрытия
ПОМЕСТИТЬ ВТ_ЗакрытиеЗаказов
ИЗ
	РегистрНакопления.ЗаказыПокупателей КАК ЗаказыЗакрытие
ГДЕ
	ЗаказыЗакрытие.Период МЕЖДУ &ДатаНачала И &ДатаОкончания
	И ЗаказыЗакрытие.Регистратор ССЫЛКА Документ.ЗакрытиеЗаказовПокупателей
	И ЗаказыЗакрытие.ЗаказПокупателя.Контрагент = &Контрагент
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ЕСТЬNULL(ВТ_ЗакрытиеЗаказов.СуммаЗакрытия, 0) КАК СуммаЗакрытия,
	ВТ_Заказы.ЗаказПокупателя
ПОМЕСТИТЬ ВТ_СвязьЗаказаСЗакрытием
ИЗ
	ВТ_Заказы КАК ВТ_Заказы
		ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ЗакрытиеЗаказов КАК ВТ_ЗакрытиеЗаказов
		ПО ВТ_Заказы.ЗаказПокупателя = ВТ_ЗакрытиеЗаказов.ЗаказПокупателя
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ВЫБОР
		КОГДА Заказы.СуммаЗаказов - ВТ_СвязьЗаказаСЗакрытием.СуммаЗакрытия <= ЕСТЬNULL(Реализации.СуммаРТУ, 0)
			ТОГДА ЕСТЬNULL(Реализации.СуммаРТУ, 0)
		ИНАЧЕ Заказы.СуммаЗаказов - ВТ_СвязьЗаказаСЗакрытием.СуммаЗакрытия
	КОНЕЦ КАК СуммаЗаПериод
ПОМЕСТИТЬ ВТ_ИТОГ
ИЗ
	ВТ_РТУ КАК Реализации
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_Заказы КАК Заказы
			ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_СвязьЗаказаСЗакрытием КАК ВТ_СвязьЗаказаСЗакрытием
			ПО (ВТ_СвязьЗаказаСЗакрытием.ЗаказПокупателя = Заказы.ЗаказПокупателя)
		ПО Реализации.Регистратор.Сделка = Заказы.ЗаказПокупателя.Ссылка

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	Реализации.СуммаРТУ
ИЗ
	ВТ_РТУ КАК Реализации
ГДЕ
	Реализации.Регистратор.Сделка = ЗНАЧЕНИЕ(Документ.ЗаказПокупателя.ПустаяСсылка)

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	Заказы.СуммаЗаказов
ИЗ
	ВТ_Заказы КАК Заказы
ГДЕ
	НЕ Заказы.ЗаказПокупателя.Ссылка В
				(ВЫБРАТЬ
					реализации.Сделка
				ИЗ
					ВТ_РТУ КАК реализации)
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	СУММА(ВТ_ИТОГ.СуммаЗаПериод) КАК СуммаЗаПериод
ИЗ
	ВТ_ИТОГ КАК ВТ_ИТОГ
Показать
6. user1058740 10.07.20 17:56 Сейчас в теме +0.5 $m
Убери из первого запроса РТУ.Регистратор и замени Реализации.Регистратор.Сделка на Реализации.Сделка.
7. Intercititude 10.07.20 18:11 Сейчас в теме
(6) У этого регистра нету "Сделки" же.
8. starjevschik 11.07.20 11:18 Сейчас в теме
Прежде чем "это" исправлять, надо бы понять, что же нужно получить. Запрос он же не думает, что сказали - то и выдал.
9. Intercititude 11.07.20 12:54 Сейчас в теме
(8)За определенный период по контрагенту сумму заказов + реализации..
10. Intercititude 11.07.20 13:28 Сейчас в теме
(9)1) Заказы + реализации с учётом корректировок
2) Реализации без заказов
3) Заказы без реализации.

И эту общую сумму получаем
11. starjevschik 11.07.20 14:50 Сейчас в теме
(9) если только сумму, то зачем там вообще документы в результатах запроса? Надо документы выкинуть и все получится.
12. Intercititude 11.07.20 15:29 Сейчас в теме
(11) К Примеру? Без документов же корректно не отгруппировать и не связать,и условия как же.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот