Всем привет.
Есть набор данных: Заказ и по нему две Реализации. В Заказе количество 5, склад Первый.
А в Реализации, строки скорректировались на 1+2 количество и склад второй отгрузки изменился.
Как теперь сгруппировать Заказ и Реализации. с учетом корректировки складов отгрузки?
На скриншоте первая таблица Исходные данные, а вторая Желаемый результат.
Есть набор данных: Заказ и по нему две Реализации. В Заказе количество 5, склад Первый.
А в Реализации, строки скорректировались на 1+2 количество и склад второй отгрузки изменился.
ВЫБРАТЬ
"Заказ 1" КАК Заказ,
NULL КАК Реализация,
"Номенклатура 1" КАК Номенклатура,
5 КАК Количество,
"20" КАК СтавкаНДС,
"1" КАК Коэф,
"Первый" КАК Склад
ОБЪЕДИНИТЬ
ВЫБРАТЬ
"Заказ 1" КАК Заказ,
"Реализация 1" КАК Реализация,
"Номенклатура 1" КАК Номенклатура,
1 КАК Количество,
"20" КАК СтавкаНДС,
"1" КАК Коэф,
"Первый" КАК Склад
ОБЪЕДИНИТЬ
ВЫБРАТЬ
"Заказ 1" КАК Заказ,
"Реализация 2" КАК Реализация,
"Номенклатура 1" КАК Номенклатура,
2 КАК Количество,
"20" КАК СтавкаНДС,
"1" КАК Коэф,
<b>"Второй"</b> КАК Склад
ПоказатьКак теперь сгруппировать Заказ и Реализации. с учетом корректировки складов отгрузки?
На скриншоте первая таблица Исходные данные, а вторая Желаемый результат.
Прикрепленные файлы:

По теме из базы знаний
- История оптимизации одного большого запроса средствами MSSQL Profiler и 1С
- Неоплаченные долги при распределении оплаты по правилу ФИФО одним запросом и намного быстрее, чем Вы думали
- Консоль запросов к базе Oracle для 1С, без использования специализированных программ
- Оптимизатор запроса. Часть первая
- Как читать чужой код? Часть 3. Разбор и доработка запросов
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
У вас ерунда получается. Заведен склад - 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",
"Второй"
;
ВЫБРАТЬ
Склады.Заказ,
Склады.Склад,
Склады.Номенклатура,
Сумма(Склады.Количество) КАК Количество
ИЗ
склады КАК Склады
СГРУППИРОВАТЬ ПО
Склады.Заказ,
Склады.Склад,
Склады.Номенклатура
ПоказатьКод только для понимания направления мысли. Так же можно сделать и поступления тупо положительными цифрами.
Удалось добиться вот такого результата и он меня почти устраивает.
но вот как теперь в Заказ вернуть первоначальный планированный склад отгрузкИ?
ВЫБРАТь
"Заказ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*кол,
Ном,
Коэф,
склад
ИЗ ВТРеализация ) КАК ВТ
СГРУППИРОВАТЬ ПО Заказ, Реал, Ном, склад, Коэф
Показатьно вот как теперь в Заказ вернуть первоначальный планированный склад отгрузкИ?
Прикрепленные файлы:

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