SAPфорум.RU
https://sapboard.ru/forum/

Возможность JOIN-а в UPDATE-е (OpenSQL)
https://sapboard.ru/forum/viewtopic.php?f=13&t=96432
Страница 1 из 1

Автор:  boreich [ Ср, май 23 2018, 15:25 ]
Заголовок сообщения:  Возможность JOIN-а в UPDATE-е (OpenSQL)

Коллеги, добрый день.

Насколько я понял после некоторого гугления, осуществить JOIN внутри UPDATE для Open SQL нет возможности?
Хотел бы спросить, есть ли какие то альтернативы? На одном форуме видел предложение создать ракурс под таблицы, которые джойнить и уже его апдейтить.
Проверил - не работает. Ругается: "Ракурс базы данных защищён от записи и, следовательно, не может быть изменён".
Посмотрел в настройках ракурса - судя по всему, любой ракурс, джойнящий 2 и более таблицы будет "защищён от записи".

Существует ли ещё какая то альтернатива кроме цикла по внутренней таблице после первого селекта?
Собственно, задача элементарная - обновить поле в kblk в зав-ти от значения поля в kblp по общему belnr.
Просто хотелось бы её решить наиболее производительным и красивым путём.
Думал ещё насчёт использования EXEC SQL. .... ENDEXEC, но никогда такого не делал - не уверен, что это хорошая идея.

Автор:  Удав [ Ср, май 23 2018, 15:55 ]
Заголовок сообщения:  Re: Возможность JOIN-а в UPDATE-е (OpenSQL)

UPDATE - это изменение записей,
JOIN используется только при выборке данных.
Изменение данных в KBLK вообще нужно делать через BAPI или пакетный ввод, а не прямым UPDATE.
Правильно будет сначала выбрать нужные данные из KBLP, затем в цикле вызывать BAPI (мы используем ФМ FMFR_CHANGE_FROM_DATA) для каждого документа.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/