Помогите с запросом

1. sys1c 08.08.23 05:27 Сейчас в теме
Всем привет.
Есть набор данных: Заказ и по нему две Реализации. В Заказе количество 5, склад Первый.
А в Реализации, строки скорректировались на 1+2 количество и склад второй отгрузки изменился.

ВЫБРАТЬ
	"Заказ 1"            КАК Заказ,
	NULL                 КАК Реализация, 
	"Номенклатура 1"     КАК Номенклатура,
	5                    КАК Количество,
	"20"                 КАК СтавкаНДС,
	"1"                  КАК Коэф,
	"Первый"             КАК Склад
ОБЪЕДИНИТЬ

ВЫБРАТЬ
	"Заказ 1"            КАК Заказ,
	"Реализация 1"       КАК Реализация, 	
	"Номенклатура 1"     КАК Номенклатура,
	1                    КАК Количество,
	"20"                 КАК СтавкаНДС,
	"1"                  КАК Коэф,
	"Первый"             КАК Склад

ОБЪЕДИНИТЬ

ВЫБРАТЬ
	"Заказ 1"            КАК Заказ,
	"Реализация 2"       КАК Реализация, 	
	"Номенклатура 1"     КАК Номенклатура,
	2                    КАК Количество,
	"20"                 КАК СтавкаНДС,
	"1"                  КАК Коэф,
	"Второй"             КАК Склад
Показать


Как теперь сгруппировать Заказ и Реализации. с учетом корректировки складов отгрузки?
На скриншоте первая таблица Исходные данные, а вторая Желаемый результат.
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. tankus 08.08.23 06:17 Сейчас в теме
У вас ерунда получается. Заведен склад - 1. Продаете с двух разных. Отчего вторую реализацию отнимать когда склада такого нет? Дальше У вас нарушение целостности данных, в результате - количество уменьшилось, а операции на реализацию все еще в очереди на исполнение - ни какого признака что они уже отнялись нет. Если принципиально делать запросами тогда надо сделать либо таблицу оборотов, либо две таблицы - склады и реализация, возможно, приход еще понадобится - как тоже на складах товар появляется? Чтобы реализацию сгруппировать с остатками на складах используйте отрицательные числа, что-то вроде вот такого:

ВЫБРАТЬ
	"Заказ 1" КАК Заказ,
	NULL КАК Реализация,
	"Номенклатура 1" КАК Номенклатура,
	5 КАК Количество,
	"20" КАК СтавкаНДС,
	"1" КАК Коэф,
	"Первый" КАК Склад
ПОМЕСТИТЬ Склады

ОБъединить

ВЫБРАТЬ
	"Заказ 1" КАК Заказ,
	NULL КАК Реализация,
	"Номенклатура 1" КАК Номенклатура,
	5 КАК Количество,
	"20" КАК СтавкаНДС,
	"1" КАК Коэф,
	"Второй" КАК Склад

ОБЪЕДИНИТЬ

ВЫБРАТЬ
	"Заказ 1",
	"Реализация 1",
	"Номенклатура 1",
	-1,
	"20",
	"1",
	"Первый"

ОБЪЕДИНИТЬ

ВЫБРАТЬ
	"Заказ 1",
	"Реализация 2",
	"Номенклатура 1",
	-2,
	"20",
	"1",
	"Второй"
;

ВЫБРАТЬ
	Склады.Заказ,
	Склады.Склад,
	Склады.Номенклатура,
	Сумма(Склады.Количество) КАК Количество
	
ИЗ
	склады КАК Склады
СГРУППИРОВАТЬ ПО
	Склады.Заказ,
	Склады.Склад,
	Склады.Номенклатура
	
Показать

Код только для понимания направления мысли. Так же можно сделать и поступления тупо положительными цифрами.
3. sys1c 08.08.23 08:21 Сейчас в теме
Удалось добиться вот такого результата и он меня почти устраивает.

	ВЫБРАТь 
		"Заказ1" КАК Заказ,
		"" КАК Реал,
		11    КАК Кол,
		"Товар1"   КАК Ном,
		1     КАК Коэф,
		"Первый" КАК СКЛАД
	ПОМЕСТИТЬ ВТОригинальныйЗаказ	
;
	ВЫБРАТЬ
		"Заказ1" КАК Заказ,
		"Реал1"  КАК Реал,
		-1       КАК Кол,
		"Товар1"      КАК Ном,
		1        КАК Коэф,
		"Первый" КАК Склад
	ПОМЕСТИТЬ ВТРеализация	
	ОБЪЕДИНИТЬ
	ВЫБРАТЬ
		"Заказ1",
		"Реал2",
		-2,
		"Товар1",
		1,
		"Второй"

;
ВЫБРАТЬ 
	Заказ,
	//МАКСИМУМ(Реал),
	Сумма(кол),
	Ном,
	МАКСИМУМ(Коэф)
	//Склад
ПОМЕСТИТЬ ВТЗаказ	
ИЗ
(
	ВЫБРАТь 
		"Заказ1" КАК Заказ,
		"" КАК Реал,
		11    КАК Кол,
		"Товар1"   КАК Ном,
		1     КАК Коэф,
		"Первый" КАК СКЛАД
	ОБЪЕДИНИТЬ
	ВЫБРАТЬ
		"Заказ1",
		"Реал1" КАК Реал,
		-1,
		"Товар1",
		1,
		"Первый"
	ОБЪЕДИНИТЬ
	ВЫБРАТЬ
		"Заказ1",
		"Реал2" КАК Реал,
		-2,
		"Товар1",
		1,
		"Второй"
		
	) КАК Вт
	
СГРУППИРОВАТЬ ПО Заказ,  ном
;
ВЫБРАТЬ 
	Заказ КАК Заказ ,
	Реал    КАК Реал,
	СУММА(кол),
	Ном,
	Коэф,
	Склад
ИЗ (
ВЫБРАТЬ 
	Заказ КАК Заказ ,
	""    КАК Реал,
	кол,
	Ном,
	Коэф,
	"" КАК Склад
ИЗ ВтЗаказ

ОБЪЕДИНИТЬ

ВЫБРАТЬ
	Заказ КАК Заказ,
	Реал  КАК Реал,
	-1*кол,
	Ном,
	Коэф,
	склад
ИЗ ВТРеализация	) КАК ВТ
СГРУППИРОВАТЬ ПО Заказ, Реал, Ном, склад, Коэф
Показать



но вот как теперь в Заказ вернуть первоначальный планированный склад отгрузкИ?
Прикрепленные файлы:
4. tankus 08.08.23 10:57 Сейчас в теме
Левым соединением поле добавьте
Оставьте свое сообщение

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