Этот код работает приблизительно:
select *
into table <sub_result>
from ADRC
WHERE ADDRNUMBER
in ( select ADRNRA from AUFK where (cond_string) )
.
Но это не так:
select *
into table <sub_result>
from ADRC
WHERE (ADDRNUMBER, MANDT)
in ( select ADRNRA, MANDT from AUFK where (cond_string) )
.
AFAIK синтаксис кортежа (ADDRNUMBER, MANDT)
является допустимым SQL.
Этонедопустимо в Open SQL ABAP?
Если синтаксис кортежа не разрешен, что я могу сделать?
Обновление
В Open SQL (Только SAP / ABAP) проверка столбца MANDT / CLIENT не требуется.Это выполняется ABAP, который анализирует Open SQL и создает собственный SQL.Вы входите в SAP с определенным клиентом, и автоматически добавляется «WHERE MANDT = THE_ID_YOU_USED_DURING_LOGIN».Это означает, что мой первоначальный вариант использования проще (один столбец в "WHERE COL IN (subselect)").Но тем не менее общий вопрос остается в силе.Спасибо всем большое за помощь!