Как объединить два запроса с одинаковыми параметрами

1. sasha-asn 03.11.21 12:03 Сейчас в теме
Доброго времени суток! Очень прошу вашей помощи: есть 2 запроса, у них есть одинаковые параметры, как их правильно объединить?

1 запрос:

ВЫБРАТЬ
	ТоварыНаСкладахОстатки.Склад КАК Склад,
	ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
	ТоварыНаСкладахОстатки.ВНаличииОстаток КАК ВНаличииОстаток
ИЗ
	РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
ГДЕ
        ТоварыНаСкладахОстатки.Склад = &Склад
	И ТоварыНаСкладахОстатки.Номенклатура = &Номенклатура
Показать


2 запрос:

ВЫБРАТЬ
	ТоварыКПоступлениюОстатки.Номенклатура КАК Номенклатура,
	ТоварыКПоступлениюОстатки.Склад КАК Склад,
	ТоварыКПоступлениюОстатки.КОформлениюПоступленийПоРаспоряжениюОстаток КАК КОформлениюПоступленийПоРаспоряжениюОстаток
ИЗ
	РегистрНакопления.ТоварыКПоступлению.Остатки КАК ТоварыКПоступлениюОстатки
ГДЕ
	ТоварыКПоступлениюОстатки.Номенклатура = &Номенклатура
	И ТоварыКПоступлениюОстатки.Склад = &Склад
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. RustamZz 03.11.21 12:19 Сейчас в теме
(1)
ОБЪЕДИНИТЬ ВСЕ
написать между ними. Только порядок следования полей должен быть одинаковый.
2. Kongo2019 03.11.21 12:17 Сейчас в теме
В смысле чтобы один запрос получить?
Так и есть
ОБЪЕДИНИТЬ
3. гаврюша 3 03.11.21 12:18 Сейчас в теме
Нужно только те позиции, которые есть в двух запросах или все позиции с данными и без?
5. гаврюша 3 03.11.21 12:21 Сейчас в теме
Объединить, потом проссумировать по складу и номенклатуре
6. sasha-asn 03.11.21 12:25 Сейчас в теме
вот я написал Объединить и получилась каша. А мне нужно что бы были следующие поля:

СКЛАД НОМЕНКЛАТУРА ТоварыНаСкладахОстатки КОформлениюПоступленийПоРаспоряжениюОстаток
Прикрепленные файлы:
7. user1278383 5 03.11.21 12:32 Сейчас в теме
(6)
ВЫБРАТЬ
    ТоварыНаСкладахОстатки.Склад КАК Склад,
    ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
    ТоварыНаСкладахОстатки.ВНаличииОстаток КАК ВНаличииОстаток,
	0 КАК КОформлениюПоступленийПоРаспоряжениюОстаток
ИЗ
    РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
ГДЕ
        ТоварыНаСкладахОстатки.Склад = &Склад
    И ТоварыНаСкладахОстатки.Номенклатура = &Номенклатура
	
	Объединить все
	
	ВЫБРАТЬ
	ТоварыКПоступлениюОстатки.Склад КАК Склад,
    ТоварыКПоступлениюОстатки.Номенклатура КАК Номенклатура,
	0,
    ТоварыКПоступлениюОстатки.КОформлениюПоступленийПоРаспоряжениюОстаток КАК КОформлениюПоступленийПоРаспоряжениюОстаток
ИЗ
    РегистрНакопления.ТоварыКПоступлению.Остатки КАК ТоварыКПоступлениюОстатки
ГДЕ
    ТоварыКПоступлениюОстатки.Номенклатура = &Номенклатура
    И ТоварыКПоступлениюОстатки.Склад = &Склад
Показать
sasha-asn; +1 Ответить
8. sasha-asn 03.11.21 12:37 Сейчас в теме
(7) получилось! Как я хотел, один вопрос остался - а как сделать чтобы они схлопнулись в одну строку?
Прикрепленные файлы:
12. гаврюша 3 03.11.21 12:41 Сейчас в теме
(8) Посмотрите ответ 10. У Вас не совсем правильно написано объединение. У Вас остатки и краспределению будут в одной колонке.
Нужно поставить 0.
Потом просуммировать и все будет в одной строке.
9. ElGatoGris 03.11.21 12:37 Сейчас в теме
(6) Вам нужно Левое Соединение
13. гаврюша 3 03.11.21 12:42 Сейчас в теме
(9) Левое соединение возможно не корректно, если в остатках не будет номенклатуры, то к распределению не состыкуется.
10. гаврюша 3 03.11.21 12:37 Сейчас в теме
ВЫБРАТЬ
    ТоварыНаСкладахОстатки.Склад КАК Склад,
    ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
    ТоварыНаСкладахОстатки.ВНаличииОстаток КАК ВНаличииОстаток,
    0 КАК КОформлениюПоступленийПоРаспоряжениюОстаток
Поместить ТЧР
ИЗ
    РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
ГДЕ
        ТоварыНаСкладахОстатки.Склад = &Склад
    И ТоварыНаСкладахОстатки.Номенклатура = &Номенклатура
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
    ТоварыКПоступлениюОстатки.Склад КАК Склад,
    ТоварыКПоступлениюОстатки.Номенклатура КАК Номенклатура,
    0 КАК ВНаличииОстаток,
    ТоварыКПоступлениюОстатки.КОформлениюПоступленийПоРаспоряжениюОстаток КАК КОформлениюПоступленийПоРаспоряжениюОстаток
ИЗ
    РегистрНакопления.ТоварыКПоступлению.Остатки КАК ТоварыКПоступлениюОстатки
ГДЕ
    ТоварыКПоступлениюОстатки.Номенклатура = &Номенклатура
    И ТоварыКПоступлениюОстатки.Склад = &Склад
;
///////////////
ВЫБРАТЬ
    ТЧР.Склад,
    ТЧР.Номенклатура,
    СУММА(ТЧР.ВНаличииОстаток) КАК ВНаличииОстаток,
    СУММА(ТЧР.КОформлениюПоступленийПоРаспоряжениюОстаток) КАК КОформлениюПоступленийПоРаспоряжениюОстаток
ИЗ
    ТЧР КАК ТЧР
СГРУППИРОВАТЬ ПО
Склад,
Номенклатура
Показать
11. sasha-asn 03.11.21 12:40 Сейчас в теме
(10) если так, то выдаёт ошибку:
Прикрепленные файлы:
14. гаврюша 3 03.11.21 12:46 Сейчас в теме
(11) Извиняюсь "Поместить ТЧР" "в" не нужно

"СГРУППИРОВАТЬ ПО "
Склад,
Номенклатура"
15. гаврюша 3 03.11.21 12:49 Сейчас в теме
(11) Я изменила запрос. Попробуйте
16. SlavaKron 03.11.21 14:00 Сейчас в теме
(10) Для того, чтобы сгруппировать результат объединения таблиц, создавать временную таблицу необязательно – достаточно вложенного запроса.
17. гаврюша 3 03.11.21 15:28 Сейчас в теме
(16)
ВЫБРАТЬ
	ТЧР.Номенклатура КАК Номенклатура,
	ТЧР.Склад КАК Склад,
	СУММА(ТЧР.ВНаличииОстаток) КАК ВНаличииОстаток,
	СУММА(ТЧР.КОформлениюПоступленийПоРаспоряжениюОстаток) КАК КОформлениюПоступленийПоРаспоряжениюОстаток
ИЗ
	(ВЫБРАТЬ
    ТоварыНаСкладахОстатки.Склад КАК Склад,
    ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
    ТоварыНаСкладахОстатки.ВНаличииОстаток КАК ВНаличииОстаток,
    0 КАК КОформлениюПоступленийПоРаспоряжениюОстаток
ИЗ
    РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
ГДЕ
        ТоварыНаСкладахОстатки.Склад = &Склад
    И ТоварыНаСкладахОстатки.Номенклатура = &Номенклатура
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
    ТоварыКПоступлениюОстатки.Склад КАК Склад,
    ТоварыКПоступлениюОстатки.Номенклатура КАК Номенклатура,
    0 КАК ВНаличииОстаток,
    ТоварыКПоступлениюОстатки.КОформлениюПоступленийПоРаспоряжениюОстаток КАК КОформлениюПоступленийПоРаспоряжениюОстаток
ИЗ
    РегистрНакопления.ТоварыКПоступлению.Остатки КАК ТоварыКПоступлениюОстатки
ГДЕ
    ТоварыКПоступлениюОстатки.Номенклатура = &Номенклатура
    И ТоварыКПоступлениюОстатки.Склад = &Склад) КАК ТЧР

СГРУППИРОВАТЬ ПО
	ТЧР.Номенклатура,
	ТЧР.Склад
Показать
Оставьте свое сообщение

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