Запрос СКД. ОБЪЕДИНИТЬ ВСЕ

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

СГРУППИРОВАТЬ ПО
	ВложенныйЗапрос.Накладная,
	ВложенныйЗапрос.МаршрутныйЛист,
	ВложенныйЗапрос.Дата,
	ВложенныйЗапрос.ПричиныНедопоставки,
	ВложенныйЗапрос.ОтветственноеЛицо,
	ВложенныйЗапрос.Корректировка
Показать
По теме из базы знаний
Найденные решения
14. spacecraft 14.05.18 16:15 Сейчас в теме
(13) если точно не будет несколько, тогда просто:
ВЫБРАТЬ
    ВложенныйЗапрос.Накладная,
    СУММА(ВложенныйЗапрос.СуммаНакладной) КАК СуммаНакладной,
    ВложенныйЗапрос.МаршрутныйЛист,
    ВложенныйЗапрос.Дата КАК ДатаДокумента,
    СУММА(ВложенныйЗапрос.СуммаКорректировки) КАК СуммаКорректировки,
    Максимум(ВложенныйЗапрос.ПричиныНедопоставки) КАК ПричиныНедопоставки,
    Максимум(ВложенныйЗапрос.ОтветственноеЛицо КАК ОтветственноеЛицо,
    Максимум(ВложенныйЗапрос.Корректировка КАК Корректировка
...    
    
СГРУППИРОВАТЬ ПО
    ВложенныйЗапрос.Накладная,
    ВложенныйЗапрос.МаршрутныйЛист,
    ВложенныйЗапрос.Дата
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. spacecraft 14.05.18 15:15 Сейчас в теме
(1) осталось понять, какие поля Не объединяет и что хотите в итоге получить.
Учитывая, что группировки включает в себя и группировку по полям ПричиныНедопоставки, ОтветственноеЛицо, Корректировка, которые в первом подзапросе всегда NULL, по ним не будет сворачивать.
6. Deals 14.05.18 15:35 Сейчас в теме
(2)
(3)
(4)Как в таком случае поступать? Если нет полей ПричиныНедопоставки, ОтветственноеЛицо, Корректировка то всё хорошо. Мне нужен отчет в виде
МаршрутныйЛист
Расходная---Корректировка---СуммаРасходной---СуммаКорректировки---ОтветЛицо---ПричинаНедопоставки
А у меня получается
МаршрутныйЛист
Расходная---NULL---СуммаРасходной---0---NULL---NULL
Расходная---Корректировка---СуммаРасходной---СуммаКорректировки---ОтветЛицо---ПричинаНедопоставки
Полное соединение не пойдет потому что не у всех документов есть корректировка и корректировок может быть несколько по одному документу
9. spacecraft 14.05.18 15:46 Сейчас в теме
(6) убрать ненужные группировки. Иначе по ним будет разделяться.
10. Fe9_min 50 14.05.18 15:47 Сейчас в теме
(6)
Когда вы используете "Объединить все" у вас должна быть последовательность колонок одна и в одном, и во втором запросе:
Запрос 1 (документа ЗаданиеНаПеревозку)
Ссылка КАК Расходная,
Неопределено КАК Корректировка,
СуммаРасходной КАК СуммаРасходной,
0 КАК СуммаКорректировки,
Неопределено КАК ОтветЛицо,
Неопределено КАК ПричинаНедопоставки
ИЗ.................

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

Запрос 2 (документ КорректировкаРеализации левым соедин...)
Основание,
Ссылка,
СуммаРасходной,
СуммаКорректировки,
ОтветЛицо,
ПричинаНедопоставки
ИЗ.....................

Думаю вам так надо
11. spacecraft 14.05.18 15:54 Сейчас в теме
(6) и попробуйте ответить сами себе, как должна сворачиваться следующая ситуация:
Расходная---NULL---СуммаРасходной---0---NULL---NULL
Расходная---Корректировка1---СуммаРасходной1---СуммаКорректировки1---ОтветЛицо1---ПричинаНедопоставки1
Расходная---Корректировка2---СуммаРасходной2---СуммаКорректировки2---ОтветЛицо2---ПричинаНедопоставки2
13. Deals 14.05.18 16:02 Сейчас в теме
(11)Да, с ситуацией когда их будет несколько это будет проблема. Но как можно всё-таки сделать когда имеется 1 корректировка? Бьюсь уже пол дня и никак не могу понять как это сделать.
14. spacecraft 14.05.18 16:15 Сейчас в теме
(13) если точно не будет несколько, тогда просто:
ВЫБРАТЬ
    ВложенныйЗапрос.Накладная,
    СУММА(ВложенныйЗапрос.СуммаНакладной) КАК СуммаНакладной,
    ВложенныйЗапрос.МаршрутныйЛист,
    ВложенныйЗапрос.Дата КАК ДатаДокумента,
    СУММА(ВложенныйЗапрос.СуммаКорректировки) КАК СуммаКорректировки,
    Максимум(ВложенныйЗапрос.ПричиныНедопоставки) КАК ПричиныНедопоставки,
    Максимум(ВложенныйЗапрос.ОтветственноеЛицо КАК ОтветственноеЛицо,
    Максимум(ВложенныйЗапрос.Корректировка КАК Корректировка
...    
    
СГРУППИРОВАТЬ ПО
    ВложенныйЗапрос.Накладная,
    ВложенныйЗапрос.МаршрутныйЛист,
    ВложенныйЗапрос.Дата
Показать
15. Deals 14.05.18 16:29 Сейчас в теме
(14)Спасибо! Не догадался засунуть поля в суммируемые
3. ryutao 50 14.05.18 15:17 Сейчас в теме
(1) в конструкторе запроса закладка Объединения/Псевдонимы Вам все покажет и объяснит.
4. Fe9_min 50 14.05.18 15:20 Сейчас в теме
"Объединить все" вам не надо, тогда. Попробуйте Полное Соединение. Оно как Левое соединение или Внутреннее у вас, только Полное, если я вас правильно понял.
Почитайте в гугле, всё описано.
5. Akuji 22 14.05.18 15:34 Сейчас в теме
Нужно группировать/сворачивать после объединения - еще один вложенный запрос или ВТ
8. Deals 14.05.18 15:42 Сейчас в теме
(5)У меня и так объединение происходит во вложенном запросе, а группирую результат
12. Akuji 22 14.05.18 15:55 Сейчас в теме
(8)да, просмотрел.

МаршрутныйЛист
Расходная---Корректировка---СуммаРасходной---СуммаКорректировки---ОтветЛицо---ПричинаНедопоставки
А у меня получается
МаршрутныйЛист
Расходная---NULL---СуммаРасходной---0---NULL---NULL
Расходная---Корректировка---СуммаРасходной---СуммаКорректировки---ОтветЛицо---ПричинаНедопоставки

1й подзапрос нужен я так понимаю только для получения "СуммаРасходной". наверное лучше ее левым соединением прибавить... т.к. ряд полей в основании отсуствует.
7. Гарин 1 14.05.18 15:41 Сейчас в теме
Сначала во ВТ, а потом ВТ группировать
Оставьте свое сообщение

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