Объединённые запросы

1. user1529611 29.11.24 15:07 Сейчас в теме
Подскажите, пожалуйста, почему не считается итог, если есть два запроса, которые объединяются.
Первый запрос из РегистраНакопления, второй из РеистраСведений.
Есть три поля в обоих запросах. Первые два заполняются из первого запроса, а третье из второго.
И получается, если есть данные только из второго запроса (т.е. третье поле), то итог по строке не подсчитывается. Если же есть данные хотябы в одном поле из первого запроса, то итоги считаются правильно
Текст запросов такой:
ВЫБРАТЬ
	Поступление.РазделУчета КАК РазделУчета,
	Поступление.Контрагент КАК Контрагент,
	Поступление.Сумма КАК Сумма,
	Поступление.Период КАК ПериодРеализации,
	Поступление.ВидДвижения КАК ВидДвижения,
	Поступление.Физлицо КАК ФизЛицо,
	ВЫБОР
		КОГДА
				 (ТИПЗНАЧЕНИЯ(Поступление.Регистратор) = ТИП(Документ.ПКОпроживание) или ТИПЗНАЧЕНИЯ(Поступление.Регистратор) = ТИП(Документ.РКОпроживание))
			ТОГДА Поступление.Сумма
			ИНАЧЕ 0
	КОНЕЦ КАК Касса,
	
	ВЫБОР
		КОГДА 
				 (ТИПЗНАЧЕНИЯ(Поступление.Регистратор) = ТИП(Документ.Оплата) или ТИПЗНАЧЕНИЯ(Поступление.Регистратор) = ТИП(Документ.ВозвратОплаты))
			ТОГДА Поступление.Сумма
			ИНАЧЕ 0
	КОНЕЦ КАК Банк,
	
    ВЫБОР
		КОГДА 
				 НЕ(ТИПЗНАЧЕНИЯ(Поступление.Регистратор) = ТИП(Документ.Оплата) или ТИПЗНАЧЕНИЯ(Поступление.Регистратор) = ТИП(Документ.ВозвратОплаты))
			ТОГДА 0
	КОНЕЦ КАК Бронирование,
	
	Поступление.Регистратор КАК Регистратор
ИЗ
	РегистрНакопления.ВзаиморасчетыПроживание КАК Поступление
ГДЕ
	Поступление.Период МЕЖДУ &ДатаЗаезда1 И &ДатаЗаезда2
	И  Поступление.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
Объединить Все

//	
ВЫБРАТЬ
	Бронирование.РазделУчета КАК РазделУчета,
	Бронирование.Контрагент КАК Контрагент,
	Бронирование.Сумма КАК Сумма,
	Бронирование.Период КАК ПериодРеализации,
	Бронирование.ВидРазмещения.Проживание КАК ВидРазмещения,
	Бронирование.Физлицо КАК ФизическоеЛицо,
	
	ВЫБОР КОГДА НЕ(Бронирование.ДатаЗаезда МЕЖДУ &ДатаЗаезда1 И &ДатаЗаезда2)
			ТОГДА 0
	КОНЕЦ КАК Касса,
	
	ВЫБОР КОГДА НЕ(Бронирование.ДатаЗаезда МЕЖДУ &ДатаЗаезда1 И &ДатаЗаезда2)
		 ТОГДА 0
	КОНЕЦ КАК Банк,
	
	ВЫБОР
		КОГДА Бронирование.ДатаЗаезда МЕЖДУ &ДатаЗаезда1 И &ДатаЗаезда2
			ТОГДА -Бронирование.Сумма
			//ИНАЧЕ 0
	КОНЕЦ КАК Бронирование,
	Бронирование.Регистратор КАК Регистратор
ИЗ
	РегистрСведений.БронированиеНомеров КАК Бронирование
ГДЕ
	(Бронирование.ДатаЗаезда МЕЖДУ &ДатаЗаезда1 И &ДатаЗаезда2)  
	 И Бронирование.ВидРазмещения.Проживание
Показать
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user2107184 29.11.24 15:10 Сейчас в теме
ВЫБОР КОГДА НЕ(Бронирование.ДатаЗаезда МЕЖДУ &ДатаЗаезда1 И &ДатаЗаезда2)
ТОГДА 0
КОНЕЦ КАК Касса,

Остановись, подумай...
3. user1529611 29.11.24 15:49 Сейчас в теме
(2) А как тогда сделать, чтобы во втором запросе было три поля?
4. user2107184 29.11.24 17:07 Сейчас в теме
5. user1529611 29.11.24 17:47 Сейчас в теме
(4) Да, у меня мало опыта. Если у вас есть, что ответить, то помогите. Если нет, то извините за беспокойство. Может быть найдутся более отзывчивые люди
6. user2107184 29.11.24 18:16 Сейчас в теме
(5) Причем тут опыт? Ты писал запрос? Какое число у тебя попадет в результат запроса, если дата заезда попадает в интервал бронирования?(в вышеприведенном мной куске запроса)
Почему у тебя в первом запросе пара таких полей написана верно, а в остальных случаях ты решил написать неправильно?
Сравни результаты - что тебе выводится корректно, а что выводится некорректно. И сравни строчки запроса - те, которые выводят корректно, и которые некорректно. Нади мильон отличий.
8. user1529611 30.11.24 09:29 Сейчас в теме
(6) Проблема решена. Ошибка была и в первом запросе тоже. Спасибо за помощь
7. user1863362 29.11.24 22:54 Сейчас в теме
(5) Тебя просили подумать, а не мечтать.
Оставьте свое сообщение

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